diff --git a/kcms/workspaceoptions/workspaceoptions.h b/kcms/workspaceoptions/workspaceoptions.h --- a/kcms/workspaceoptions/workspaceoptions.h +++ b/kcms/workspaceoptions/workspaceoptions.h @@ -55,14 +55,14 @@ void handleNeedsSave(); // QML variables - bool m_ostateToolTip; // Original state - bool m_stateToolTip; // Current state + bool m_toolTipOriginalState; // Original state + bool m_toolTipCurrentState; // Current state - bool m_ostateVisualFeedback; - bool m_stateVisualFeedback; + bool m_visualFeedbackOriginalState; + bool m_visualFeedbackCurrentState; - bool m_ostateSingleClick; - bool m_stateSingleClick; + bool m_singleClickOriginalState; + bool m_singleClickCurrentState; }; #endif // _KCM_WORKSPACEOPTIONS_H diff --git a/kcms/workspaceoptions/workspaceoptions.cpp b/kcms/workspaceoptions/workspaceoptions.cpp --- a/kcms/workspaceoptions/workspaceoptions.cpp +++ b/kcms/workspaceoptions/workspaceoptions.cpp @@ -21,101 +21,111 @@ #include #include #include -#include -#include +#include +#include #include <../migrationlib/kdelibs4config.h> -#include -#include +#include +#include K_PLUGIN_FACTORY_WITH_JSON(KCMWorkspaceOptionsFactory, "kcm_workspace.json", registerPlugin();) KCMWorkspaceOptions::KCMWorkspaceOptions(QObject *parent, const QVariantList& args) : KQuickAddons::ConfigModule(parent, args), - m_stateToolTip(true), - m_stateVisualFeedback(true), - m_stateSingleClick(true) + m_toolTipCurrentState(true), + m_visualFeedbackCurrentState(true), + m_singleClickCurrentState(true) { KAboutData* about = new KAboutData(QStringLiteral("kcm_workspace"), - i18n("Plasma Workspace global options"), - QStringLiteral("1.1"), - i18n("System Settings module for managing global options for the Plasma Workspace."), - KAboutLicense::GPL); + i18n("Plasma Workspace global options"), + QStringLiteral("1.1"), + i18n("System Settings module for managing global options for the Plasma Workspace."), + KAboutLicense::GPL); about->addAuthor(i18n("Furkan Tokac"), QString(), QStringLiteral("furkantokac34@gmail.com")); setAboutData(about); - setButtons( Default | Apply ); + setButtons(Default | Apply); } -/*ConfigModule functions*/ +// ***ConfigModule functions void KCMWorkspaceOptions::load() { bool state = false; KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); // Load toolTip { const KConfigGroup cg(config, QStringLiteral("PlasmaToolTips")); + state = cg.readEntry("Delay", 0.7) > 0; setToolTip(state); - m_ostateToolTip = getToolTip(); + + m_toolTipOriginalState = getToolTip(); } // Load visualFeedback { const KConfigGroup cg(config, QStringLiteral("OSD")); state = cg.readEntry(QStringLiteral("Enabled"), true); setVisualFeedback(state); - m_ostateVisualFeedback = getVisualFeedback(); + m_visualFeedbackOriginalState = getVisualFeedback(); } // Load singleClick { KSharedConfig::Ptr configKdeGlobals = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); const KConfigGroup cg(configKdeGlobals, QStringLiteral("KDE")); state = cg.readEntry(QStringLiteral("SingleClick"), true); setSingleClick(state); - m_ostateSingleClick = getSingleClick(); + m_singleClickOriginalState = getSingleClick(); } setNeedsSave(false); } void KCMWorkspaceOptions::save() { - KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); - // Save toolTip - { + if (getToolTip() != m_toolTipOriginalState) { + KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); KConfigGroup cg(config, QStringLiteral("PlasmaToolTips")); + cg.writeEntry("Delay", getToolTip() ? 0.7 : -1); - m_ostateToolTip = getToolTip(); + m_toolTipOriginalState = getToolTip(); + + config->sync(); } // Save visualFeedback - { + if (getVisualFeedback() != m_visualFeedbackOriginalState) { + KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); KConfigGroup cg(config, QStringLiteral("OSD")); + cg.writeEntry("Enabled", getVisualFeedback()); - m_ostateVisualFeedback = getVisualFeedback(); + m_visualFeedbackOriginalState = getVisualFeedback(); + + config->sync(); } // Save singleClick - KSharedConfig::Ptr configKdeGlobals = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); - KConfigGroup cg(configKdeGlobals, QStringLiteral("KDE")); - cg.writeEntry("SingleClick", getSingleClick()); - m_ostateSingleClick = getSingleClick(); - config->sync(); - configKdeGlobals->sync(); - - Kdelibs4SharedConfig::syncConfigGroup(QLatin1String("KDE"), "kdeglobals"); - - QDBusMessage message = QDBusMessage::createSignal("/KGlobalSettings", "org.kde.KGlobalSettings", "notifyChange"); - QList args; - args.append(KGlobalSettings::SettingsChanged); - args.append(KGlobalSettings::SETTINGS_MOUSE); - message.setArguments(args); - QDBusConnection::sessionBus().send(message); + if (getSingleClick() != m_singleClickOriginalState) { + KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); + KConfigGroup cg(config, QStringLiteral("KDE")); + cg.writeEntry("SingleClick", getSingleClick()); + m_singleClickOriginalState = getSingleClick(); + + config->sync(); + + Kdelibs4SharedConfig::syncConfigGroup(QLatin1String("KDE"), "kdeglobals"); + + QDBusMessage message = QDBusMessage::createSignal("/KGlobalSettings", "org.kde.KGlobalSettings", "notifyChange"); + QList args; + args.append(KGlobalSettings::SettingsChanged); + args.append(KGlobalSettings::SETTINGS_MOUSE); + message.setArguments(args); + QDBusConnection::sessionBus().send(message); + } setNeedsSave(false); } @@ -129,71 +139,71 @@ handleNeedsSave(); } -/*ToolTip functions*/ +// ***ToolTip functions bool KCMWorkspaceOptions::getToolTip() const { - return m_stateToolTip; + return m_toolTipCurrentState; } void KCMWorkspaceOptions::setToolTip(bool state) { // Prevent from binding loop - if( m_stateToolTip == state ) { + if (m_toolTipCurrentState == state) { return; } - m_stateToolTip = state; + m_toolTipCurrentState = state; emit toolTipChanged(); handleNeedsSave(); } -/*VisualFeedback functions*/ +// ***VisualFeedback functions bool KCMWorkspaceOptions::getVisualFeedback() const { - return m_stateVisualFeedback; + return m_visualFeedbackCurrentState; } void KCMWorkspaceOptions::setVisualFeedback(bool state) { // Prevent from binding loop - if( m_stateVisualFeedback == state ) { + if (m_visualFeedbackCurrentState == state) { return; } - m_stateVisualFeedback = state; + m_visualFeedbackCurrentState = state; emit visualFeedbackChanged(); handleNeedsSave(); } -/*SingleClick functions*/ +// ***SingleClick functions bool KCMWorkspaceOptions::getSingleClick() const { - return m_stateSingleClick; + return m_singleClickCurrentState; } void KCMWorkspaceOptions::setSingleClick(bool state) { // Prevent from binding loop - if( m_stateSingleClick == state ) { + if (m_singleClickCurrentState == state) { return; } - m_stateSingleClick = state; + m_singleClickCurrentState = state; emit singleClickChanged(); handleNeedsSave(); } -/*Other functions*/ +// ***Other functions // Checks if the current states are different than the first states. // If yes, setNeedsSave(true). void KCMWorkspaceOptions::handleNeedsSave() { - setNeedsSave(m_ostateToolTip != getToolTip() || - m_ostateVisualFeedback != getVisualFeedback() || - m_ostateSingleClick != getSingleClick()); + setNeedsSave(m_toolTipOriginalState != getToolTip() || + m_visualFeedbackOriginalState != getVisualFeedback() || + m_singleClickOriginalState != getSingleClick()); } #include "workspaceoptions.moc"