From b28237309a5fd3af527d71fe0d4dfada7a11107c Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Thu, 14 Nov 2013 13:42:26 -0200 Subject: Good deal of code Cleanup. Rewrite of the way we handle the last used directory for the loading / saving of files. we didn't reuse anything for the code, and that's error prone and also dumb =p. Reworked that so we have a nice method to help us out on that. lastUsedDir and updateLastUsedDir Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/mainwindow.cpp | 51 +++++++++++++++++++++------------------------------ qt-ui/mainwindow.h | 2 ++ 2 files changed, 23 insertions(+), 30 deletions(-) (limited to 'qt-ui') 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 ); } @@ -165,6 +149,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(); -- cgit v1.2.3-70-g09d2