diff --git a/kcms/workspaceoptions/package/contents/ui/main.qml b/kcms/workspaceoptions/package/contents/ui/main.qml --- a/kcms/workspaceoptions/package/contents/ui/main.qml +++ b/kcms/workspaceoptions/package/contents/ui/main.qml @@ -18,83 +18,68 @@ import QtQuick 2.7 import QtQuick.Controls 1.4 as Controls import QtQuick.Layouts 1.3 as Layouts -import QtQuick.Controls.Styles 1.4 as Styles +import org.kde.kirigami 2.4 as Kirigami import org.kde.kcm 1.1 as KCM import org.kde.plasma.core 2.0 as PlasmaCore -Item { +KCM.SimpleKCM { id: root - Controls.ScrollView { - anchors.fill: parent + Kirigami.FormLayout { + id: formLayout - Layouts.ColumnLayout { - id: maincol - spacing: units.largeSpacing + // VisaulBehavior Settings + Controls.CheckBox { + id: showToolTips + Kirigami.FormData.label: i18n("Visual behavior:") + text: i18n("Display informational tooltips on mouse hover") + checked: kcm.toolTip + onCheckedChanged: kcm.toolTip = checked + } - // General Settings - Column { - spacing: units.smallSpacing - leftPadding: units.smallSpacing + Controls.CheckBox { + id: showVisualFeedback + text: i18n("Display visual feedback for status changes") + checked: kcm.visualFeedback + onCheckedChanged: kcm.visualFeedback = checked + } - Controls.Label { - text: i18n("General Settings") - } + Connections { + target: kcm + onToolTipChanged: showToolTips.checked = kcm.toolTip + onVisualFeedbackChanged: showVisualFeedback.checked = kcm.visualFeedback + } - Controls.CheckBox { - id: showToolTips - text: i18n("Display informational tooltips on mouse hover") - checked: kcm.toolTip - onCheckedChanged: kcm.toolTip = checked - } + Kirigami.Separator { + } - Controls.CheckBox { - id: showVisualFeedback - text: i18n("Display visual feedback for status changes") - checked: kcm.visualFeedback - onCheckedChanged: kcm.visualFeedback = checked - } + // ClickBehavior Settings + Controls.ExclusiveGroup { + id: clickBehaviorGroup + } - Connections { - target: kcm - onToolTipChanged: showToolTips.checked = kcm.toolTip - onVisualFeedbackChanged: showVisualFeedback.checked = kcm.visualFeedback - } - } - - // ClickBehaviour Settings - Column { - spacing: units.smallSpacing - leftPadding: units.smallSpacing - Controls.ExclusiveGroup { id: clickBehaviourGroup } - - Controls.Label { - text: i18n("Click Behaviour") - } - - Controls.RadioButton { - id: singleClick - text: i18n("Single-click to open files and folders") - checked: kcm.singleClick - exclusiveGroup: clickBehaviourGroup - onCheckedChanged: kcm.singleClick = checked - } + Controls.RadioButton { + id: singleClick + Kirigami.FormData.label: i18n("Click behavior:") + text: i18n("Single-click to open files and folders") + checked: kcm.singleClick + exclusiveGroup: clickBehaviorGroup + onCheckedChanged: kcm.singleClick = checked + } - Controls.RadioButton { - id: doubleClick - text: i18n("Double-click to open files and folders (select icons on first click)") - exclusiveGroup: clickBehaviourGroup - } + Controls.RadioButton { + id: doubleClick + text: i18n("Double-click to open files and folders (single click to select)") + exclusiveGroup: clickBehaviorGroup + } - Connections { - target: kcm - onSingleClickChanged: { - singleClick.checked = kcm.singleClick - doubleClick.checked = !singleClick.checked - } - } + Connections { + target: kcm + onSingleClickChanged: { + singleClick.checked = kcm.singleClick + doubleClick.checked = !singleClick.checked } - } // END Layouts.ColumnLayout - } // END Controls.ScrollView -} // END Item + } + } +} diff --git a/kcms/workspaceoptions/workspaceoptions.cpp b/kcms/workspaceoptions/workspaceoptions.cpp --- a/kcms/workspaceoptions/workspaceoptions.cpp +++ b/kcms/workspaceoptions/workspaceoptions.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include <../migrationlib/kdelibs4config.h> @@ -45,7 +45,7 @@ about->addAuthor(i18n("Furkan Tokac"), QString(), QStringLiteral("furkantokac34@gmail.com")); setAboutData(about); - setButtons( Default | Apply ); + setButtons(Default | Apply); } /*ConfigModule functions*/ @@ -57,8 +57,10 @@ // Load toolTip { const KConfigGroup cg(config, QStringLiteral("PlasmaToolTips")); + state = cg.readEntry("Delay", 0.7) > 0; setToolTip(state); + m_ostateToolTip = getToolTip(); } @@ -84,38 +86,46 @@ void KCMWorkspaceOptions::save() { - KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); - // Save toolTip - { + if (m_stateToolTip != m_ostateToolTip) { + KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); KConfigGroup cg(config, QStringLiteral("PlasmaToolTips")); + cg.writeEntry("Delay", getToolTip() ? 0.7 : -1); m_ostateToolTip = getToolTip(); + + config->sync(); } // Save visualFeedback - { + if (m_stateVisualFeedback != m_ostateVisualFeedback) { + KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("plasmarc")); KConfigGroup cg(config, QStringLiteral("OSD")); + cg.writeEntry("Enabled", getVisualFeedback()); m_ostateVisualFeedback = 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 (m_stateSingleClick != m_ostateSingleClick) { + KSharedConfig::Ptr config = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); + KConfigGroup cg(config, QStringLiteral("KDE")); + cg.writeEntry("SingleClick", getSingleClick()); + m_ostateSingleClick = 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); } @@ -138,7 +148,7 @@ void KCMWorkspaceOptions::setToolTip(bool state) { // Prevent from binding loop - if( m_stateToolTip == state ) { + if (m_stateToolTip == state) { return; } @@ -157,7 +167,7 @@ void KCMWorkspaceOptions::setVisualFeedback(bool state) { // Prevent from binding loop - if( m_stateVisualFeedback == state ) { + if (m_stateVisualFeedback == state) { return; } @@ -176,7 +186,7 @@ void KCMWorkspaceOptions::setSingleClick(bool state) { // Prevent from binding loop - if( m_stateSingleClick == state ) { + if (m_stateSingleClick == state) { return; }