| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /**
- * Copyright (c) 2011-2018 by Andrew Mustun. All rights reserved.
- *
- * This file is part of the QCAD project.
- *
- * QCAD is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * QCAD is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with QCAD.
- */
- include("scripts/File/NewFile/NewFile.js");
- if (exists("scripts/File/AutoSave/AutoSave.js")) {
- include("scripts/File/AutoSave/AutoSave.js");
- }
- /**
- * \class OpenFile
- * \brief Handles all user interaction to open documents.
- * \ingroup ecma_file
- */
- function OpenFile(guiAction) {
- NewFile.call(this, guiAction);
- if (!isNull(guiAction)) {
- this.args = guiAction.getArguments();
- }
- }
- OpenFile.prototype = new NewFile();
- OpenFile.prototype.beginEvent = function () {
- File.prototype.beginEvent.call(this);
- try {
- var filterStrings = RFileImporterRegistry.getFilterStrings();
- filterStrings = translateFilterStrings(filterStrings);
- if (filterStrings.length === 0) {
- EAction.handleUserWarning(qsTr("No import filters have been found. Aborting..."));
- return;
- }
- var fileName;
- if (!isNull(this.args) && this.args.length >= 1) {
- fileName = this.args[this.args.length - 1];
- if (!new QFileInfo(fileName).isAbsolute()) {
- fileName = RSettings.getLaunchPath() + QDir.separator + fileName;
- }
- if (!isNull(fileName)) {
- NewFile.createMdiChild(fileName);
- return;
- }
- }
- if (!isNull(this.guiAction)) {
- fileName = this.guiAction.data();
- if (!isNull(fileName)) {
- NewFile.createMdiChild(fileName);
- return;
- }
- }
- var lastOpenFileDir = RSettings.getStringValue("OpenFile/Path", RSettings.getDocumentsLocation());
- var appWin = EAction.getMainWindow();
- var fileDialog = new QFileDialog(appWin, qsTr("Open Drawing"), lastOpenFileDir, "");
- var allFilter = filterStrings[0];
- filterStrings = new Array(qsTr("All Files") + " (*)").concat(filterStrings);
- fileDialog.setNameFilters(filterStrings);
- fileDialog.selectNameFilter(allFilter);
- fileDialog.setOption(QFileDialog.DontUseNativeDialog, getDontUseNativeDialog());
- if (!isNull(QFileDialog.DontUseCustomDirectoryIcons)) {
- fileDialog.setOption(QFileDialog.DontUseCustomDirectoryIcons, true);
- }
- fileDialog.fileMode = QFileDialog.ExistingFiles;
- // global function qcadInitFileDialog may be registered to perform
- // additional initialization
- if (typeof qcadInitFileDialog != "undefined" && isFunction(qcadInitFileDialog)) {
- qcadInitFileDialog(fileDialog);
- }
- if (!fileDialog.exec()) {
- destr(fileDialog);
- EAction.activateMainWindow();
- return;
- }
- EAction.activateMainWindow();
- RSettings.setValue("OpenFile/Path", fileDialog.directory().absolutePath());
- var fileNames = fileDialog.selectedFiles();
- var nameFilter = fileDialog.selectedNameFilter();
- for (var i = 0; i < fileNames.length; ++i) {
- NewFile.createMdiChild(fileNames[i], nameFilter);
- }
- destr(fileDialog);
- EAction.activateMainWindow();
- } catch (error) {
- EAction.handleUserWarning("OpenFile.js error:" + error.toString());
- }
- };
|