mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-11-27 10:00:38 -05:00
Cleanup welcome screen recent databases view (#4822)
* Press "Delete" to remove recent database * Refresh recent databases on becoming visible
This commit is contained in:
parent
712b8224c6
commit
6c9125402a
2 changed files with 34 additions and 8 deletions
|
|
@ -40,11 +40,6 @@ WelcomeWidget::WelcomeWidget(QWidget* parent)
|
||||||
|
|
||||||
refreshLastDatabases();
|
refreshLastDatabases();
|
||||||
|
|
||||||
bool recent_visibility = (m_ui->recentListWidget->count() > 0);
|
|
||||||
m_ui->startLabel->setVisible(!recent_visibility);
|
|
||||||
m_ui->recentListWidget->setVisible(recent_visibility);
|
|
||||||
m_ui->recentLabel->setVisible(recent_visibility);
|
|
||||||
|
|
||||||
connect(m_ui->buttonNewDatabase, SIGNAL(clicked()), SIGNAL(newDatabase()));
|
connect(m_ui->buttonNewDatabase, SIGNAL(clicked()), SIGNAL(newDatabase()));
|
||||||
connect(m_ui->buttonOpenDatabase, SIGNAL(clicked()), SIGNAL(openDatabase()));
|
connect(m_ui->buttonOpenDatabase, SIGNAL(clicked()), SIGNAL(openDatabase()));
|
||||||
connect(m_ui->buttonImportKeePass1, SIGNAL(clicked()), SIGNAL(importKeePass1Database()));
|
connect(m_ui->buttonImportKeePass1, SIGNAL(clicked()), SIGNAL(importKeePass1Database()));
|
||||||
|
|
@ -62,12 +57,26 @@ WelcomeWidget::~WelcomeWidget()
|
||||||
|
|
||||||
void WelcomeWidget::openDatabaseFromFile(QListWidgetItem* item)
|
void WelcomeWidget::openDatabaseFromFile(QListWidgetItem* item)
|
||||||
{
|
{
|
||||||
if (item->text().isEmpty()) {
|
if (!item || item->text().isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
emit openDatabaseFile(item->text());
|
emit openDatabaseFile(item->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WelcomeWidget::removeFromLastDatabases(QListWidgetItem* item)
|
||||||
|
{
|
||||||
|
if (!item || item->text().isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config()->get(Config::RememberLastDatabases).toBool()) {
|
||||||
|
QStringList lastDatabases = config()->get(Config::LastDatabases).toStringList();
|
||||||
|
lastDatabases.removeOne(item->text());
|
||||||
|
config()->set(Config::LastDatabases, lastDatabases);
|
||||||
|
}
|
||||||
|
refreshLastDatabases();
|
||||||
|
}
|
||||||
|
|
||||||
void WelcomeWidget::refreshLastDatabases()
|
void WelcomeWidget::refreshLastDatabases()
|
||||||
{
|
{
|
||||||
m_ui->recentListWidget->clear();
|
m_ui->recentListWidget->clear();
|
||||||
|
|
@ -77,13 +86,28 @@ void WelcomeWidget::refreshLastDatabases()
|
||||||
itm->setText(database);
|
itm->setText(database);
|
||||||
m_ui->recentListWidget->addItem(itm);
|
m_ui->recentListWidget->addItem(itm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool recent_visibility = (m_ui->recentListWidget->count() > 0);
|
||||||
|
m_ui->startLabel->setVisible(!recent_visibility);
|
||||||
|
m_ui->recentListWidget->setVisible(recent_visibility);
|
||||||
|
m_ui->recentLabel->setVisible(recent_visibility);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WelcomeWidget::keyPressEvent(QKeyEvent* event)
|
void WelcomeWidget::keyPressEvent(QKeyEvent* event)
|
||||||
{
|
{
|
||||||
if (m_ui->recentListWidget->hasFocus() && (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter)) {
|
if (m_ui->recentListWidget->hasFocus()) {
|
||||||
|
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
|
||||||
openDatabaseFromFile(m_ui->recentListWidget->currentItem());
|
openDatabaseFromFile(m_ui->recentListWidget->currentItem());
|
||||||
|
} else if (event->key() == Qt::Key_Delete || event->key() == Qt::Key_Backspace) {
|
||||||
|
removeFromLastDatabases(m_ui->recentListWidget->currentItem());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget::keyPressEvent(event);
|
QWidget::keyPressEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WelcomeWidget::showEvent(QShowEvent* event)
|
||||||
|
{
|
||||||
|
refreshLastDatabases();
|
||||||
|
QWidget::showEvent(event);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,12 +46,14 @@ signals:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void keyPressEvent(QKeyEvent* event) override;
|
void keyPressEvent(QKeyEvent* event) override;
|
||||||
|
void showEvent(QShowEvent* event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void openDatabaseFromFile(QListWidgetItem* item);
|
void openDatabaseFromFile(QListWidgetItem* item);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const QScopedPointer<Ui::WelcomeWidget> m_ui;
|
const QScopedPointer<Ui::WelcomeWidget> m_ui;
|
||||||
|
void removeFromLastDatabases(QListWidgetItem* item);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // KEEPASSX_WELCOMEWIDGET_H
|
#endif // KEEPASSX_WELCOMEWIDGET_H
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue