D28744: Rewrite of the global shortcuts kcm
David Redondo
noreply at phabricator.kde.org
Sat Apr 11 13:04:50 BST 2020
davidre created this revision.
Herald added a project: Plasma.
Herald added a subscriber: plasma-devel.
davidre requested review of this revision.
REVISION SUMMARY
This is a total rewrite of the global shortcuts kcm from scratch. It uses an
abstract item model backend with a qml frontend. This resolves some issues the
old kcm inherently had because it just stacked KShortcutEditors. First it enables
a global serach/filter which either matches the component name, actions, default
or set key combinations across components. Secondly KGlobalAccel can have multiple
default/active key combinations for each action - the old kcm only exposed two each.
The new kcm displays all default or set key combinations.
The main visual structure is similiar to the old kcm. On the left there is a list
with all components but rather than divided into "Application Launchers" and
"Other Shortcuts" the sections are now called "Applications" and "System Services"
(cf. notifications kcm) and the components are now assigned whether the service
we find for a component is an application or not rather if the component was
added via .desktop file. In the main view the shortcuts are displayed. Each item
corresponds to one action. Initially each item is collapsed and shows the action
name and a list of the currently set key combinations for that action. In the
expanded form all default shortcuts are shown which can be activated or
deactivated and all other active shortcuts ("Custom Shortcuts"). It is possible
to change, remove or add new custom shortcuts.
The kcm and model communicate directly with the daemon over DBus. This removes
the need to awkwardly construct actions to pass to the KGlobalAccel API.
TEST PLAN
kcmshel kcm_keys
REPOSITORY
R119 Plasma Desktop
BRANCH
kcmkeys2 (branched from master)
REVISION DETAIL
https://phabricator.kde.org/D28744
AFFECTED FILES
kcms/keys/CMakeLists.txt
kcms/keys/ChangeLog
kcms/keys/Messages.sh
kcms/keys/README
kcms/keys/export_scheme_dialog.cpp
kcms/keys/export_scheme_dialog.h
kcms/keys/export_scheme_dialog.ui
kcms/keys/filteredmodel.cpp
kcms/keys/filteredmodel.h
kcms/keys/globalshortcuts.cpp
kcms/keys/globalshortcuts.h
kcms/keys/kcm_keys.cpp
kcms/keys/kcm_keys.desktop
kcms/keys/kcm_keys.h
kcms/keys/keys.desktop
kcms/keys/kglobalshortcutseditor.cpp
kcms/keys/kglobalshortcutseditor.h
kcms/keys/kglobalshortcutseditor.ui
kcms/keys/package/contents/ui/ShortcutActionDelegate.qml
kcms/keys/package/contents/ui/main.qml
kcms/keys/package/metadata.desktop
kcms/keys/select_application.ui
kcms/keys/select_scheme_dialog.cpp
kcms/keys/select_scheme_dialog.h
kcms/keys/select_scheme_dialog.ui
kcms/keys/shortcutsmodel.cpp
kcms/keys/shortcutsmodel.h
To: davidre
Cc: plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200411/122289ee/attachment.html>
More information about the Plasma-devel
mailing list