core: Allow clean shutdown of the core
[quassel.git] / src / qtui / statusnotifieritem.cpp
index 5932746..59a129e 100644 (file)
 
 #ifdef HAVE_DBUS
 
+#include "statusnotifieritem.h"
+
 #include <QApplication>
 #include <QDir>
 #include <QFile>
+#include <QIcon>
 #include <QMenu>
 #include <QMouseEvent>
 #include <QTextDocument>
 
+#include "icon.h"
 #include "qtui.h"
 #include "quassel.h"
-#include "statusnotifieritem.h"
 #include "statusnotifieritemdbus.h"
 
 constexpr int kProtocolVersion {0};
@@ -110,11 +113,11 @@ StatusNotifierItem::StatusNotifierItem(QWidget *parent)
     connect(this, SIGNAL(toolTipChanged(QString, QString)), _statusNotifierItemDBus, SIGNAL(NewToolTip()));
 
     // Service watcher to keep track of the StatusNotifierWatcher service
-    QDBusServiceWatcher *watcher = new QDBusServiceWatcher(kSniWatcherService,
-                                                           QDBusConnection::sessionBus(),
-                                                           QDBusServiceWatcher::WatchForOwnerChange,
-                                                           this);
-    connect(watcher, SIGNAL(serviceOwnerChanged(QString, QString, QString)), SLOT(serviceChange(QString, QString, QString)));
+    _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,
@@ -198,7 +201,7 @@ void StatusNotifierItem::refreshIcons()
         baseDir.removeRecursively();
         for (auto &&trayState : { State::Active, State::Passive, State::NeedsAttention }) {
             auto iconName = SystemTray::iconName(trayState);
-            QIcon icon = QIcon::fromTheme(iconName);
+            QIcon icon = icon::get(iconName);
             if (!icon.isNull()) {
                 for (auto &&size : icon.availableSizes()) {
                     auto pixDir = QString{"%1/%2x%3/status"}.arg(baseDir.absolutePath()).arg(size.width()).arg(size.height());