diff options
Diffstat (limited to 'options/bundle.cpp')
-rw-r--r-- | options/bundle.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/options/bundle.cpp b/options/bundle.cpp index 4d44521f..c78df274 100644 --- a/options/bundle.cpp +++ b/options/bundle.cpp @@ -31,12 +31,12 @@ bundle::~bundle() { } -void bundle::reload(std::shared_ptr<QSettings> settings) +void bundle::reload() { if (group_name.size()) { QMutexLocker l(&mtx); - saved = group(group_name, settings); + saved = group(group_name); const bool has_changes = is_modified(); transient = saved; @@ -51,7 +51,12 @@ void bundle::reload(std::shared_ptr<QSettings> settings) void bundle::set_all_to_default() { + QMutexLocker l(&mtx); + forall([](const QString&, base_value* val) { set_base_value_to_default(val); }); + + if (is_modified()) + group::mark_ini_modified(); } void bundle::store_kv(const QString& name, const QVariant& datum) @@ -72,10 +77,10 @@ bool bundle::contains(const QString &name) const return transient.contains(name); } -void bundle::save_deferred(QSettings& s) +void bundle::save() { if (QThread::currentThread() != qApp->thread()) - qCritical() << "group::save - current thread not ui thread"; + qDebug() << "group::save - current thread not ui thread"; if (group_name.size() == 0) return; @@ -84,12 +89,13 @@ void bundle::save_deferred(QSettings& s) { QMutexLocker l(&mtx); + if (is_modified()) { //qDebug() << "bundle" << group_name << "changed, saving"; modified_ = true; saved = transient; - saved.save_deferred(s); + saved.save(); } } @@ -97,11 +103,6 @@ void bundle::save_deferred(QSettings& s) emit saving(); } -void bundle::save() -{ - save_deferred(*group::ini_file()); -} - bool bundle::is_modified() const { QMutexLocker l(mtx); @@ -134,8 +135,6 @@ void bundler::after_profile_changed_() { QMutexLocker l(&implsgl_mtx); - std::shared_ptr<QSettings> s = group::ini_file(); - for (auto& kv : implsgl_data) { weak bundle = kv.second; @@ -143,7 +142,7 @@ void bundler::after_profile_changed_() if (bundle_) { //qDebug() << "bundle: reverting" << kv.first << "due to profile change"; - bundle_->reload(s); + bundle_->reload(); } } } |