Index: kcms/workspaceoptions/package/contents/ui/main.qml =================================================================== --- kcms/workspaceoptions/package/contents/ui/main.qml +++ kcms/workspaceoptions/package/contents/ui/main.qml @@ -39,7 +39,6 @@ leftPadding: units.smallSpacing Controls.Label { - id: generalSettings text: i18n("General Settings") } @@ -63,6 +62,42 @@ onVisualFeedbackChanged: showVisualFeedback.checked = kcm.visualFeedback } } + + // ClickBehaviour Settings + Column { + spacing: 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") + exclusiveGroup: clickBehaviourGroup + onCheckedChanged: kcm.singleClick = checked + } + + Controls.RadioButton { + id: doubleClick + text: i18n("Double-click to open files and folders") + exclusiveGroup: clickBehaviourGroup + } + + Connections { + target: kcm + /*onClickBehaviourChanged: { + if( kcm.clickBehaviour === 0 ) { + singleClick.checked = false + doubleClick.checked = true + } else { + singleClick.checked = true + doubleClick.checked = false + } + }*/ + } + } } // END Layouts.ColumnLayout } // END Controls.ScrollView } // END Item Index: kcms/workspaceoptions/workspaceoptions.h =================================================================== --- kcms/workspaceoptions/workspaceoptions.h +++ kcms/workspaceoptions/workspaceoptions.h @@ -25,6 +25,7 @@ Q_OBJECT Q_PROPERTY(bool toolTip READ getToolTip WRITE setToolTip NOTIFY toolTipChanged) Q_PROPERTY(bool visualFeedback READ getVisualFeedback WRITE setVisualFeedback NOTIFY visualFeedbackChanged) + Q_PROPERTY(bool singleClick READ getSingleClick WRITE setSingleClick NOTIFY singleClickChanged) public: KCMWorkspaceOptions(QObject* parent, const QVariantList& args); @@ -37,14 +38,18 @@ bool getVisualFeedback() const; void setVisualFeedback(bool state); + bool getSingleClick() const; + void setSingleClick(bool state); + public Q_SLOTS: void load(); void save(); void defaults(); Q_SIGNALS: void toolTipChanged(); void visualFeedbackChanged(); + void singleClickChanged(); private: void handleNeedsSave(); @@ -55,6 +60,9 @@ bool m_ostateVisualFeedback; bool m_stateVisualFeedback; + + bool m_ostateSingleClick; + bool m_stateSingleClick; }; #endif // _KCM_WORKSPACEOPTIONS_H Index: kcms/workspaceoptions/workspaceoptions.cpp =================================================================== --- kcms/workspaceoptions/workspaceoptions.cpp +++ kcms/workspaceoptions/workspaceoptions.cpp @@ -24,6 +24,8 @@ #include +#include <../migrationlib/kdelibs4config.h> + K_PLUGIN_FACTORY_WITH_JSON(KCMWorkspaceOptionsFactory, "kcm_workspace.json", registerPlugin();) KCMWorkspaceOptions::KCMWorkspaceOptions(QObject *parent, const QVariantList& args) @@ -43,7 +45,7 @@ setButtons( Default | Apply ); } -/*ConfigModule functions*/ +//**ConfigModule functions void KCMWorkspaceOptions::load() { bool state = false; @@ -65,6 +67,13 @@ m_ostateVisualFeedback = 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(); + setNeedsSave(false); } @@ -86,19 +95,30 @@ m_ostateVisualFeedback = getVisualFeedback(); } + // 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"); + setNeedsSave(false); } void KCMWorkspaceOptions::defaults() { setToolTip(true); setVisualFeedback(true); + setSingleClick(true); handleNeedsSave(); } -/*ToolTip functions*/ +//** ToolTip functions bool KCMWorkspaceOptions::getToolTip() const { return m_stateToolTip; @@ -117,7 +137,7 @@ handleNeedsSave(); } -/*VisualFeedback functions*/ +//** VisualFeedback functions bool KCMWorkspaceOptions::getVisualFeedback() const { return m_stateVisualFeedback; @@ -136,13 +156,35 @@ handleNeedsSave(); } -/*Other functions*/ +#include +//** SingleClick functions +bool KCMWorkspaceOptions::getSingleClick() const +{ + return m_stateSingleClick; +} + +void KCMWorkspaceOptions::setSingleClick(bool state) +{ + qDebug() << "Setting : " << state; + // Prevent from binding loop + if( m_stateSingleClick == state ) { + return; + } + + m_stateSingleClick = state; + + emit singleClickChanged(); + handleNeedsSave(); +} + +//** 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_ostateVisualFeedback != getVisualFeedback() || + m_ostateSingleClick != getSingleClick()); } #include "workspaceoptions.moc"