mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-11-22 16:00:38 -05:00
Merge remote-tracking branch 'origin/develop' into feature/autoreload-db
# Conflicts: # src/gui/DatabaseWidget.cpp # src/gui/DatabaseWidget.h
This commit is contained in:
commit
20c3ca7d37
33 changed files with 1682 additions and 24 deletions
|
|
@ -46,6 +46,7 @@
|
|||
#include "gui/KeePass1OpenWidget.h"
|
||||
#include "gui/MessageBox.h"
|
||||
#include "gui/UnlockDatabaseWidget.h"
|
||||
#include "gui/UnlockDatabaseDialog.h"
|
||||
#include "gui/entry/EditEntryWidget.h"
|
||||
#include "gui/entry/EntryView.h"
|
||||
#include "gui/group/EditGroupWidget.h"
|
||||
|
|
@ -127,6 +128,8 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent)
|
|||
m_keepass1OpenWidget->setObjectName("keepass1OpenWidget");
|
||||
m_unlockDatabaseWidget = new UnlockDatabaseWidget();
|
||||
m_unlockDatabaseWidget->setObjectName("unlockDatabaseWidget");
|
||||
m_unlockDatabaseDialog = new UnlockDatabaseDialog();
|
||||
m_unlockDatabaseDialog->setObjectName("unlockDatabaseDialog");
|
||||
addWidget(m_mainWidget);
|
||||
addWidget(m_editEntryWidget);
|
||||
addWidget(m_editGroupWidget);
|
||||
|
|
@ -156,6 +159,7 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent)
|
|||
connect(m_databaseOpenMergeWidget, SIGNAL(editFinished(bool)), SLOT(mergeDatabase(bool)));
|
||||
connect(m_keepass1OpenWidget, SIGNAL(editFinished(bool)), SLOT(openDatabase(bool)));
|
||||
connect(m_unlockDatabaseWidget, SIGNAL(editFinished(bool)), SLOT(unlockDatabase(bool)));
|
||||
connect(m_unlockDatabaseDialog, SIGNAL(unlockDone(bool)), SLOT(unlockDatabase(bool)));
|
||||
connect(&m_fileWatcher, SIGNAL(fileChanged(QString)), this, SLOT(onWatchedFileChanged()));
|
||||
connect(&m_fileWatchTimer, SIGNAL(timeout()), this, SLOT(reloadDatabaseFile()));
|
||||
connect(this, SIGNAL(currentChanged(int)), this, SLOT(emitCurrentModeChanged()));
|
||||
|
|
@ -180,7 +184,8 @@ DatabaseWidget::Mode DatabaseWidget::currentMode() const
|
|||
else if (currentWidget() == m_mainWidget) {
|
||||
return DatabaseWidget::ViewMode;
|
||||
}
|
||||
else if (currentWidget() == m_unlockDatabaseWidget) {
|
||||
else if (currentWidget() == m_unlockDatabaseWidget ||
|
||||
currentWidget() == m_databaseOpenWidget) {
|
||||
return DatabaseWidget::LockedMode;
|
||||
}
|
||||
else {
|
||||
|
|
@ -705,7 +710,14 @@ void DatabaseWidget::unlockDatabase(bool accepted)
|
|||
return;
|
||||
}
|
||||
|
||||
replaceDatabase(static_cast<DatabaseOpenWidget*>(sender())->database());
|
||||
Database *db = Q_NULLPTR;
|
||||
if (sender() == m_unlockDatabaseDialog) {
|
||||
db = m_unlockDatabaseDialog->database();
|
||||
} else if (sender() == m_unlockDatabaseWidget) {
|
||||
db = m_unlockDatabaseWidget->database();
|
||||
}
|
||||
|
||||
replaceDatabase(db);
|
||||
|
||||
const QList<Group*> groups = m_db->rootGroup()->groupsRecursive(true);
|
||||
for (Group* group : groups) {
|
||||
|
|
@ -719,6 +731,12 @@ void DatabaseWidget::unlockDatabase(bool accepted)
|
|||
setCurrentWidget(m_mainWidget);
|
||||
m_unlockDatabaseWidget->clearForms();
|
||||
Q_EMIT unlockedDatabase();
|
||||
|
||||
if (sender() == m_unlockDatabaseDialog) {
|
||||
QList<Database*> dbList;
|
||||
dbList.append(m_db);
|
||||
autoType()->performGlobalAutoType(dbList);
|
||||
}
|
||||
}
|
||||
|
||||
void DatabaseWidget::entryActivationSignalReceived(Entry* entry, EntryModel::ModelColumn column)
|
||||
|
|
@ -1066,3 +1084,16 @@ GroupView* DatabaseWidget::groupView() {
|
|||
EntryView* DatabaseWidget::entryView() {
|
||||
return m_entryView;
|
||||
}
|
||||
|
||||
void DatabaseWidget::showUnlockDialog()
|
||||
{
|
||||
m_unlockDatabaseDialog->clearForms();
|
||||
m_unlockDatabaseDialog->setDBFilename(m_filename);
|
||||
m_unlockDatabaseDialog->show();
|
||||
m_unlockDatabaseDialog->activateWindow();
|
||||
}
|
||||
|
||||
void DatabaseWidget::closeUnlockDialog()
|
||||
{
|
||||
m_unlockDatabaseDialog->close();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue