Properly handle hover events in ChatView
[quassel.git] / src / qtui / qtui.h
index 7ef22e0..1eb038f 100644 (file)
 
 #include "abstractnotificationbackend.h"
 #include "mainwin.h"
+#include "qtuistyle.h"
 
 class MainWin;
 class MessageModel;
 class QtUiMessageProcessor;
-class QtUiStyle;
 
 //! This class encapsulates Quassel's Qt-based GUI.
 /** This is basically a wrapper around MainWin, which is necessary because we cannot derive MainWin
@@ -49,6 +49,8 @@ public:
   inline static QtUiStyle *style();
   inline static MainWin *mainWindow();
 
+  static bool haveSystemTray();
+
   /* Notifications */
 
   static void registerNotificationBackend(AbstractNotificationBackend *);
@@ -68,16 +70,24 @@ protected slots:
   void disconnectedFromCore();
   void notificationActivated(uint notificationId);
 
+protected:
+  virtual void minimizeRestore(bool show);
+  virtual bool isHidingMainWidgetAllowed() const;
+
+private slots:
+  void useSystemTrayChanged(const QVariant &);
+
 private:
   static QPointer<QtUi> _instance;
   static QPointer<MainWin> _mainWin;
-  static QtUiStyle *_style;
   static QList<AbstractNotificationBackend *> _notificationBackends;
   static QList<AbstractNotificationBackend::Notification> _notifications;
+
+  bool _useSystemTray;
 };
 
 QtUi *QtUi::instance() { return _instance ? _instance.data() : new QtUi(); }
-QtUiStyle *QtUi::style() { return _style; }
+QtUiStyle *QtUi::style() { return qobject_cast<QtUiStyle*>(uiStyle()); }
 MainWin *QtUi::mainWindow() { return _mainWin; }
 
 #endif