Add hasKey property to database and also make it accessible via the DatabaseWidget.

This commit is contained in:
Florian Geyer 2012-04-16 21:03:35 +02:00 committed by Felix Geyer
parent af8e21f125
commit eb4f82a7ed
4 changed files with 17 additions and 1 deletions

View File

@ -27,6 +27,7 @@
Database::Database()
{
m_hasKey = false;
m_metadata = new Metadata(this);
setRootGroup(new Group());
rootGroup()->setUuid(Uuid::random());
@ -164,6 +165,7 @@ void Database::setKey(const CompositeKey& key, const QByteArray& transformSeed,
{
m_transformSeed = transformSeed;
m_transformedMasterKey = key.transform(transformSeed, transformRounds());
m_hasKey = true;
if (updateChangedTime) {
m_metadata->setMasterKeyChanged(QDateTime::currentDateTime());
}
@ -174,3 +176,8 @@ void Database::setKey(const CompositeKey& key)
{
setKey(key, Random::randomArray(32));
}
bool Database::hasKey()
{
return m_hasKey;
}

View File

@ -81,6 +81,7 @@ public:
* Sets the database key and generates a random transform seed.
*/
void setKey(const CompositeKey& key);
bool hasKey();
Q_SIGNALS:
void groupDataChanged(Group* group);
@ -103,6 +104,8 @@ private:
QByteArray m_transformSeed;
quint64 m_transformRounds;
QByteArray m_transformedMasterKey;
bool m_hasKey;
};
#endif // KEEPASSX_DATABASE_H

View File

@ -161,7 +161,7 @@ void DatabaseWidget::updateMasterKey(bool accepted)
m_db->setKey(m_changeMasterKeyWidget->newMasterKey());
}
else if (m_db->transformedMasterKey().isEmpty()) { // TODO other test?
else if (m_db->hasKey()) {
Q_EMIT closeRequest();
return;
}
@ -184,3 +184,8 @@ void DatabaseWidget::switchToMasterKeyChange()
m_changeMasterKeyWidget->clearForms();
setCurrentIndex(3);
}
bool DatabaseWidget::dbHasKey()
{
return m_db->hasKey();
}

View File

@ -37,6 +37,7 @@ public:
explicit DatabaseWidget(Database* db, QWidget* parent = 0);
GroupView* groupView();
EntryView* entryView();
bool dbHasKey();
Q_SIGNALS:
void closeRequest();