diff options
-rw-r--r-- | qt-ui/mainwindow.cpp | 51 | ||||
-rw-r--r-- | qt-ui/mainwindow.h | 2 |
2 files changed, 23 insertions, 30 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index b2180d1ce..5e7560030 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -99,27 +99,11 @@ void MainWindow::on_actionNew_triggered() void MainWindow::on_actionOpen_triggered() { - QSettings settings; - QString lastDir = QDir::homePath(); - - settings.beginGroup("FileDialog"); - if (settings.contains("LastDir")) { - if(QDir::setCurrent(settings.value("LastDir").toString())) { - lastDir = settings.value("LastDir").toString(); - } - } - settings.endGroup(); - + QString lastDir = lastUsedDir(); QString filename = QFileDialog::getOpenFileName(this, tr("Open File"), lastDir, filter()); if (filename.isEmpty()) return; - - // Keep last open dir - QFileInfo fileInfo(filename); - settings.beginGroup("FileDialog"); - settings.setValue("LastDir",fileInfo.dir().path()); - settings.endGroup(); - + updateLastUsedDir(filename); on_actionClose_triggered(); loadFiles( QStringList() << filename ); } @@ -166,6 +150,18 @@ void MainWindow::on_actionClose_triggered() void MainWindow::on_actionImport_triggered() { + QString lastDir = lastUsedDir(); + + QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Import Files"), lastDir, filter()); + if (!fileNames.size()) + return; // no selection + + updateLastUsedDir(QFileInfo(fileNames.at(0)).dir().path()); + importFiles(fileNames); +} + +QString MainWindow::lastUsedDir() +{ QSettings settings; QString lastDir = QDir::homePath(); @@ -173,19 +169,14 @@ void MainWindow::on_actionImport_triggered() if (settings.contains("LastDir")) if (QDir::setCurrent(settings.value("LastDir").toString())) lastDir = settings.value("LastDir").toString(); - settings.endGroup(); - - QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Import Files"), lastDir, filter()); - if (!fileNames.size()) - return; // no selection - - // Keep last open dir - QFileInfo fileInfo(fileNames.at(0)); - settings.beginGroup("FileDialog"); - settings.setValue("LastDir", fileInfo.dir().path()); - settings.endGroup(); + return lastDir; +} - importFiles(fileNames); +void MainWindow::updateLastUsedDir(const QString& dir) +{ + QSettings s; + s.beginGroup("FileDialog"); + s.setValue("LastDir", dir); } void MainWindow::on_actionExportUDDF_triggered() diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index a7dafb48b..c0d5f245b 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -126,6 +126,8 @@ private: void file_save_as(); void beginChangeState(CurrentState s); void saveSplitterSizes(); + QString lastUsedDir(); + void updateLastUsedDir(const QString& s); }; MainWindow *mainWindow(); |