void AutoStartPage::save() { bool doRestart = false; /* * Get the previous settings */ QMap<QString, AutostartItem> previousItems(AutostartItem::createItemMap()); QMutableMapIterator<QString, AutostartItem> i(previousItems); while (i.hasNext()) { i.next(); if (AutostartUtils::isLXQtModule(i.value().file())) i.remove(); } /* * Get the settings from the Ui */ QMap<QString, AutostartItem> currentItems = mXdgAutoStartModel->items(); QMutableMapIterator<QString, AutostartItem> j(currentItems); while (j.hasNext()) { j.next(); if (AutostartUtils::isLXQtModule(j.value().file())) j.remove(); } /* Compare the settings */ if (previousItems.count() != currentItems.count()) { doRestart = true; } else { QMap<QString, AutostartItem>::const_iterator k = currentItems.constBegin(); while (k != currentItems.constEnd()) { if (previousItems.contains(k.key())) { if (k.value().file() != previousItems.value(k.key()).file()) { doRestart = true; break; } } else { doRestart = true; break; } ++k; } } if (doRestart) emit needRestart(); mXdgAutoStartModel->writeChanges(); }
void BasicSettings::save() { /* If the setting actually changed: * * Save the setting * * Emit a needsRestart signal */ bool doRestart = false; const QString windowManager = ui->wmComboBox->currentText(); const bool leaveConfirmation = ui->leaveConfirmationCheckBox->isChecked(); const bool lockBeforePowerActions = ui->lockBeforePowerActionsCheckBox->isChecked(); const int powerAfterLockDelay = ui->powerAfterLockDelaySpinBox->value(); QMap<QString, AutostartItem> previousItems(AutostartItem::createItemMap()); QMutableMapIterator<QString, AutostartItem> i(previousItems); while (i.hasNext()) { i.next(); if (!AutostartUtils::isLXQtModule(i.value().file())) i.remove(); } if (windowManager != m_settings->value(windowManagerKey, openboxValue).toString()) { m_settings->setValue(windowManagerKey, windowManager); doRestart = true; } if (leaveConfirmation != m_settings->value(leaveConfirmationKey, false).toBool()) { m_settings->setValue(leaveConfirmationKey, leaveConfirmation); doRestart = true; } if (lockBeforePowerActions != m_settings->value(lockBeforePowerActionsKey, true).toBool()) { m_settings->setValue(lockBeforePowerActionsKey, lockBeforePowerActions); doRestart = true; } if (powerAfterLockDelay != m_settings->value(powerActionsAfterLockDelayKey, 0).toInt()) { m_settings->setValue(powerActionsAfterLockDelayKey, powerAfterLockDelay); doRestart = true; } QMap<QString, AutostartItem> currentItems = m_moduleModel->items(); QMap<QString, AutostartItem>::const_iterator k = currentItems.constBegin(); while (k != currentItems.constEnd()) { if (previousItems.contains(k.key())) { if (k.value().file() != previousItems.value(k.key()).file()) { doRestart = true; break; } } else { doRestart = true; break; } ++k; } if (doRestart) emit needRestart(); m_moduleModel->writeChanges(); }