Changeset View
Changeset View
Standalone View
Standalone View
kcms/activities/SwitchingTab.cpp
Show All 27 Lines | |||||
28 | 28 | | |||
29 | #include "ui_SwitchingTabBase.h" | 29 | #include "ui_SwitchingTabBase.h" | ||
30 | 30 | | |||
31 | #include <utils/d_ptr_implementation.h> | 31 | #include <utils/d_ptr_implementation.h> | ||
32 | #include <KActivities/Consumer> | 32 | #include <KActivities/Consumer> | ||
33 | 33 | | |||
34 | class SwitchingTab::Private : public Ui::SwitchingTabBase { | 34 | class SwitchingTab::Private : public Ui::SwitchingTabBase { | ||
35 | public: | 35 | public: | ||
36 | KActivityManagerdSettings mainConfig; | 36 | KActivityManagerdSettings *mainConfig; | ||
37 | 37 | | |||
38 | KActionCollection *mainActionCollection; | 38 | KActionCollection *mainActionCollection; | ||
39 | KActivities::Consumer activities; | 39 | KActivities::Consumer activities; | ||
40 | 40 | | |||
41 | void createAction(const QString &actionName, const QString &actionText, | 41 | void createAction(const QString &actionName, const QString &actionText, | ||
42 | const QList<QKeySequence> &defaultSequence) | 42 | const QList<QKeySequence> &defaultSequence) | ||
43 | { | 43 | { | ||
44 | auto action = mainActionCollection->addAction(actionName); | 44 | auto action = mainActionCollection->addAction(actionName); | ||
45 | action->setProperty("isConfigurationAction", true); | 45 | action->setProperty("isConfigurationAction", true); | ||
46 | action->setText(actionText); | 46 | action->setText(actionText); | ||
47 | KGlobalAccel::self()->setShortcut(action, defaultSequence); | 47 | KGlobalAccel::self()->setShortcut(action, defaultSequence); | ||
48 | KGlobalAccel::self()->setDefaultShortcut(action, defaultSequence); | 48 | KGlobalAccel::self()->setDefaultShortcut(action, defaultSequence); | ||
49 | } | 49 | } | ||
50 | 50 | | |||
51 | Private() | 51 | Private() | ||
52 | : mainActionCollection(nullptr) | 52 | : mainConfig(new KActivityManagerdSettings), | ||
53 | mainActionCollection(nullptr) | ||||
53 | { | 54 | { | ||
54 | } | 55 | } | ||
55 | }; | 56 | }; | ||
56 | 57 | | |||
57 | SwitchingTab::SwitchingTab(QWidget *parent) | 58 | SwitchingTab::SwitchingTab(QWidget *parent) | ||
58 | : QWidget(parent) | 59 | : QWidget(parent) | ||
59 | , d() | 60 | , d() | ||
60 | { | 61 | { | ||
61 | d->setupUi(this); | 62 | d->setupUi(this); | ||
62 | 63 | | |||
63 | // Shortcut config. The shortcut belongs to the component "plasmashell"! | 64 | // Shortcut config. The shortcut belongs to the component "plasmashell"! | ||
64 | d->mainActionCollection = new KActionCollection(this, QStringLiteral("plasmashell")); | 65 | d->mainActionCollection = new KActionCollection(this, QStringLiteral("plasmashell")); | ||
65 | d->mainActionCollection->setComponentDisplayName(i18n("Activity switching")); | 66 | d->mainActionCollection->setComponentDisplayName(i18n("Activity switching")); | ||
66 | d->mainActionCollection->setConfigGlobal(true); | 67 | d->mainActionCollection->setConfigGlobal(true); | ||
67 | 68 | | |||
68 | d->createAction(QStringLiteral("next activity"), | 69 | d->createAction(QStringLiteral("next activity"), | ||
69 | i18nc("@action", "Walk through activities"), | 70 | i18nc("@action", "Walk through activities"), | ||
70 | { Qt::META + Qt::Key_Tab }); | 71 | { Qt::META + Qt::Key_Tab }); | ||
71 | d->createAction(QStringLiteral("previous activity"), | 72 | d->createAction(QStringLiteral("previous activity"), | ||
72 | i18nc("@action", "Walk through activities (Reverse)"), | 73 | i18nc("@action", "Walk through activities (Reverse)"), | ||
73 | { Qt::META + Qt::SHIFT + Qt::Key_Tab } ); | 74 | { Qt::META + Qt::SHIFT + Qt::Key_Tab } ); | ||
74 | 75 | | |||
75 | d->scActivities->setActionTypes(KShortcutsEditor::GlobalAction); | 76 | d->scActivities->setActionTypes(KShortcutsEditor::GlobalAction); | ||
76 | d->scActivities->addCollection(d->mainActionCollection); | 77 | d->scActivities->addCollection(d->mainActionCollection); | ||
77 | | ||||
78 | connect(d->scActivities, &KShortcutsEditor::keyChange, | | |||
79 | this, [this] { changed(); }); | | |||
80 | connect(d->checkRememberVirtualDesktop, &QAbstractButton::toggled, | | |||
81 | this, &SwitchingTab::changed); | | |||
82 | | ||||
83 | defaults(); | | |||
84 | } | 78 | } | ||
85 | 79 | | |||
86 | SwitchingTab::~SwitchingTab() | 80 | SwitchingTab::~SwitchingTab() | ||
87 | { | 81 | { | ||
88 | } | 82 | } | ||
89 | 83 | | |||
90 | bool SwitchingTab::isDefault() | 84 | KCoreConfigSkeleton *SwitchingTab::mainConfig() | ||
91 | { | 85 | { | ||
92 | return !d->checkRememberVirtualDesktop->isChecked(); | 86 | return d->mainConfig; | ||
93 | } | 87 | } | ||
94 | 88 | | |||
95 | void SwitchingTab::shortcutChanged(const QKeySequence &sequence) | 89 | void SwitchingTab::shortcutChanged(const QKeySequence &sequence) | ||
96 | { | 90 | { | ||
97 | QString actionName = sender() | 91 | QString actionName = sender() | ||
98 | ? sender()->property("shortcutAction").toString() | 92 | ? sender()->property("shortcutAction").toString() | ||
99 | : QString(); | 93 | : QString(); | ||
100 | 94 | | |||
101 | if (actionName.isEmpty()) return; | 95 | if (actionName.isEmpty()) return; | ||
102 | 96 | | |||
103 | auto action = d->mainActionCollection->action(actionName); | 97 | auto action = d->mainActionCollection->action(actionName); | ||
104 | 98 | | |||
105 | KGlobalAccel::self()->setShortcut(action, { sequence }, | 99 | KGlobalAccel::self()->setShortcut(action, { sequence }, | ||
106 | KGlobalAccel::NoAutoloading); | 100 | KGlobalAccel::NoAutoloading); | ||
107 | d->mainActionCollection->writeSettings(); | 101 | d->mainActionCollection->writeSettings(); | ||
108 | | ||||
109 | emit changed(); | | |||
110 | } | | |||
111 | | ||||
112 | void SwitchingTab::defaults() | | |||
113 | { | | |||
114 | d->checkRememberVirtualDesktop->setChecked(false); | | |||
115 | } | 102 | } | ||
116 | 103 | | |||
117 | void SwitchingTab::load() | | |||
118 | { | | |||
119 | | ||||
120 | d->checkRememberVirtualDesktop->setChecked(d->mainConfig.virtualDesktopSwitchEnabled()); | | |||
121 | } | | |||
122 | | ||||
123 | void SwitchingTab::save() | | |||
124 | { | | |||
125 | d->mainConfig.setVirtualDesktopSwitchEnabled(d->checkRememberVirtualDesktop->isChecked()); | | |||
126 | d->mainConfig.save(); | | |||
127 | } | |