mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-03-06 13:15:57 -05:00
Fix double warning display for database open
This commit is contained in:
parent
86cd2c09a4
commit
0fe06b3fbb
@ -162,7 +162,10 @@ void DatabaseOpenWidget::enterKey(const QString& pw, const QString& keyFile)
|
|||||||
void DatabaseOpenWidget::openDatabase()
|
void DatabaseOpenWidget::openDatabase()
|
||||||
{
|
{
|
||||||
KeePass2Reader reader;
|
KeePass2Reader reader;
|
||||||
CompositeKey masterKey = databaseKey();
|
CompositeKey* masterKey = databaseKey();
|
||||||
|
if (masterKey == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QFile file(m_filename);
|
QFile file(m_filename);
|
||||||
if (!file.open(QIODevice::ReadOnly)) {
|
if (!file.open(QIODevice::ReadOnly)) {
|
||||||
@ -174,7 +177,7 @@ void DatabaseOpenWidget::openDatabase()
|
|||||||
delete m_db;
|
delete m_db;
|
||||||
}
|
}
|
||||||
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
|
||||||
m_db = reader.readDatabase(&file, masterKey);
|
m_db = reader.readDatabase(&file, *masterKey);
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
|
|
||||||
if (m_db) {
|
if (m_db) {
|
||||||
@ -182,20 +185,21 @@ void DatabaseOpenWidget::openDatabase()
|
|||||||
m_ui->messageWidget->animatedHide();
|
m_ui->messageWidget->animatedHide();
|
||||||
}
|
}
|
||||||
emit editFinished(true);
|
emit editFinished(true);
|
||||||
}
|
} else {
|
||||||
else {
|
m_ui->messageWidget->showMessage(tr("Unable to open the database.").append("\n").append(reader.errorString()),
|
||||||
m_ui->messageWidget->showMessage(tr("Unable to open the database.")
|
MessageWidget::Error);
|
||||||
.append("\n").append(reader.errorString()), MessageWidget::Error);
|
|
||||||
m_ui->editPassword->clear();
|
m_ui->editPassword->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete masterKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
CompositeKey DatabaseOpenWidget::databaseKey()
|
CompositeKey* DatabaseOpenWidget::databaseKey()
|
||||||
{
|
{
|
||||||
CompositeKey masterKey;
|
CompositeKey* masterKey = new CompositeKey();
|
||||||
|
|
||||||
if (m_ui->checkPassword->isChecked()) {
|
if (m_ui->checkPassword->isChecked()) {
|
||||||
masterKey.addKey(PasswordKey(m_ui->editPassword->text()));
|
masterKey->addKey(PasswordKey(m_ui->editPassword->text()));
|
||||||
}
|
}
|
||||||
|
|
||||||
QHash<QString, QVariant> lastKeyFiles = config()->get("LastKeyFiles").toHash();
|
QHash<QString, QVariant> lastKeyFiles = config()->get("LastKeyFiles").toHash();
|
||||||
@ -206,11 +210,12 @@ CompositeKey DatabaseOpenWidget::databaseKey()
|
|||||||
QString keyFilename = m_ui->comboKeyFile->currentText();
|
QString keyFilename = m_ui->comboKeyFile->currentText();
|
||||||
QString errorMsg;
|
QString errorMsg;
|
||||||
if (!key.load(keyFilename, &errorMsg)) {
|
if (!key.load(keyFilename, &errorMsg)) {
|
||||||
m_ui->messageWidget->showMessage(tr("Can't open key file").append(":\n")
|
m_ui->messageWidget->showMessage(tr("Can't open key file").append(":\n").append(errorMsg),
|
||||||
.append(errorMsg), MessageWidget::Error);
|
MessageWidget::Error);
|
||||||
return CompositeKey();
|
delete masterKey;
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
masterKey.addKey(key);
|
masterKey->addKey(key);
|
||||||
lastKeyFiles[m_filename] = keyFilename;
|
lastKeyFiles[m_filename] = keyFilename;
|
||||||
} else {
|
} else {
|
||||||
lastKeyFiles.remove(m_filename);
|
lastKeyFiles.remove(m_filename);
|
||||||
@ -237,9 +242,9 @@ CompositeKey DatabaseOpenWidget::databaseKey()
|
|||||||
|
|
||||||
// read blocking mode from LSB and slot index number from second LSB
|
// read blocking mode from LSB and slot index number from second LSB
|
||||||
bool blocking = comboPayload & 1;
|
bool blocking = comboPayload & 1;
|
||||||
int slot = comboPayload >> 1;
|
int slot = comboPayload >> 1;
|
||||||
auto key = QSharedPointer<YkChallengeResponseKey>(new YkChallengeResponseKey(slot, blocking));
|
auto key = QSharedPointer<YkChallengeResponseKey>(new YkChallengeResponseKey(slot, blocking));
|
||||||
masterKey.addChallengeResponseKey(key);
|
masterKey->addChallengeResponseKey(key);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ signals:
|
|||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent* event) override;
|
void showEvent(QShowEvent* event) override;
|
||||||
void hideEvent(QHideEvent* event) override;
|
void hideEvent(QHideEvent* event) override;
|
||||||
CompositeKey databaseKey();
|
CompositeKey* databaseKey();
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
virtual void openDatabase();
|
virtual void openDatabase();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user