[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/kcontrol/keyboard
From:       Andriy Rysin <arysin () gmail ! com>
Date:       2010-09-20 12:19:46
Message-ID: 20100920121946.AB4D8AC7CB () svn ! kde ! org
[Download RAW message or body]

SVN commit 1177507 by rysin:

configure context menu in the systray
include short layout label in the context menu items

 M  +19 -2     layout_widget.cpp  


--- trunk/KDE/kdebase/workspace/kcontrol/keyboard/layout_widget.cpp #1177506:1177507
@@ -25,6 +25,8 @@
 #include <kstatusnotifieritem.h>
 #include <klocalizedstring.h>
 #include <kmenu.h>
+#include <ktoolinvocation.h>
+
 #include <QtGui/QAction>
 #include <QtGui/QMenu>
 #include "xkb_rules.h"
@@ -204,8 +206,17 @@
 
 void LayoutTrayIcon::actionTriggered(QAction* action)
 {
+	QString data = action->data().toString();
+	if( data == "config" ) {
+//		KRun::runCommand("kcmshell4 kcm_keyboard")
+		QStringList args;
+		args << "kcm_keyboard";
+		KToolInvocation::kdeinitExec("kcmshell4", args);
+	}
+	else {
 	X11Helper::setLayout(LayoutUnit(action->data().toString()));
 }
+}
 
 const QIcon LayoutTrayIcon::getFlag(const QString& layout) const
 {
@@ -225,12 +236,18 @@
 	foreach(const LayoutUnit& layoutUnit, layouts) {
 		QString shortText = Flags::getShortText(layoutUnit, *keyboardConfig);
 		QString longText = Flags::getLongText(layoutUnit, rules);
-//		QString menuText = i18nc("map name - full layout text", "%1 - %2", shortText, longText);
-		QString menuText = longText;
+		QString menuText = i18nc("short layout label - full layout name", "%1 - %2", shortText, longText);
+//		QString menuText = longText;
 		QAction* action = new QAction(getFlag(layoutUnit.layout), menuText, actionGroup);
 		action->setData(layoutUnit.toString());
 		actionGroup->addAction(action);
 	}
+	QAction* separator = new QAction(actionGroup);
+	separator->setSeparator(true);
+	actionGroup->addAction(separator);
+	QAction* configAction = new QAction(i18n("Configure..."), actionGroup);
+	actionGroup->addAction(configAction);
+	configAction->setData("config");
 	connect(actionGroup, SIGNAL(triggered(QAction*)), this, SLOT(actionTriggered(QAction*)));
 	return actionGroup->actions();
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic