Re: Review Request 122249: libksysguard: add Kill Window to End Process button and show correct keyboard shortcut
On March 2, 2015, 7:47 a.m., Martin Gräßlin wrote: processui/keyboardshortcututil.cpp, line 46 https://git.reviewboard.kde.org/r/122249/diff/6/?file=351945#file351945line46 This looks to complicated. It should be much easier to do with the KGlobalAccel API: * create a KActionCollection for component kwin * add a QAction with the shortcut name you want * ask KGlobalAccel to load the shortcut for it. Thanks for the hint but I am not sure of how to use the API in such a way. I tried two things: 1) org::kde::KGlobalAccel kglobalaccel(org.kde.kglobalaccel, /kglobalaccel, bus); auto kwinActions = kglobalaccel.allActionsForComponent(QStringList(kwin)); Q_FOREACH(auto aaa, kwinActions.value()) { //qDebug() aaa; // (kwin, Kill Window, KWin, Kill Window) } Then I wonder how to feed the QStringList to a KActionCollection. 2) KActionCollection ac(nullptr, QString()); ac.setComponentName(kwin); // ac.importGlobalShortcuts(); Q_FOREACH(auto bbb, ac.actions()) { if (bbb-text() == Kill Window) { qDebug() bbb; } } But the ac.actions() list is empty. Which of the two ways should be used? - Gregor --- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/122249/#review76861 --- On Feb. 27, 2015, 1:18 a.m., Gregor Mi wrote: --- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/122249/ --- (Updated Feb. 27, 2015, 1:18 a.m.) Review request for KDE Base Apps, Martin Gräßlin and John Tapsell. Repository: libksysguard Description --- Current situation: The End Process... button has a tooltip which says To target a specific window to kill, press Ctrl+Alt+Esc at any time. The keyboard shortcut is hardcoded. RR: Add a drop down menu to the End Process... button with one action: i18n(Kill a specific window... (Global shortcut: %1), killWindowShortcut) Diffs - processui/CMakeLists.txt 7f87b85e0201e63d69070a71203bbb34851a79c6 processui/ProcessWidgetUI.ui e50f55cf1813b00d49b1716023df487ffbd536e3 processui/keyboardshortcututil.h PRE-CREATION processui/keyboardshortcututil.cpp PRE-CREATION processui/ksysguardprocesslist.cpp 450ca600b8aed7ca611ec638610b6c524c96080c tests/CMakeLists.txt 967b03fae1e460bfb22e1a07ef05cf7b49412546 tests/keyboardshortcututiltest.h PRE-CREATION tests/keyboardshortcututiltest.cpp PRE-CREATION Diff: https://git.reviewboard.kde.org/r/122249/diff/ Testing --- File Attachments New End Process button with drop down arrow https://git.reviewboard.kde.org/media/uploaded/files/2015/01/28/16301e88-e21b-4358-9a63-a85dae5722bd__screenshot_default1.png Drop down shows Kill Window https://git.reviewboard.kde.org/media/uploaded/files/2015/01/28/58df12c5-7350-4bb0-b602-c5716caa9836__screenshot_default2.png Thanks, Gregor Mi
Re: Review Request 122249: libksysguard: add Kill Window to End Process button and show correct keyboard shortcut
On März 2, 2015, 7:47 vorm., Martin Gräßlin wrote: processui/keyboardshortcututil.cpp, line 46 https://git.reviewboard.kde.org/r/122249/diff/6/?file=351945#file351945line46 This looks to complicated. It should be much easier to do with the KGlobalAccel API: * create a KActionCollection for component kwin * add a QAction with the shortcut name you want * ask KGlobalAccel to load the shortcut for it. Gregor Mi wrote: Thanks for the hint but I am not sure of how to use the API in such a way. I tried two things: 1) org::kde::KGlobalAccel kglobalaccel(org.kde.kglobalaccel, /kglobalaccel, bus); auto kwinActions = kglobalaccel.allActionsForComponent(QStringList(kwin)); Q_FOREACH(auto aaa, kwinActions.value()) { //qDebug() aaa; // (kwin, Kill Window, KWin, Kill Window) } Then I wonder how to feed the QStringList to a KActionCollection. 2) KActionCollection ac(nullptr, QString()); ac.setComponentName(kwin); // ac.importGlobalShortcuts(); Q_FOREACH(auto bbb, ac.actions()) { if (bbb-text() == Kill Window) { qDebug() bbb; } } But the ac.actions() list is empty. Which of the two ways should be used? tried this? --- KActionCollection ac(this, kwin); ac.setConfigGlobal(true); QAction *act = ac.action(Kill Window); - Thomas --- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/122249/#review76861 --- On Feb. 27, 2015, 1:18 vorm., Gregor Mi wrote: --- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/122249/ --- (Updated Feb. 27, 2015, 1:18 vorm.) Review request for KDE Base Apps, Martin Gräßlin and John Tapsell. Repository: libksysguard Description --- Current situation: The End Process... button has a tooltip which says To target a specific window to kill, press Ctrl+Alt+Esc at any time. The keyboard shortcut is hardcoded. RR: Add a drop down menu to the End Process... button with one action: i18n(Kill a specific window... (Global shortcut: %1), killWindowShortcut) Diffs - processui/CMakeLists.txt 7f87b85e0201e63d69070a71203bbb34851a79c6 processui/ProcessWidgetUI.ui e50f55cf1813b00d49b1716023df487ffbd536e3 processui/keyboardshortcututil.h PRE-CREATION processui/keyboardshortcututil.cpp PRE-CREATION processui/ksysguardprocesslist.cpp 450ca600b8aed7ca611ec638610b6c524c96080c tests/CMakeLists.txt 967b03fae1e460bfb22e1a07ef05cf7b49412546 tests/keyboardshortcututiltest.h PRE-CREATION tests/keyboardshortcututiltest.cpp PRE-CREATION Diff: https://git.reviewboard.kde.org/r/122249/diff/ Testing --- File Attachments New End Process button with drop down arrow https://git.reviewboard.kde.org/media/uploaded/files/2015/01/28/16301e88-e21b-4358-9a63-a85dae5722bd__screenshot_default1.png Drop down shows Kill Window https://git.reviewboard.kde.org/media/uploaded/files/2015/01/28/58df12c5-7350-4bb0-b602-c5716caa9836__screenshot_default2.png Thanks, Gregor Mi