From 7ca13b3d513fafb0d2815d5da656d6c34c6b0ca2 Mon Sep 17 00:00:00 2001 From: thez3ro Date: Sun, 26 Mar 2017 22:55:56 +0200 Subject: [PATCH] fix RecentDatabases, closes #386 --- src/gui/MainWindow.cpp | 5 +++++ src/gui/WelcomeWidget.cpp | 22 ++++++++++++++-------- src/gui/WelcomeWidget.h | 1 + 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 0568ba0c..d68d18b4 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -378,6 +378,11 @@ void MainWindow::openRecentDatabase(QAction* action) void MainWindow::clearLastDatabases() { config()->set("LastDatabases", QVariant()); + bool inWelcomeWidget = (m_ui->stackedWidget->currentIndex() == 2); + + if (inWelcomeWidget) { + m_ui->welcomeWidget->refreshLastDatabases(); + } } void MainWindow::openDatabase(const QString& fileName, const QString& pw, const QString& keyFile) diff --git a/src/gui/WelcomeWidget.cpp b/src/gui/WelcomeWidget.cpp index 4629ffa2..96bf0a20 100644 --- a/src/gui/WelcomeWidget.cpp +++ b/src/gui/WelcomeWidget.cpp @@ -36,13 +36,8 @@ WelcomeWidget::WelcomeWidget(QWidget* parent) m_ui->iconLabel->setPixmap(filePath()->applicationIcon().pixmap(64)); - m_ui->recentListWidget->clear(); - const QStringList lastDatabases = config()->get("LastDatabases", QVariant()).toStringList(); - for (const QString& database : lastDatabases) { - QListWidgetItem *itm = new QListWidgetItem; - itm->setText(database); - m_ui->recentListWidget->addItem(itm); - } + refreshLastDatabases(); + bool recent_visibility = (m_ui->recentListWidget->count() > 0); m_ui->startLabel->setVisible(!recent_visibility); m_ui->recentListWidget->setVisible(recent_visibility); @@ -52,7 +47,7 @@ WelcomeWidget::WelcomeWidget(QWidget* parent) connect(m_ui->buttonOpenDatabase, SIGNAL(clicked()), SIGNAL(openDatabase())); connect(m_ui->buttonImportKeePass1, SIGNAL(clicked()), SIGNAL(importKeePass1Database())); connect(m_ui->buttonImportCSV, SIGNAL(clicked()), SIGNAL(importCsv())); - connect(m_ui->recentListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, + connect(m_ui->recentListWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(openDatabaseFromFile(QListWidgetItem*))); } @@ -67,3 +62,14 @@ void WelcomeWidget::openDatabaseFromFile(QListWidgetItem* item) } emit openDatabaseFile(item->text()); } + +void WelcomeWidget::refreshLastDatabases() +{ + m_ui->recentListWidget->clear(); + const QStringList lastDatabases = config()->get("LastDatabases", QVariant()).toStringList(); + for (const QString& database : lastDatabases) { + QListWidgetItem *itm = new QListWidgetItem; + itm->setText(database); + m_ui->recentListWidget->addItem(itm); + } +} \ No newline at end of file diff --git a/src/gui/WelcomeWidget.h b/src/gui/WelcomeWidget.h index 98d87aca..9f8d5d70 100644 --- a/src/gui/WelcomeWidget.h +++ b/src/gui/WelcomeWidget.h @@ -32,6 +32,7 @@ class WelcomeWidget : public QWidget public: explicit WelcomeWidget(QWidget* parent = nullptr); ~WelcomeWidget(); + void refreshLastDatabases(); signals: void newDatabase();