Add SystrayNotificationBackend (untested yet and still somewhat rudimentary), evolve...
[quassel.git] / src / qtui / mainwin.cpp
index d2363e6..ceedb9b 100644 (file)
@@ -36,7 +36,7 @@
 #include "clientbacklogmanager.h"
 #include "coreinfodlg.h"
 #include "coreconnectdlg.h"
-#include "icon.h"
+#include "iconloader.h"
 #include "msgprocessorstatuswidget.h"
 #include "qtuimessageprocessor.h"
 #include "qtuiapplication.h"
@@ -78,11 +78,11 @@ MainWin::MainWin(QWidget *parent)
     msgProcessorStatusWidget(new MsgProcessorStatusWidget()),
 
     _titleSetter(this),
-    systray(new QSystemTrayIcon(this)),
+    _trayIcon(new QSystemTrayIcon(this)),
 
-    activeTrayIcon(":/icons/quassel-icon-active.png"),
-    onlineTrayIcon(":/icons/quassel-icon.png"),
-    offlineTrayIcon(":/icons/quassel-icon-offline.png"),
+    activeTrayIcon(DesktopIcon("quassel_newmessage", IconLoader::SizeEnormous)),
+    onlineTrayIcon(DesktopIcon("quassel", IconLoader::SizeEnormous)),
+    offlineTrayIcon(DesktopIcon("quassel_disconnected", IconLoader::SizeEnormous)),
     trayIconActive(false),
 
     timer(new QTimer(this)),
@@ -97,7 +97,7 @@ MainWin::MainWin(QWidget *parent)
   setWindowTitle("Quassel IRC");
   setWindowIcon(offlineTrayIcon);
   qApp->setWindowIcon(offlineTrayIcon);
-  systray->setIcon(offlineTrayIcon);
+  systemTrayIcon()->setIcon(offlineTrayIcon);
   setWindowIconText("Quassel IRC");
 
   QtUi::actionCollection()->addAssociatedWidget(this);
@@ -181,8 +181,16 @@ MainWin::~MainWin() {
 }
 
 void MainWin::setupActions() {
-
-
+  // TODO don't get these from *.ui anymore... we shouldn't need one
+  ui.actionQuit->setIcon(SmallIcon("application-exit"));
+  ui.actionSettingsDlg->setIcon(SmallIcon("configure"));
+  ui.actionManageViews->setIcon(SmallIcon("view-tree"));
+  ui.actionManageViews2->setIcon(SmallIcon("view-tree"));
+  ui.actionAboutQt->setIcon(SmallIcon("qt"));
+  ui.actionAboutQuassel->setIcon(SmallIcon("quassel"));
+  ui.actionConnectCore->setIcon(SmallIcon("network-connect"));
+  ui.actionDisconnectCore->setIcon(SmallIcon("network-disconnect"));
+  ui.actionCoreInfo->setIcon(SmallIcon("help-about"));
 }
 
 void MainWin::setupMenus() {
@@ -374,15 +382,15 @@ void MainWin::setupSystray() {
   systrayMenu->addSeparator();
   systrayMenu->addAction(ui.actionQuit);
 
-  systray->setContextMenu(systrayMenu);
+  systemTrayIcon()->setContextMenu(systrayMenu);
 
   UiSettings s;
   if(s.value("UseSystemTrayIcon", QVariant(true)).toBool()) {
-    systray->show();
+    systemTrayIcon()->show();
   }
 
 #ifndef Q_WS_MAC
-  connect(systray, SIGNAL(activated( QSystemTrayIcon::ActivationReason )),
+  connect(systemTrayIcon(), SIGNAL(activated( QSystemTrayIcon::ActivationReason )),
           this, SLOT(systrayActivated( QSystemTrayIcon::ActivationReason )));
 #endif
 
@@ -420,9 +428,9 @@ void MainWin::setConnectedState() {
   statusBar()->showMessage(tr("Connected to core."));
   setWindowIcon(onlineTrayIcon);
   qApp->setWindowIcon(onlineTrayIcon);
-  systray->setIcon(onlineTrayIcon);
+  systemTrayIcon()->setIcon(onlineTrayIcon);
   if(sslLabel->width() == 0)
-    sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl")));
+    sslLabel->setPixmap(SmallIcon("security-low"));
 }
 
 void MainWin::loadLayout() {
@@ -444,7 +452,7 @@ void MainWin::updateLagIndicator(int lag) {
 
 void MainWin::securedConnection() {
   // todo: make status bar entry
-  sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/ssl")));
+  sslLabel->setPixmap(SmallIcon("security-high"));
 }
 
 void MainWin::disconnectedFromCore() {
@@ -478,7 +486,7 @@ void MainWin::setDisconnectedState() {
   statusBar()->showMessage(tr("Not connected to core."));
   setWindowIcon(offlineTrayIcon);
   qApp->setWindowIcon(offlineTrayIcon);
-  systray->setIcon(offlineTrayIcon);
+  systemTrayIcon()->setIcon(offlineTrayIcon);
   sslLabel->setPixmap(QPixmap());
 }
 
@@ -559,11 +567,11 @@ void MainWin::toggleVisibility() {
     // setFocus(); //Qt::ActiveWindowFocusReason
 
   } else {
-    if(systray->isSystemTrayAvailable ()) {
+    if(systemTrayIcon()->isSystemTrayAvailable ()) {
       clearFocus();
       hide();
-      if(!systray->isVisible()) {
-        systray->show();
+      if(!systemTrayIcon()->isVisible()) {
+        systemTrayIcon()->show();
       }
     } else {
       lower();
@@ -677,7 +685,7 @@ void MainWin::desktopNotificationInvoked(uint id, const QString & action) {
 #endif /* HAVE_DBUS */
 
 void MainWin::displayTrayIconMessage(const QString &title, const QString &message) {
-  systray->showMessage(title, message);
+  systemTrayIcon()->showMessage(title, message);
 }
 
 void MainWin::setTrayIconActivity(bool active) {
@@ -686,16 +694,16 @@ void MainWin::setTrayIconActivity(bool active) {
       timer->start(500);
   } else {
     timer->stop();
-    systray->setIcon(onlineTrayIcon);
+    systemTrayIcon()->setIcon(onlineTrayIcon);
   }
 }
 
 void MainWin::makeTrayIconBlink() {
   if(trayIconActive) {
-    systray->setIcon(onlineTrayIcon);
+    systemTrayIcon()->setIcon(onlineTrayIcon);
     trayIconActive = false;
   } else {
-    systray->setIcon(activeTrayIcon);
+    systemTrayIcon()->setIcon(activeTrayIcon);
     trayIconActive = true;
   }
 }
@@ -736,13 +744,13 @@ void MainWin::clientNetworkUpdated() {
 
   switch(net->connectionState()) {
   case Network::Initialized:
-    action->setIcon(QIcon(":/16x16/actions/network-connect"));
+    action->setIcon(SmallIcon("network-connect"));
     break;
   case Network::Disconnected:
-    action->setIcon(QIcon(":/16x16/actions/network-disconnect"));
+    action->setIcon(SmallIcon("network-disconnect"));
     break;
   default:
-    action->setIcon(QIcon(":/16x16/actions/gear"));
+    action->setIcon(SmallIcon("network-wired"));
   }
 }