modernize: Prefer default member init over ctor init
[quassel.git] / src / uisupport / graphicalui.h
index 0fbf96b..42b5785 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef GRAPHICALUI_H_
-#define GRAPHICALUI_H_
+#pragma once
+
+#include "uisupport-export.h"
 
 #include "abstractui.h"
+#include "singleton.h"
 
 class ActionCollection;
 class ContextMenuActionProvider;
@@ -31,15 +33,15 @@ class UiStyle;
 #ifdef Q_OS_WIN
 #  include <windows.h>
 #endif
+#ifdef Q_OS_MAC
+#include <Carbon/Carbon.h>
+#endif
 
-class GraphicalUi : public AbstractUi
+class UISUPPORT_EXPORT GraphicalUi : public AbstractUi, protected Singleton<GraphicalUi>
 {
     Q_OBJECT
 
 public:
-    GraphicalUi(QObject *parent = 0);
-    virtual void init();
-
     //! Access global ActionCollections.
     /** These ActionCollections are associated with the main window, i.e. they contain global
     *  actions (and thus, shortcuts). Widgets providing application-wide shortcuts should
@@ -75,6 +77,9 @@ public:
     static bool isMainWidgetVisible();
 
 protected:
+    GraphicalUi(QObject *parent = nullptr);
+    void init() override;
+
     //! This is the widget we associate global actions with, typically the main window
     void setMainWidget(QWidget *);
 
@@ -100,35 +105,31 @@ protected:
     void setToolBarActionProvider(ToolBarActionProvider *);
     void setUiStyle(UiStyle *);
 
-    virtual bool eventFilter(QObject *obj, QEvent *event);
+    bool eventFilter(QObject *obj, QEvent *event) override;
 
 protected slots:
-    virtual void disconnectedFromCore();
+    void disconnectedFromCore() override;
 
 private:
-    static inline GraphicalUi *instance();
-
-    static GraphicalUi *_instance;
     static QWidget *_mainWidget;
     static QHash<QString, ActionCollection *> _actionCollections;
     static ContextMenuActionProvider *_contextMenuActionProvider;
     static ToolBarActionProvider *_toolBarActionProvider;
     static UiStyle *_uiStyle;
-    static bool _onAllDesktops;
 
 #ifdef Q_OS_WIN
     DWORD _dwTickCount;
 #endif
+#ifdef Q_OS_MAC
+    ProcessSerialNumber _procNum;
+#endif
 };
 
 
 // inlines
 
-GraphicalUi *GraphicalUi::instance() { return _instance; }
 ContextMenuActionProvider *GraphicalUi::contextMenuActionProvider() { return _contextMenuActionProvider; }
 ToolBarActionProvider *GraphicalUi::toolBarActionProvider() { return _toolBarActionProvider; }
 UiStyle *GraphicalUi::uiStyle() { return _uiStyle; }
 QWidget *GraphicalUi::mainWidget() { return _mainWidget; }
 bool GraphicalUi::isHidingMainWidgetAllowed() const { return false; }
-
-#endif