[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/kcontrol/kxkb
From: Andy Rysin <arysin () yahoo ! com>
Date: 2006-09-12 5:27:02
Message-ID: 1158038822.881845.6183.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 583349 by rysin:
Convert menu items to actions
M +4 -2 kxkb.cpp
M +2 -1 kxkb.h
M +28 -37 kxkbwidget.cpp
M +4 -5 kxkbwidget.h
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkb.cpp #583348:583349
@@ -207,7 +207,7 @@
if( !m_kxkbWidget )
{
m_kxkbWidget = new KxkbSysTrayIcon();
- connect(m_kxkbWidget, SIGNAL(menuActivated(int)), this, \
SLOT(iconMenuActivated(int))); + connect(m_kxkbWidget, \
SIGNAL(menuTriggered(QAction*)), this, SLOT(iconMenuTriggered(QAction*))); \
connect(m_kxkbWidget, SIGNAL(iconToggled()), this, SLOT(iconToggled())); }
@@ -270,8 +270,10 @@
setLayout(layout);
}
-void KXKBApp::iconMenuActivated(int id)
+void KXKBApp::iconMenuTriggered(QAction* action)
{
+ int id = action->data().toInt();
+
if( KxkbWidget::START_MENU_ID <= id
&& id < KxkbWidget::START_MENU_ID + (int)kxkbConfig.m_layouts.count() )
{
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkb.h #583348:583349
@@ -42,6 +42,7 @@
class KWinModule;
class LayoutMap;
class KxkbWidget;
+class QAction;
/* This is the main Kxkb class responsible for reading options
and switching layouts
@@ -67,7 +68,7 @@
void forceSetXKBMap( bool set );
protected slots:
- void iconMenuActivated(int id);
+ void iconMenuTriggered(QAction*);
void iconToggled();
void windowChanged(WId winId);
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkbwidget.cpp #583348:583349
@@ -27,11 +27,8 @@
KxkbWidget::KxkbWidget():
- m_menuStartIndex(-1),
- m_prevLayoutCount(0)
+ m_configSeparator(NULL)
{
-// kDebug() << "Creating KxkbWidget with " << label_ << ", " << contextMenu_ << \
endl;
-// kDebug() << "Creating KxkbWidget with startMenuIndex " << m_menuStartIndex << \
endl; }
void KxkbWidget::setCurrentLayout(const LayoutUnit& layoutUnit)
@@ -52,24 +49,16 @@
{
QMenu* menu = contextMenu();
- if( m_menuStartIndex == -1 )
- m_menuStartIndex = menu->count();
-
-// int index = menu->indexOf(0);
-
m_descriptionMap.clear();
+
// menu->clear();
-// menu->insertTitle( kapp->miniIcon(), kapp->caption() );
+// menu->addTitle( qApp->windowIcon(), KInstance::caption() );
+// menu->setTitle( KGlobal::instance()->aboutData()->programName() );
- for(int ii=0; ii<m_prevLayoutCount; ++ii) {
- menu->removeItem(START_MENU_ID + ii);
- kDebug() << "remove item: " << START_MENU_ID + ii << endl;
- }
-/* menu->removeItem(CONFIG_MENU_ID);
- menu->removeItem(HELP_MENU_ID);*/
-
-// KIconEffect iconeffect;
-
+ for(QList<QAction*>::Iterator it=m_actions.begin(); it != m_actions.end(); it++ )
+ menu->removeAction(*it);
+ m_actions.clear();
+
int cnt = 0;
QList<LayoutUnit>::ConstIterator it;
for (it=layouts.begin(); it != layouts.end(); ++it)
@@ -79,26 +68,35 @@
const QPixmap& layoutPixmap = LayoutIcon::getInstance().findPixmap(layoutName, \
m_showFlag, (*it).displayName); // const QPixmap pix = \
iconeffect.apply(layoutPixmap, KIcon::Small, KIcon::DefaultState);
- const QPixmap pix = layoutPixmap;
QString layoutString = rules.layouts()[layoutName];
QString fullName = i18n( layoutString.toLatin1().constData() );
if( variantName.isEmpty() == false )
fullName += " (" + variantName + ')';
- menu->insertItem(pix, fullName, START_MENU_ID + cnt, m_menuStartIndex + cnt);
+// menu->insertItem(pix, fullName, START_MENU_ID + cnt, m_menuStartIndex + cnt);
+
+ QAction* action = new QAction(layoutPixmap, fullName, menu);
+ action->setData(START_MENU_ID + cnt);
+ m_actions.append(action);
m_descriptionMap.insert((*it).toPair(), fullName);
cnt++;
}
+ menu->insertActions(m_configSeparator, m_actions);
- m_prevLayoutCount = cnt;
-
// if show config, if show help
- if( menu->indexOf(CONFIG_MENU_ID) == -1 ) {
- menu->addSeparator();
- menu->insertItem(SmallIcon("configure"), i18n("Configure..."), CONFIG_MENU_ID);
- if( menu->indexOf(HELP_MENU_ID) == -1 )
- menu->insertItem(SmallIcon("help"), i18n("Help"), HELP_MENU_ID);
+// if( menu->indexOf(CONFIG_MENU_ID) == -1 ) {
+ if( m_configSeparator == NULL ) { // first call
+ m_configSeparator = menu->addSeparator();
+
+ QAction* configAction = new QAction(SmallIcon("configure"), i18n("Configure..."), \
menu); + configAction->setData(CONFIG_MENU_ID);
+ menu->addAction(configAction);
+
+// if( menu->indexOf(HELP_MENU_ID) == -1 )
+ QAction* helpAction = new QAction(SmallIcon("help"), i18n("Help"), menu);
+ helpAction->setData(HELP_MENU_ID);
+ menu->addAction(helpAction);
}
/* if( index != -1 ) { //not first start
@@ -109,19 +107,13 @@
}*/
}
-// void KxkbWidget::mouseReleaseEvent(QMouseEvent *ev)
-// {
-// if (ev->button() == QMouseEvent::LeftButton)
-// emit toggled();
-// KSystemTray::mouseReleaseEvent(ev);
-// }
KxkbSysTrayIcon::KxkbSysTrayIcon()
{
m_tray = new KSystemTrayIcon();
- connect(contextMenu(), SIGNAL(menuActivated(int)), this, \
SIGNAL(menuActivated(int)));
- connect(m_tray, SIGNAL(trayActivated(QSystemTrayIcon::ActivationReason)),
+ connect(contextMenu(), SIGNAL(triggered(QAction*)), this, \
SIGNAL(menuTriggered(QAction*))); + connect(m_tray, \
SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, \
SLOT(trayActivated(QSystemTrayIcon::ActivationReason))); }
@@ -134,7 +126,6 @@
{
if( reason == QSystemTrayIcon::Trigger )
emit iconToggled();
-// emit KxkbWidget::iconToggled();
}
void KxkbSysTrayIcon::setPixmap(const QPixmap& pixmap)
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkbwidget.h #583348:583349
@@ -22,6 +22,7 @@
class QMenu;
class XkbRules;
+class QAction;
/* This class is responsible for displaying flag/label for the layout,
catching keyboard/mouse events and displaying menu when selected
@@ -41,7 +42,7 @@
void setShowFlag(bool showFlag) { m_showFlag = showFlag; }
signals:
- void menuActivated(int);
+ void menuTriggered(QAction*);
void iconToggled();
protected:
@@ -49,14 +50,12 @@
virtual QMenu* contextMenu() = 0;
virtual void setToolTip(const QString& tip) = 0;
virtual void setPixmap(const QPixmap& pixmap) = 0;
-//
-// void mouseReleaseEvent(QMouseEvent *);
private:
- /*const*/ int m_menuStartIndex;
bool m_showFlag;
- int m_prevLayoutCount;
QMap<QString, QString> m_descriptionMap;
+ QList<QAction*> m_actions;
+ QAction* m_configSeparator;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic