SVN commit 1098103 by mzanetti: added icons to modelist in tray app context menu M +10 -0 kded/kremotecontroldaemon.cpp M +1 -0 kded/kremotecontroldaemon.h M +6 -1 kded/org.kde.krcd.xml M +1 -0 krcdnotifieritem/krcdnotifieritem.cpp M +17 -2 libkremotecontrol/dbusinterface.cpp M +1 -0 libkremotecontrol/dbusinterface.h M +9 -0 libkremotecontrol/remote.cpp M +1 -0 libkremotecontrol/remote.h --- branches/work/kdelirc/kded/kremotecontroldaemon.cpp #1098102:1098103 @@ -295,6 +295,16 @@ return "modeNotFound"; } +QString KRemoteControlDaemon::getModeIcon(const QString &remoteName, const QString& modeName) { + Remote *remote = d_ptr->remoteList().getRemote(remoteName); + if(remote){ + Mode *mode = remote->modeByName(modeName); + if(mode){ + return mode->iconName(); + } + } + return ""; +} void KRemoteControlDaemon::notifyEvent(const QString& message, const QString& iconName, const QString& event) { KNotification::event(event, message, DesktopIcon(iconName), 0, KNotification::CloseOnTimeout, d_ptr->applicationData); --- branches/work/kdelirc/kded/kremotecontroldaemon.h #1098102:1098103 @@ -60,6 +60,7 @@ QStringList getConfiguredRemotes(); QStringList getModesForRemote(const QString &remoteName); QString getCurrentMode(const QString& remoteName); + QString getModeIcon(const QString &remoteName, const QString &modeName); bool eventsIgnored(const QString& remoteName); --- branches/work/kdelirc/kded/org.kde.krcd.xml #1098102:1098103 @@ -29,7 +29,12 @@ - + + + + + + --- branches/work/kdelirc/krcdnotifieritem/krcdnotifieritem.cpp #1098102:1098103 @@ -77,6 +77,7 @@ QAction *entry = modeMenu->addAction(mode); entry->setActionGroup(actionGroup); entry->setCheckable(true); + entry->setIcon(KIcon(DBusInterface::getInstance()->getModeIcon(remote, mode))); if(DBusInterface::getInstance()->getCurrentMode(remote) == mode){ entry->setChecked(true); } --- branches/work/kdelirc/libkremotecontrol/dbusinterface.cpp #1098102:1098103 @@ -445,11 +445,26 @@ if (reply.isValid()) { return reply; } else { - kDebug() << reply.error().message(); - return QStringList(); + kDebug() << reply.error().message(); + return QStringList(); } } +QString DBusInterface::getModeIcon(const QString& remoteName, const QString& modeName) { + QDBusMessage m = QDBusMessage::createMethodCall("org.kde.kded", "/modules/kremotecontrol", + "org.kde.krcd", "getModeIcon"); + m << remoteName; + m << modeName; + QDBusReply reply = QDBusConnection::sessionBus().call(m); + if (reply.isValid()) { + return reply; + } else { + kDebug() << reply.error().message(); + return ""; + } + +} + bool DBusInterface::eventsIgnored(const QString& remoteName) { QDBusMessage m = QDBusMessage::createMethodCall("org.kde.kded", "/modules/kremotecontrol", "org.kde.krcd", "eventsIgnored"); --- branches/work/kdelirc/libkremotecontrol/dbusinterface.h #1098102:1098103 @@ -60,6 +60,7 @@ QStringList getModesForRemote(const QString &remoteName); void changeMode(const QString &remoteName, const QString &modeName); QString getCurrentMode(const QString &remoteName); + QString getModeIcon(const QString &remoteName, const QString &modeName); bool eventsIgnored(const QString &remoteName); bool isKdedModuleRunning(); --- branches/work/kdelirc/libkremotecontrol/remote.cpp #1098102:1098103 @@ -327,6 +327,15 @@ } } +Mode* Remote::modeByName(const QString& modeName) const { + foreach(Mode *mode, m_modeList) { + if (mode->name() == modeName) { + return mode; + } + } + return 0; +} + Mode* Remote::currentMode() const { if (m_currentMode != 0) { return m_currentMode; --- branches/work/kdelirc/libkremotecontrol/remote.h #1098102:1098103 @@ -66,6 +66,7 @@ Mode *defaultMode() const; void setDefaultMode(Mode *mode); void setDefaultMode(const QString &name); + Mode *modeByName(const QString &name) const; Mode *currentMode() const; void setCurrentMode(Mode *mode);