From 21e257e64d1ced3230c27bc726544b8803bf7105 Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Wed, 6 Jun 2012 19:59:10 +0200 Subject: [PATCH] Re-add truncation of history entries. --- src/gui/DatabaseSettingsWidget.cpp | 34 ++++++++++++++++++++++++++---- src/gui/DatabaseSettingsWidget.h | 2 ++ src/gui/DatabaseWidget.cpp | 8 ------- src/gui/DatabaseWidget.h | 2 -- 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/gui/DatabaseSettingsWidget.cpp b/src/gui/DatabaseSettingsWidget.cpp index b47bacca3..33a700bc6 100644 --- a/src/gui/DatabaseSettingsWidget.cpp +++ b/src/gui/DatabaseSettingsWidget.cpp @@ -19,6 +19,7 @@ #include "ui_DatabaseSettingsWidget.h" #include "core/Database.h" +#include "core/Group.h" #include "core/Metadata.h" #include "keys/CompositeKey.h" @@ -84,17 +85,34 @@ void DatabaseSettingsWidget::save() meta->setRecycleBinEnabled(m_ui->recycleBinEnabledCheckBox->isChecked()); m_db->setTransformRounds(m_ui->transformRoundsSpinBox->value()); + bool truncate = false; + + int historyMaxItems; if (m_ui->historyMaxItemsCheckBox->isChecked()) { - meta->setHistoryMaxItems(m_ui->historyMaxItemsSpinBox->value()); + historyMaxItems = m_ui->historyMaxItemsSpinBox->value(); } else { - meta->setHistoryMaxItems(-1); + historyMaxItems = -1; } + if (historyMaxItems != meta->historyMaxItems()) { + meta->setHistoryMaxItems(historyMaxItems); + truncate = true; + } + + int historyMaxSize; if (m_ui->historyMaxSizeCheckBox->isChecked()) { - meta->setHistoryMaxSize(m_ui->historyMaxSizeSpinBox->value() * 1048576); + historyMaxSize = m_ui->historyMaxSizeSpinBox->value() * 1048576; } else { - meta->setHistoryMaxSize(-1); + historyMaxSize = -1; + } + if (historyMaxSize != meta->historyMaxSize()) { + meta->setHistoryMaxSize(historyMaxSize); + truncate = true; + } + + if (truncate) { + truncateHistories(); } Q_EMIT editFinished(true); @@ -111,3 +129,11 @@ void DatabaseSettingsWidget::transformRoundsBenchmark() m_ui->transformRoundsSpinBox->setValue(CompositeKey::transformKeyBenchmark(1000)); QApplication::restoreOverrideCursor(); } + +void DatabaseSettingsWidget::truncateHistories() +{ + QList allEntries = m_db->rootGroup()->entriesRecursive(false); + Q_FOREACH (Entry* entry, allEntries) { + entry->truncateHistory(); + } +} diff --git a/src/gui/DatabaseSettingsWidget.h b/src/gui/DatabaseSettingsWidget.h index 65d608ffd..bd83abe49 100644 --- a/src/gui/DatabaseSettingsWidget.h +++ b/src/gui/DatabaseSettingsWidget.h @@ -47,6 +47,8 @@ private Q_SLOTS: void transformRoundsBenchmark(); private: + void truncateHistories(); + const QScopedPointer m_ui; Database* m_db; diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index 399b1b008..d1327cd54 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -581,14 +581,6 @@ bool DatabaseWidget::canDeleteCurrentGoup() return !isRootGroup && !isRecycleBin; } -void DatabaseWidget::truncateHistories() -{ - QList allEntries = m_db->rootGroup()->entriesRecursive(false); - Q_FOREACH (Entry* entry, allEntries) { - entry->truncateHistory(); - } -} - void DatabaseWidget::clearLastGroup(Group* group) { if (group) { diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index 4e86473c2..c055db7c1 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -110,8 +110,6 @@ private Q_SLOTS: void showEntryContextMenu(const QPoint& pos); private: - void truncateHistories(); - Database* const m_db; const QScopedPointer m_searchUi; QWidget* const m_searchWidget;