-ContextMenuActionProvider *GraphicalUi::_contextMenuActionProvider = 0;
-ToolBarActionProvider *GraphicalUi::_toolBarActionProvider = 0;
-UiStyle *GraphicalUi::_uiStyle = 0;
-bool GraphicalUi::_onAllDesktops = false;
+ContextMenuActionProvider *GraphicalUi::_contextMenuActionProvider = nullptr;
+ToolBarActionProvider *GraphicalUi::_toolBarActionProvider = nullptr;
+UiStyle *GraphicalUi::_uiStyle = nullptr;
+
+
+GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent), Singleton<GraphicalUi>(this)
+{
+ Q_INIT_RESOURCE(pics);
+ Q_INIT_RESOURCE(hicolor_icons);
+#ifdef EMBED_DATA
+ Q_INIT_RESOURCE(icons);
+ Q_INIT_RESOURCE(iconthemes);
+#endif
+
+#ifdef Q_OS_WIN
+ _dwTickCount = 0;
+#endif
+#ifdef Q_OS_MAC
+ GetFrontProcess(&_procNum);
+#endif
+}
+
+
+void GraphicalUi::init()
+{
+#ifdef Q_OS_WIN
+ mainWidget()->installEventFilter(this);
+#endif
+}
+
+
+ActionCollection *GraphicalUi::actionCollection(const QString &category, const QString &translatedCategory)
+{
+ if (_actionCollections.contains(category))
+ return _actionCollections.value(category);
+ auto *coll = new ActionCollection(_mainWidget);
+
+ if (!translatedCategory.isEmpty())
+ coll->setProperty("Category", translatedCategory);
+ else
+ coll->setProperty("Category", category);
+
+ if (_mainWidget)
+ coll->addAssociatedWidget(_mainWidget);
+ _actionCollections.insert(category, coll);
+ return coll;
+}