diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ TextWidgets XmlGui WindowSystem + GlobalAccel ) include(KDEInstallDirs) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -52,6 +52,7 @@ KF5::TextWidgets KF5::XmlGui KF5::WindowSystem + KF5::GlobalAccel Qt5::DBus ) target_link_libraries(rsibreak rsibreak_lib) diff --git a/src/rsidock.cpp b/src/rsidock.cpp --- a/src/rsidock.cpp +++ b/src/rsidock.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -83,6 +84,13 @@ menu->addSeparator(); m_suspendItem = doAddAction(menu, SmallIcon( "media-playback-pause" ), i18n( "&Suspend RSIBreak" ), this, &RSIDock::slotToggleSuspend ); + // setting a global shortcut with an empty list will insert an entry in global shortcuts + // with no assigned shortcut. user can then set a shortcut for themselves. + QString suspendName = aboutData.displayName() + "-suspend-resume"; + m_suspendItem->setObjectName( suspendName ); // required for KGlobalAccel + QList emptyShortcuts; + KGlobalAccel::setGlobalShortcut( m_suspendItem, emptyShortcuts ); + doAddAction(menu, SmallIcon( "view-statistics" ), i18n( "&Usage Statistics" ), this, &RSIDock::slotShowStatistics ); doAddAction(menu, SmallIcon( "preferences-desktop-notification" ), i18n( "Configure &Notifications..." ), this, &RSIDock::slotConfigureNotifications ); doAddAction(menu, QIcon::fromTheme( "configure" ), i18n( "&Configure RSIBreak..." ), this, &RSIDock::slotConfigure );