@@ -54,6 +54,7 @@ int main(int argc, char *argv[])
GUIBase base;
base.loader()->load();
+ QObject::connect(&app, &QApplication::aboutToQuit, [&] () { base.save(false); });
engine.rootContext()->setContextProperty("base", &base);
KPackage::Package package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML");
@@ -64,7 +64,7 @@ FancontrolKCM::FancontrolKCM(QObject *parent, const QVariantList& args)
void FancontrolKCM::save()
{
- m_base->loader()->save();
+ m_base->save(true);
if (m_base->systemdCommunicator()->serviceActive() && m_manualControl)
m_base->systemdCommunicator()->restartService();
@@ -67,6 +67,14 @@ void GUIBase::load()
#endif
}
+void GUIBase::save(bool saveLoader)
+{
+ m_config->save();
+
+ if (saveLoader)
+ m_loader->save();
+}
qreal GUIBase::maxTemp() const
return m_config->findItem("MaxTemp")->property().toReal();
@@ -74,6 +74,7 @@ public:
void setServiceName(const QString &name);
void setUnit(int unit) { if (unit != m_unit) { m_unit = unit; emit unitChanged(); } }
void load();
+ void save(bool saveLoader = false);
Q_INVOKABLE bool hasSystemdCommunicator() const { return SYSTEMD_BOOL; }