mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-04-01 19:05:50 -04:00
Remember last opened files.
This commit is contained in:
parent
20c95737cb
commit
6f48983efe
@ -67,6 +67,7 @@ Config::Config()
|
||||
|
||||
m_settings.reset(new QSettings(userPath, QSettings::IniFormat));
|
||||
|
||||
m_defaults.insert("RememberLastDatabases", true);
|
||||
m_defaults.insert("security/clearclipboard", true);
|
||||
m_defaults.insert("security/clearclipboardtimeout", 10);
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <QtGui/QTabWidget>
|
||||
#include <QtGui/QMessageBox>
|
||||
|
||||
#include "core/Config.h"
|
||||
#include "core/Database.h"
|
||||
#include "core/Group.h"
|
||||
#include "core/Metadata.h"
|
||||
@ -40,6 +41,8 @@ DatabaseManagerStruct::DatabaseManagerStruct()
|
||||
{
|
||||
}
|
||||
|
||||
const int DatabaseTabWidget::LastDatabasesCount = 5;
|
||||
|
||||
DatabaseTabWidget::DatabaseTabWidget(QWidget* parent)
|
||||
: QTabWidget(parent)
|
||||
, m_window(parent->window())
|
||||
@ -153,8 +156,11 @@ void DatabaseTabWidget::openDatabaseRead()
|
||||
m_curKeyDialog = 0;
|
||||
|
||||
m_curDbStruct.dbWidget = new DatabaseWidget(db, this);
|
||||
QString filename = m_curDbStruct.fileName;
|
||||
insertDatabase(db, m_curDbStruct);
|
||||
m_curDbStruct = DatabaseManagerStruct();
|
||||
|
||||
updateLastDatabases(filename);
|
||||
}
|
||||
|
||||
void DatabaseTabWidget::openDatabaseCleanup()
|
||||
@ -247,6 +253,7 @@ void DatabaseTabWidget::saveDatabase(Database* db)
|
||||
|
||||
dbStruct.modified = false;
|
||||
updateTabName(db);
|
||||
updateLastDatabases(dbStruct.fileName);
|
||||
}
|
||||
else {
|
||||
saveDatabaseAs(db);
|
||||
@ -278,6 +285,7 @@ void DatabaseTabWidget::saveDatabaseAs(Database* db)
|
||||
dbStruct.modified = false;
|
||||
dbStruct.fileName = QFileInfo(fileName).absoluteFilePath();
|
||||
updateTabName(db);
|
||||
updateLastDatabases(dbStruct.fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -497,3 +505,20 @@ void DatabaseTabWidget::modified()
|
||||
updateTabName(db);
|
||||
}
|
||||
}
|
||||
|
||||
void DatabaseTabWidget::updateLastDatabases(const QString& filename)
|
||||
{
|
||||
if (!config()->get("RememberLastDatabases").toBool()) {
|
||||
config()->set("LastDatabases", QVariant());
|
||||
}
|
||||
else {
|
||||
QStringList lastDatabases = config()->get("LastDatabases", QVariant()).toStringList();
|
||||
lastDatabases.prepend(filename);
|
||||
lastDatabases.removeDuplicates();
|
||||
|
||||
while (lastDatabases.count() > LastDatabasesCount) {
|
||||
lastDatabases.removeLast();
|
||||
}
|
||||
config()->set("LastDatabases", lastDatabases);
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,8 @@ public:
|
||||
const QString& keyFile = QString());
|
||||
DatabaseWidget* currentDatabaseWidget();
|
||||
|
||||
static const int LastDatabasesCount;
|
||||
|
||||
public Q_SLOTS:
|
||||
void newDatabase();
|
||||
void openDatabase();
|
||||
@ -96,12 +98,15 @@ private:
|
||||
Database* indexDatabase(int index);
|
||||
Database* databaseFromDatabaseWidget(DatabaseWidget* dbWidget);
|
||||
void insertDatabase(Database* db, const DatabaseManagerStruct& dbStruct);
|
||||
void updateLastDatabases(const QString& filename);
|
||||
|
||||
QWidget* const m_window;
|
||||
KeePass2Writer m_writer;
|
||||
QHash<Database*, DatabaseManagerStruct> m_dbList;
|
||||
DatabaseManagerStruct m_curDbStruct;
|
||||
DatabaseOpenDialog* m_curKeyDialog;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // KEEPASSX_DATABASETABWIDGET_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user