From 50034997004cd1cfc7f569a850bd0f98492097f9 Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Mon, 28 May 2012 20:16:49 +0200 Subject: [PATCH] Add settings option if visual changes mark databases as modified. --- src/core/Config.cpp | 1 + src/core/Group.cpp | 9 ++++++++- src/gui/SettingsWidget.cpp | 2 ++ src/gui/SettingsWidgetGeneral.ui | 10 ++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 74c50e003..3912a73fb 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -68,6 +68,7 @@ Config::Config() m_settings.reset(new QSettings(userPath, QSettings::IniFormat)); m_defaults.insert("RememberLastDatabases", true); + m_defaults.insert("ModifiedOnVisualChanges", true); m_defaults.insert("security/clearclipboard", true); m_defaults.insert("security/clearclipboardtimeout", 10); } diff --git a/src/core/Group.cpp b/src/core/Group.cpp index d7fbbd0d0..b5b79d700 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -17,6 +17,7 @@ #include "Group.h" +#include "core/Config.h" #include "core/DatabaseIcons.h" #include "core/Metadata.h" #include "core/Tools.h" @@ -225,7 +226,13 @@ void Group::setTimeInfo(const TimeInfo& timeInfo) void Group::setExpanded(bool expanded) { - set(m_isExpanded, expanded); + if (m_isExpanded != expanded) { + m_isExpanded = expanded; + updateTimeinfo(); + if (config()->get("ModifiedOnVisualChanges").toBool()) { + Q_EMIT modified(); + } + } } void Group::setDefaultAutoTypeSequence(const QString& sequence) diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index cd425d00e..113bcff9a 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -49,6 +49,7 @@ SettingsWidget::~SettingsWidget() void SettingsWidget::loadSettings() { m_generalUi->rememberLastDatabasesCheckBox->setChecked(config()->get("RememberLastDatabases").toBool()); + m_generalUi->modifiedOnVisualChangesCheckBox->setChecked(config()->get("ModifiedOnVisualChanges").toBool()); m_secUi->clearClipboardCheckBox->setChecked(config()->get("security/clearclipboard").toBool()); m_secUi->clearClipboardSpinBox->setValue(config()->get("security/clearclipboardtimeout").toInt()); @@ -58,6 +59,7 @@ void SettingsWidget::loadSettings() void SettingsWidget::saveSettings() { config()->set("RememberLastDatabases", m_generalUi->rememberLastDatabasesCheckBox->isChecked()); + config()->set("ModifiedOnVisualChanges", m_generalUi->modifiedOnVisualChangesCheckBox->isChecked()); config()->set("security/clearclipboard", m_secUi->clearClipboardCheckBox->isChecked()); config()->set("security/clearclipboardtimeout", m_secUi->clearClipboardSpinBox->value()); diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index 9046ed78a..e4acfb6b8 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -13,6 +13,16 @@ + + + + Mark as modified on minor visual changes + + + true + + +