diff --git a/src/format/KdbxReader.cpp b/src/format/KdbxReader.cpp index 5610897c8..2a51c1225 100644 --- a/src/format/KdbxReader.cpp +++ b/src/format/KdbxReader.cpp @@ -55,6 +55,8 @@ bool KdbxReader::readMagicNumbers(QIODevice* device, quint32& sig1, quint32& sig * Read KDBX stream from device. * The device will automatically be reset to 0 before reading. * + * Passing a null key will only read in the unprotected headers. + * * @param device input device * @param key database encryption composite key * @param db database to read into @@ -91,6 +93,11 @@ bool KdbxReader::readDatabase(QIODevice* device, QSharedPointeropen(m_filename, nullptr, &error); + m_ui->fileNameLabel->setRawText(m_filename); // Set the public name if defined @@ -296,7 +302,9 @@ void DatabaseOpenWidget::clearForms() toggleHardwareKeyComponent(false); toggleQuickUnlockScreen(); - m_db.reset(new Database(m_filename)); + QString error; + m_db.reset(new Database()); + m_db->open(m_filename, nullptr, &error); } QSharedPointer DatabaseOpenWidget::database() @@ -361,6 +369,8 @@ void DatabaseOpenWidget::openDatabase() msgBox->exec(); if (msgBox->clickedButton() != btn) { m_db.reset(new Database()); + m_db->open(m_filename, nullptr, &error); + m_ui->messageWidget->showMessage(tr("Database unlock canceled."), MessageWidget::MessageType::Error); setUserInteractionLock(false); return;