From 7893a2e84d839ad4e90109caa2daa49f6bb7a6c5 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 26 Apr 2014 18:27:52 +0200 Subject: [PATCH 1/4] Rename Group::includeInSearch() to resolveSearchingEnabled(). Make it public and drop the resolveInherit parameter. --- src/core/Group.cpp | 21 +++++++++++++-------- src/core/Group.h | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/core/Group.cpp b/src/core/Group.cpp index ada9e972..b8a959d4 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -616,7 +616,17 @@ QList Group::search(const QString& searchTerm, Qt::CaseSensitivity caseS bool resolveInherit) { QList searchResult; - if (includeInSearch(resolveInherit)) { + bool search; + if (resolveInherit) { + search = resolveSearchingEnabled(); + } + else if (searchingEnabled() == Disable) { + search = false; + } + else { + search = true; + } + if (search) { Q_FOREACH (Entry* entry, m_entries) { if (entry->match(searchTerm, caseSensitivity)) { searchResult.append(entry); @@ -629,7 +639,7 @@ QList Group::search(const QString& searchTerm, Qt::CaseSensitivity caseS return searchResult; } -bool Group::includeInSearch(bool resolveInherit) +bool Group::resolveSearchingEnabled() const { switch (m_data.searchingEnabled) { case Inherit: @@ -637,12 +647,7 @@ bool Group::includeInSearch(bool resolveInherit) return true; } else { - if (resolveInherit) { - return m_parent->includeInSearch(true); - } - else { - return true; - } + return m_parent->resolveSearchingEnabled(); } case Enable: return true; diff --git a/src/core/Group.h b/src/core/Group.h index 558bebcc..4e6b9bd4 100644 --- a/src/core/Group.h +++ b/src/core/Group.h @@ -65,6 +65,7 @@ public: QString defaultAutoTypeSequence() const; Group::TriState autoTypeEnabled() const; Group::TriState searchingEnabled() const; + bool resolveSearchingEnabled() const; Entry* lastTopVisibleEntry() const; bool isExpired() const; @@ -147,7 +148,6 @@ private: void cleanupParent(); void recCreateDelObjects(); void updateTimeinfo(); - bool includeInSearch(bool resolveInherit); QPointer m_db; Uuid m_uuid; From 5de62a5ef4336192f566bd8661a151d6de04b8a4 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 26 Apr 2014 18:30:22 +0200 Subject: [PATCH 2/4] Add Group::resolveAutoTypeEnabled(). --- src/core/Group.cpp | 20 ++++++++++++++++++++ src/core/Group.h | 1 + 2 files changed, 21 insertions(+) diff --git a/src/core/Group.cpp b/src/core/Group.cpp index b8a959d4..4c04b484 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -658,3 +658,23 @@ bool Group::resolveSearchingEnabled() const return false; } } + +bool Group::resolveAutoTypeEnabled() const +{ + switch (m_data.autoTypeEnabled) { + case Inherit: + if (!m_parent) { + return true; + } + else { + return m_parent->resolveAutoTypeEnabled(); + } + case Enable: + return true; + case Disable: + return false; + default: + Q_ASSERT(false); + return false; + } +} diff --git a/src/core/Group.h b/src/core/Group.h index 4e6b9bd4..4e08f5b3 100644 --- a/src/core/Group.h +++ b/src/core/Group.h @@ -66,6 +66,7 @@ public: Group::TriState autoTypeEnabled() const; Group::TriState searchingEnabled() const; bool resolveSearchingEnabled() const; + bool resolveAutoTypeEnabled() const; Entry* lastTopVisibleEntry() const; bool isExpired() const; From c917096d3cfd5159630397bb6cf51b017f85a39e Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 26 Apr 2014 18:33:09 +0200 Subject: [PATCH 3/4] Show the inherited value in EditGroupWidget. --- src/gui/group/EditGroupWidget.cpp | 25 ++++++++++++++++++++----- src/gui/group/EditGroupWidget.h | 2 +- src/gui/group/EditGroupWidgetMain.ui | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/gui/group/EditGroupWidget.cpp b/src/gui/group/EditGroupWidget.cpp index c24afb98..b26fe4c9 100644 --- a/src/gui/group/EditGroupWidget.cpp +++ b/src/gui/group/EditGroupWidget.cpp @@ -37,9 +37,6 @@ EditGroupWidget::EditGroupWidget(QWidget* parent) add(tr("Icon"), m_editGroupWidgetIcons); add(tr("Properties"), m_editWidgetProperties); - addTriStateItems(m_mainUi->searchComboBox); - addTriStateItems(m_mainUi->autotypeComboBox); - connect(m_mainUi->expireCheck, SIGNAL(toggled(bool)), m_mainUi->expireDatePicker, SLOT(setEnabled(bool))); connect(this, SIGNAL(accepted()), SLOT(save())); @@ -62,6 +59,15 @@ void EditGroupWidget::loadGroup(Group* group, bool create, Database* database) setHeadline(tr("Edit group")); } + if (m_group->parentGroup()) { + addTriStateItems(m_mainUi->searchComboBox, m_group->parentGroup()->resolveSearchingEnabled()); + addTriStateItems(m_mainUi->autotypeComboBox, m_group->parentGroup()->resolveAutoTypeEnabled()); + } + else { + addTriStateItems(m_mainUi->searchComboBox, true); + addTriStateItems(m_mainUi->autotypeComboBox, true); + } + m_mainUi->editName->setText(m_group->name()); m_mainUi->editNotes->setPlainText(m_group->notes()); m_mainUi->expireCheck->setChecked(group->timeInfo().expires()); @@ -120,9 +126,18 @@ void EditGroupWidget::cancel() Q_EMIT editFinished(false); } -void EditGroupWidget::addTriStateItems(QComboBox* comboBox) +void EditGroupWidget::addTriStateItems(QComboBox* comboBox, bool inheritDefault) { - comboBox->addItem(tr("Inherit")); + QString inheritDefaultString; + if (inheritDefault) { + inheritDefaultString = tr("Enable"); + } + else { + inheritDefaultString = tr("Disable"); + } + + comboBox->clear(); + comboBox->addItem(tr("Inherit from parent group (%1)").arg(inheritDefaultString)); comboBox->addItem(tr("Enable")); comboBox->addItem(tr("Disable")); } diff --git a/src/gui/group/EditGroupWidget.h b/src/gui/group/EditGroupWidget.h index de075be8..971b6de2 100644 --- a/src/gui/group/EditGroupWidget.h +++ b/src/gui/group/EditGroupWidget.h @@ -50,7 +50,7 @@ private Q_SLOTS: void cancel(); private: - void addTriStateItems(QComboBox* comboBox); + void addTriStateItems(QComboBox* comboBox, bool inheritValue); int indexFromTriState(Group::TriState triState); Group::TriState triStateFromIndex(int index); diff --git a/src/gui/group/EditGroupWidgetMain.ui b/src/gui/group/EditGroupWidgetMain.ui index c528c18a..fdbf054d 100644 --- a/src/gui/group/EditGroupWidgetMain.ui +++ b/src/gui/group/EditGroupWidgetMain.ui @@ -66,7 +66,7 @@ - Autotype + Auto-type From e263c475c90360a2b46225316f65e05a66f81eb6 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 26 Apr 2014 18:34:33 +0200 Subject: [PATCH 4/4] Increase default number of transform rounds to 100000. Even low-end smartphone should be able to handle that. --- src/core/Database.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/Database.cpp b/src/core/Database.cpp index 0394051f..4c888eab 100644 --- a/src/core/Database.cpp +++ b/src/core/Database.cpp @@ -37,7 +37,7 @@ Database::Database() { m_data.cipher = KeePass2::CIPHER_AES; m_data.compressionAlgo = CompressionGZip; - m_data.transformRounds = 50000; + m_data.transformRounds = 100000; m_data.hasKey = false; setRootGroup(new Group());