summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-09-02 16:09:31 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-09-02 16:09:31 -0400
commit7f0fa1069f07d90a92be7073b11bab86bac7b2d2 (patch)
tree0ee51756f13b2b84d2d542c86a3a6f11fe11cd06 /src/settings.cpp
parent209c27c7a27e2f6cb34f122a929c15eb3d1e60b7 (diff)
don't log widget and geometry setting changes
fixed mod info dialog tab order using different settings for read and write mod info dialog now doesn't complain when no tab order exists in the settings only remove section when the array is larger, prevents logging changes when nothing actually changed
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 8ae7c343..a33005b6 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -210,7 +210,7 @@ std::vector<std::map<QString, QVariant>> Settings::executables() const
std::map<QString, QVariant> map;
for (auto&& key : sra.keys()) {
- map[key] = m_Settings.value(key);
+ map[key] = sra.get<QVariant>(key);
}
v.push_back(map);
@@ -693,7 +693,7 @@ QStringList GeometrySettings::modInfoTabOrder() const
}
} else {
// string list since 2.2.1
- QString string = m_Settings.value("mod_info_tab_order").toString();
+ QString string = get<QString>(m_Settings, "Widgets", "ModInfoTabOrder", "");
QTextStream stream(&string);
while (!stream.atEnd()) {
@@ -708,7 +708,7 @@ QStringList GeometrySettings::modInfoTabOrder() const
void GeometrySettings::setModInfoTabOrder(const QString& names)
{
- set(m_Settings, "Geometry", "mod_info_tab_order", names);
+ set(m_Settings, "Widgets", "ModInfoTabOrder", names);
}
void GeometrySettings::centerOnMainWindowMonitor(QWidget* w)
@@ -1061,13 +1061,21 @@ void PluginSettings::clearPlugins()
{
m_Plugins.clear();
m_PluginSettings.clear();
-
m_PluginBlacklist.clear();
+ m_PluginBlacklist = readPluginBlacklist();
+}
+
+QSet<QString> PluginSettings::readPluginBlacklist() const
+{
+ QSet<QString> set;
+
ScopedReadArray sra(m_Settings, "pluginBlacklist");
sra.for_each([&]{
- m_PluginBlacklist.insert(sra.get<QString>("name"));
+ set.insert(sra.get<QString>("name"));
});
+
+ return set;
}
void PluginSettings::registerPlugin(IPlugin *plugin)
@@ -1166,9 +1174,14 @@ void PluginSettings::addBlacklistPlugin(const QString &fileName)
void PluginSettings::writePluginBlacklist()
{
- removeSection(m_Settings, "pluginBlacklist");
+ const auto current = readPluginBlacklist();
+
+ if (current.size() > m_PluginBlacklist.size()) {
+ // Qt can't remove array elements, the section must be cleared
+ removeSection(m_Settings, "pluginBlacklist");
+ }
- ScopedWriteArray swa(m_Settings, "pluginBlacklist");
+ ScopedWriteArray swa(m_Settings, "pluginBlacklist", m_PluginBlacklist.size());
for (const QString &plugin : m_PluginBlacklist) {
swa.next();