From 7e815634bbd39dc836a7acc59968fe8a55082f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Tue, 19 Nov 2019 06:52:40 +0100 Subject: [PATCH] Remember last open directory as start point --- mainwindow.cpp | 41 ++++++++++++++++------------------------- mainwindow.h | 3 +-- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 43bdf01..268cf96 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -23,9 +23,7 @@ int MainWindow::socketPair[2] = {0, 0}; -MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), - loading(false), - queued(0) +MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { qRegisterMetaType("ImageInfoData"); @@ -112,6 +110,10 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), QSettings settings; restoreGeometry(settings.value("mainwindow/geometry").toByteArray()); restoreState(settings.value("mainwindow/state").toByteArray()); + + QStringList standardLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation); + if(standardLocations.size()) + _lastDir = standardLocations.first(); } MainWindow::~MainWindow() @@ -120,24 +122,17 @@ MainWindow::~MainWindow() void MainWindow::keyPressEvent(QKeyEvent *event) { - if(!loading) - { - switch (event->key()) - { - case Qt::Key_Left: - m_ringList->decrement(); - break; - case Qt::Key_Right: - m_ringList->increment(); - break; - default: - event->ignore(); - break; - } - } - else + switch (event->key()) { + case Qt::Key_Left: + m_ringList->decrement(); + break; + case Qt::Key_Right: + m_ringList->increment(); + break; + default: event->ignore(); + break; } if(event->isAccepted()) @@ -199,17 +194,13 @@ void MainWindow::pixmapLoaded(QPixmap pix) void MainWindow::openFile() { - QStringList standardLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation); - QString path; - if(standardLocations.size()) - path = standardLocations.first(); - - QString file = QFileDialog::getOpenFileName(this, tr("Open file"), path, tr("Images (*.jpg *.png *.cr2 *.fit *.fits *.JPG *.PNG *.CR2 *.FIT *.FITS)")); + QString file = QFileDialog::getOpenFileName(this, tr("Open file"), _lastDir, tr("Images (*.jpg *.png *.cr2 *.fit *.fits *.JPG *.PNG *.CR2 *.FIT *.FITS)")); if(!file.isEmpty()) { QFileInfo info(file); m_ringList->setFile(info.canonicalFilePath()); updateWindowTitle(); + _lastDir = QFileInfo(file).absoluteDir().absolutePath(); } } diff --git a/mainwindow.h b/mainwindow.h index fd8e6a1..b12f7cd 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -15,10 +15,9 @@ class MainWindow : public QMainWindow ImageRingList *m_ringList; Database *m_database; ImageInfo *m_info; - bool loading; - int queued; static int socketPair[2]; QSocketNotifier *socketNotifier; + QString _lastDir; public: MainWindow(QWidget *parent = 0); ~MainWindow();