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
+
+
+