introduce fullscreen mode, fixes #803
[quassel.git] / src / qtui / statusnotifieritemdbus.cpp
index db93d5c..5e67e69 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
+#include "mainwin.h"
+#include "qtui.h"
 #include "statusnotifieritemdbus.h"
 #include "statusnotifieritem.h"
-#include "qtui.h"
 
 #include <QDBusConnection>
 #include <QPixmap>
@@ -146,14 +147,31 @@ StatusNotifierItemDBus::StatusNotifierItemDBus(StatusNotifierItem *parent)
     m_dbus(QDBusConnection::connectToBus(QDBusConnection::SessionBus, m_service))
 {
    new StatusNotifierItemAdaptor(this);
-   qDebug() << "service is" << m_service;
-   m_dbus.registerService(m_service);
+   //qDebug() << "service is" << m_service;
+   registerService();
    m_dbus.registerObject("/StatusNotifierItem", this);
 }
 
 StatusNotifierItemDBus::~StatusNotifierItemDBus()
 {
-    m_dbus.unregisterService(m_service);
+    unregisterService();
+}
+
+// FIXME: prevent double registrations, also test this on platforms != KDE
+//
+void StatusNotifierItemDBus::registerService()
+{
+    //qDebug() << "registering to" << m_service;
+    m_dbus.registerService(m_service);
+}
+
+// FIXME: see above
+void StatusNotifierItemDBus::unregisterService()
+{
+    //qDebug() << "unregistering from" << m_service;
+    if(m_dbus.isConnected()) {
+        m_dbus.unregisterService(m_service);
+    }
 }
 
 QString StatusNotifierItemDBus::service() const
@@ -180,7 +198,7 @@ QString StatusNotifierItemDBus::Id() const
 }
 
 QString StatusNotifierItemDBus::Status() const
- {
+{
     return m_statusNotifierItem->metaObject()->enumerator(m_statusNotifierItem->metaObject()->indexOfEnumerator("State")).valueToKey(m_statusNotifierItem->state());
 }
 
@@ -254,7 +272,9 @@ void StatusNotifierItemDBus::ContextMenu(int x, int y)
 
     //TODO: nicer placement, possible?
     if (!m_statusNotifierItem->trayMenu()->isVisible()) {
+#ifdef HAVE_KDE
         m_statusNotifierItem->trayMenu()->setWindowFlags(Qt::Window|Qt::FramelessWindowHint);
+#endif
         m_statusNotifierItem->trayMenu()->popup(QPoint(x,y));
 #ifdef HAVE_KDE
         KWindowSystem::setState(m_statusNotifierItem->trayMenu()->winId(), NET::SkipTaskbar|NET::SkipPager|NET::KeepAbove);