> 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? > > Thomas Lübking wrote: > tried this? > ----------- > KActionCollection ac(this, "kwin"); > ac.setConfigGlobal(true); > QAction *act = ac.action("Kill Window"); > > Gregor Mi wrote: > I have no QObject* as parent. Can this be the cause? > > KActionCollection ac(nullptr, "kwin"); > ac.setConfigGlobal(true); > auto killWindowAction = ac.action("Kill Window"); > qDebug() << ac.actions().count(); > qDebug() << killWindowAction; > /* > RESULT: > 0 > QObject(0x0) > */
You'd have "qApp", but I don't actually think so. - 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 > >