[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/libknotificationicon
From: Marco Martin <notmart () gmail ! com>
Date: 2009-03-06 22:02:25
Message-ID: 1236376945.196910.4366.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 936071 by mart:
at the moment is needed a duplicate of the systraydaemon file
unfortunately
anyways, it correctly adds icons into the systemtray now
M +4 -1 CMakeLists.txt
M +40 -7 kdbussystemtrayicon.cpp
M +3 -0 kdbussystemtrayicon.h
A org.kde.SystemTrayDaemon.xml
--- trunk/playground/base/plasma/libknotificationicon/CMakeLists.txt #936070:936071
@@ -22,7 +22,10 @@
QT4_ADD_DBUS_ADAPTOR(notificationicon_SRCS org.kde.SystemTray.xml
kdbussystemtrayicon.h KDbusSystemTrayIcon)
-# Now make sure all files get to the right place
+set(systemtraydaemon_xml org.kde.SystemTrayDaemon.xml)
+QT4_ADD_DBUS_INTERFACE(notificationicon_SRCS ${systemtraydaemon_xml} systemtraydaemon_interface)
+
+
kde4_add_library(notificationicon SHARED ${notificationicon_SRCS})
target_link_libraries(notificationicon
${KDE4_KDEUI_LIBS})
--- trunk/playground/base/plasma/libknotificationicon/kdbussystemtrayicon.cpp #936070:936071
@@ -26,6 +26,8 @@
#include <kdebug.h>
+#include "systemtraydaemon_interface.h"
+
#include "systemtrayadaptor.h"
@@ -33,12 +35,42 @@
{
public:
KDbusSystemTrayIconPrivate()
- : category(KDbusSystemTrayIcon::ApplicationStatus),
+ : dbus(QDBusConnection::sessionBus()),
+ category(KDbusSystemTrayIcon::ApplicationStatus),
status(KDbusSystemTrayIcon::Passive),
menu(0)
{}
- QDBusConnectionInterface *dbusInterface;
+ void registerToDaemon()
+ {
+ kWarning()<<"Registering a client interface to the syste tray daemon";
+ QString interface("org.kde.SystemTrayDaemon");
+ systemTrayDaemon = new org::kde::SystemtrayDaemon(interface, "/SystemTrayWatcher",
+ QDBusConnection::sessionBus());
+ if (systemTrayDaemon->isValid()) {
+ systemTrayDaemon->registerService(dbus.baseService());
+ } else {
+ kDebug()<<"System tray daemon not reachable";
+ }
+ }
+
+ void serviceChange(const QString& name,
+ const QString& oldOwner,
+ const QString& newOwner)
+ {
+ kDebug()<<"Service "<<name<<"status change, old owner:"<<oldOwner<<"new:"<<newOwner;
+
+ //unregistered
+ if (newOwner.isEmpty()) {
+ delete systemTrayDaemon;
+ systemTrayDaemon = 0;
+ //registered
+ } else if (oldOwner.isEmpty()) {
+ registerToDaemon();
+ }
+ }
+
+ QDBusConnection dbus;
KDbusSystemTrayIcon::Category category;
QString title;
KDbusSystemTrayIcon::Status status;
@@ -49,6 +81,7 @@
QString tooltipTitle;
QString tooltipSubTitle;
QMenu *menu;
+ org::kde::SystemtrayDaemon *systemTrayDaemon;
};
KDbusSystemTrayIcon::KDbusSystemTrayIcon(QObject *parent)
@@ -56,10 +89,10 @@
d(new KDbusSystemTrayIconPrivate)
{
new SystemTrayAdaptor(this);
- QDBusConnection dbus = QDBusConnection::sessionBus();
- dbus.registerObject("/SystemTray", this);
- d->dbusInterface = dbus.interface();
+ d->dbus.registerObject("/SystemTray", this);
+
+ d->registerToDaemon();
}
KDbusSystemTrayIcon::~KDbusSystemTrayIcon()
@@ -191,12 +224,12 @@
void KDbusSystemTrayIcon::activate()
{
- emit activate();
+ emit activateRequested();
}
void KDbusSystemTrayIcon::wheel(int delta)
{
- emit wheel(delta);
+ emit wheelRequested(delta);
}
--- trunk/playground/base/plasma/libknotificationicon/kdbussystemtrayicon.h #936070:936071
@@ -94,6 +94,9 @@
void newTooltip();
void newStatus(Status status);
+ void activateRequested();
+ void wheelRequested(int delta);
+
private:
KDbusSystemTrayIconPrivate *const d;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic