Skip to content

Commit

Permalink
Fix double warning display for database open
Browse files Browse the repository at this point in the history
  • Loading branch information
louib committed Oct 5, 2017
1 parent 5098866 commit 564de84
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
37 changes: 21 additions & 16 deletions src/gui/DatabaseOpenWidget.cpp
Expand Up @@ -151,7 +151,10 @@ void DatabaseOpenWidget::enterKey(const QString& pw, const QString& keyFile)
void DatabaseOpenWidget::openDatabase()
{
KeePass2Reader reader;
CompositeKey masterKey = databaseKey();
CompositeKey* masterKey = databaseKey();
if (masterKey == nullptr) {
return;
}

QFile file(m_filename);
if (!file.open(QIODevice::ReadOnly)) {
Expand All @@ -163,28 +166,29 @@ void DatabaseOpenWidget::openDatabase()
delete m_db;
}
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
m_db = reader.readDatabase(&file, masterKey);
m_db = reader.readDatabase(&file, *masterKey);
QApplication::restoreOverrideCursor();

if (m_db) {
if (m_ui->messageWidget->isVisible()) {
m_ui->messageWidget->animatedHide();
}
emit editFinished(true);
}
else {
m_ui->messageWidget->showMessage(tr("Unable to open the database.")
.append("\n").append(reader.errorString()), MessageWidget::Error);
} else {
m_ui->messageWidget->showMessage(tr("Unable to open the database.").append("\n").append(reader.errorString()),
MessageWidget::Error);
m_ui->editPassword->clear();
}

delete masterKey;
}

CompositeKey DatabaseOpenWidget::databaseKey()
CompositeKey* DatabaseOpenWidget::databaseKey()
{
CompositeKey masterKey;
CompositeKey* masterKey = new CompositeKey();

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();
Expand All @@ -195,11 +199,12 @@ CompositeKey DatabaseOpenWidget::databaseKey()
QString keyFilename = m_ui->comboKeyFile->currentText();
QString errorMsg;
if (!key.load(keyFilename, &errorMsg)) {
m_ui->messageWidget->showMessage(tr("Can't open key file").append(":\n")
.append(errorMsg), MessageWidget::Error);
return CompositeKey();
m_ui->messageWidget->showMessage(tr("Can't open key file").append(":\n").append(errorMsg),
MessageWidget::Error);
delete masterKey;
return nullptr;
}
masterKey.addKey(key);
masterKey->addKey(key);
lastKeyFiles[m_filename] = keyFilename;
} else {
lastKeyFiles.remove(m_filename);
Expand All @@ -226,9 +231,9 @@ CompositeKey DatabaseOpenWidget::databaseKey()

// read blocking mode from LSB and slot index number from second LSB
bool blocking = comboPayload & 1;
int slot = comboPayload >> 1;
auto key = QSharedPointer<YkChallengeResponseKey>(new YkChallengeResponseKey(slot, blocking));
masterKey.addChallengeResponseKey(key);
int slot = comboPayload >> 1;
auto key = QSharedPointer<YkChallengeResponseKey>(new YkChallengeResponseKey(slot, blocking));
masterKey->addChallengeResponseKey(key);
}
#endif

Expand Down
2 changes: 1 addition & 1 deletion src/gui/DatabaseOpenWidget.h
Expand Up @@ -51,7 +51,7 @@ public slots:

protected:
void showEvent(QShowEvent* event) override;
CompositeKey databaseKey();
CompositeKey* databaseKey();

protected slots:
virtual void openDatabase();
Expand Down

0 comments on commit 564de84

Please sign in to comment.