From 1262a7c0bc307d36720354b90ca8ac7f24147268 Mon Sep 17 00:00:00 2001 From: Helio Chissini de Castro Date: Sat, 8 Jun 2013 00:03:58 -0300 Subject: Keep last open dives directory Last open dives directory is stored in settings, so no need to walk through all subdirectories all the time. Signed-off-by: Helio Chissini de Castro --- qt-ui/mainwindow.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 286aba43e..b2baa8c26 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -86,10 +86,27 @@ void MainWindow::on_actionNew_triggered() void MainWindow::on_actionOpen_triggered() { - QString filename = QFileDialog::getOpenFileName(this, tr("Open File"), QDir::homePath(), filter()); + 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 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(); + // Needed to convert to char* QByteArray fileNamePtr = filename.toLocal8Bit(); -- cgit v1.2.3-70-g09d2