+ connect(this, SIGNAL(iconsChanged()), this, SLOT(refreshIcons()));
+ refreshIcons();
+
+ // Our own SNI service
+ _statusNotifierItemDBus = new StatusNotifierItemDBus(this);
+ connect(this, SIGNAL(currentIconNameChanged()), _statusNotifierItemDBus, SIGNAL(NewIcon()));
+ connect(this, SIGNAL(currentIconNameChanged()), _statusNotifierItemDBus, SIGNAL(NewAttentionIcon()));
+ connect(this, SIGNAL(toolTipChanged(QString, QString)), _statusNotifierItemDBus, SIGNAL(NewToolTip()));
+
+ // Service watcher to keep track of the StatusNotifierWatcher service
+ _serviceWatcher = new QDBusServiceWatcher(kSniWatcherService,
+ QDBusConnection::sessionBus(),
+ QDBusServiceWatcher::WatchForOwnerChange,
+ this);
+ connect(_serviceWatcher, SIGNAL(serviceOwnerChanged(QString, QString, QString)), SLOT(serviceChange(QString, QString, QString)));
+
+ // Client instance for StatusNotifierWatcher
+ _statusNotifierWatcher = new org::kde::StatusNotifierWatcher(kSniWatcherService,
+ kSniWatcherPath,
+ QDBusConnection::sessionBus(),
+ this);
+ connect(_statusNotifierWatcher, SIGNAL(StatusNotifierHostRegistered()), SLOT(checkForRegisteredHosts()));
+ connect(_statusNotifierWatcher, SIGNAL(StatusNotifierHostUnregistered()), SLOT(checkForRegisteredHosts()));