diff --git a/app/layout/abstractlayout.cpp b/app/layout/abstractlayout.cpp index 1df97bfc0..e8393e81f 100644 --- a/app/layout/abstractlayout.cpp +++ b/app/layout/abstractlayout.cpp @@ -349,6 +349,13 @@ QString AbstractLayout::layoutName(const QString &fileName) return layoutName; } +void AbstractLayout::syncSettings() +{ + if (QFile(file()).exists()) { + m_layoutGroup.sync(); + } +} + void AbstractLayout::loadConfig() { m_version = m_layoutGroup.readEntry("version", 2); diff --git a/app/layout/abstractlayout.h b/app/layout/abstractlayout.h index 76f51d663..35dc887e5 100644 --- a/app/layout/abstractlayout.h +++ b/app/layout/abstractlayout.h @@ -117,6 +117,8 @@ public: virtual Type type() const; + void syncSettings(); + // STATIC static QString defaultCustomTextColor(); static QString defaultCustomBackground(); diff --git a/app/layout/genericlayout.cpp b/app/layout/genericlayout.cpp index 8c48ab29a..0453263aa 100644 --- a/app/layout/genericlayout.cpp +++ b/app/layout/genericlayout.cpp @@ -1674,6 +1674,7 @@ void GenericLayout::unlock() void GenericLayout::syncToLayoutFile(bool removeLayoutId) { + syncSettings(); m_storage->syncToLayoutFile(removeLayoutId); } diff --git a/app/settings/handlers/tablayoutshandler.cpp b/app/settings/handlers/tablayoutshandler.cpp index b5107af73..695700e6d 100644 --- a/app/settings/handlers/tablayoutshandler.cpp +++ b/app/settings/handlers/tablayoutshandler.cpp @@ -577,6 +577,7 @@ void TabLayouts::on_export_layout() //! Update ALL active original layouts before exporting, m_corona->layoutsManager()->synchronizer()->syncActiveLayoutsToOriginalFiles(); + m_corona->universalSettings()->syncSettings(); QFileDialog *exportFileDialog = new QFileDialog(m_parentDialog, i18n("Export Layout"), QDir::homePath(), QStringLiteral("layout.latte")); diff --git a/app/settings/universalsettings.cpp b/app/settings/universalsettings.cpp index c521cc857..86c3cd6a7 100644 --- a/app/settings/universalsettings.cpp +++ b/app/settings/universalsettings.cpp @@ -492,6 +492,11 @@ void UniversalSettings::setScreenScales(QString screenName, float widthScale, fl emit screenScalesChanged(); } +void UniversalSettings::syncSettings() +{ + m_universalGroup.sync(); +} + void UniversalSettings::loadConfig() { m_version = m_universalGroup.readEntry("version", 1); diff --git a/app/settings/universalsettings.h b/app/settings/universalsettings.h index caa09c44f..91d62e34a 100644 --- a/app/settings/universalsettings.h +++ b/app/settings/universalsettings.h @@ -131,6 +131,8 @@ public slots: Q_INVOKABLE float screenHeightScale(QString screenName) const; Q_INVOKABLE void setScreenScales(QString screenName, float widthScale, float heightScale); + void syncSettings(); + signals: void autostartChanged(); void badges3DStyleChanged();