From 1cf8bbe1e5805e28fa5ea6e6083a5b459247f8f0 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Tue, 1 Jun 2010 00:45:12 +0200 Subject: [PATCH] Make shortcut categories work We now support translateable titles for ActionCollections, and also support multiple collections in KDE-integrated Quassel (this did work for !KDE already). --- src/qtui/mainwin.cpp | 9 +++++++-- src/uisupport/graphicalui.cpp | 9 +++++++-- src/uisupport/graphicalui.h | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 878168ee..cdfa65bc 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -310,7 +310,7 @@ void MainWin::updateIcon() { } void MainWin::setupActions() { - ActionCollection *coll = QtUi::actionCollection("General"); + ActionCollection *coll = QtUi::actionCollection("General", tr("General")); // File coll->addAction("ConnectCore", new Action(SmallIcon("network-connect"), tr("&Connect to Core..."), coll, this, SLOT(showCoreConnectionDlg()))); @@ -367,6 +367,8 @@ void MainWin::setupActions() { QtUi::style(), SLOT(reload()), QKeySequence::Refresh)); // Navigation + coll = QtUi::actionCollection("Navigation", tr("Navigation")); + coll->addAction("JumpHotBuffer", new Action(tr("Jump to hot chat"), coll, this, SLOT(on_jumpHotBuffer_triggered()), QKeySequence(Qt::META + Qt::Key_A))); } @@ -984,7 +986,10 @@ void MainWin::showAboutDlg() { void MainWin::showShortcutsDlg() { #ifdef HAVE_KDE - KShortcutsDialog::configure(QtUi::actionCollection("General"), KShortcutsEditor::LetterShortcutsDisallowed); + KShortcutsDialog dlg(KShortcutsEditor::AllActions, KShortcutsEditor::LetterShortcutsDisallowed, this); + foreach(KActionCollection *coll, QtUi::actionCollections()) + dlg.addCollection(coll, coll->property("Category").toString()); + dlg.exec(); #else SettingsPageDlg dlg(new ShortcutsSettingsPage(QtUi::actionCollections(), this), this); dlg.exec(); diff --git a/src/uisupport/graphicalui.cpp b/src/uisupport/graphicalui.cpp index 59ea3210..ba772f0c 100644 --- a/src/uisupport/graphicalui.cpp +++ b/src/uisupport/graphicalui.cpp @@ -59,11 +59,16 @@ void GraphicalUi::init() { #endif } -ActionCollection *GraphicalUi::actionCollection(const QString &category) { +ActionCollection *GraphicalUi::actionCollection(const QString &category, const QString &translatedCategory) { if(_actionCollections.contains(category)) return _actionCollections.value(category); ActionCollection *coll = new ActionCollection(_mainWidget); - coll->setProperty("Category", category); + + if(!translatedCategory.isEmpty()) + coll->setProperty("Category", translatedCategory); + else + coll->setProperty("Category", category); + if(_mainWidget) coll->addAssociatedWidget(_mainWidget); _actionCollections.insert(category, coll); diff --git a/src/uisupport/graphicalui.h b/src/uisupport/graphicalui.h index 42a0a01c..269e079c 100644 --- a/src/uisupport/graphicalui.h +++ b/src/uisupport/graphicalui.h @@ -45,7 +45,7 @@ public: * create appropriate Action objects using GraphicalUi::actionCollection(cat)->add\(). * @param category The category (default: "General") */ - static ActionCollection *actionCollection(const QString &category = "General"); + static ActionCollection *actionCollection(const QString &category = "General", const QString &translatedCategory = QString()); static QHash actionCollections(); //! Load custom shortcuts from ShortcutSettings -- 2.20.1