X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fgraphicalui.cpp;h=33b0d87b9f9d35df8abd98d1479e4a0453b3bc6d;hp=6136ecf45d74b465bc71b2e5f0fb77f9824843e6;hb=219d124b5000b39d90482f575b6ceb838c037ebc;hpb=d4b64322860b0dfcc9e1340a3b3a0b0df3e2eb81 diff --git a/src/uisupport/graphicalui.cpp b/src/uisupport/graphicalui.cpp index 6136ecf4..33b0d87b 100644 --- a/src/uisupport/graphicalui.cpp +++ b/src/uisupport/graphicalui.cpp @@ -24,22 +24,23 @@ #include "graphicalui.h" #include "actioncollection.h" -#include "uisettings.h" #include "contextmenuactionprovider.h" #include "toolbaractionprovider.h" +#include "uisettings.h" #ifdef Q_WS_X11 -# include +# include #endif -QWidget *GraphicalUi::_mainWidget = 0; -QHash GraphicalUi::_actionCollections; -ContextMenuActionProvider *GraphicalUi::_contextMenuActionProvider = 0; -ToolBarActionProvider *GraphicalUi::_toolBarActionProvider = 0; -UiStyle *GraphicalUi::_uiStyle = 0; +QWidget* GraphicalUi::_mainWidget = nullptr; +QHash GraphicalUi::_actionCollections; +ContextMenuActionProvider* GraphicalUi::_contextMenuActionProvider = nullptr; +ToolBarActionProvider* GraphicalUi::_toolBarActionProvider = nullptr; +UiStyle* GraphicalUi::_uiStyle = nullptr; - -GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent), Singleton(this) +GraphicalUi::GraphicalUi(QObject* parent) + : AbstractUi(parent) + , Singleton(this) { Q_INIT_RESOURCE(pics); Q_INIT_RESOURCE(hicolor_icons); @@ -56,7 +57,6 @@ GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent), SingletonsetProperty("Category", translatedCategory); @@ -82,53 +81,45 @@ ActionCollection *GraphicalUi::actionCollection(const QString &category, const Q return coll; } - -QHash GraphicalUi::actionCollections() +QHash GraphicalUi::actionCollections() { return _actionCollections; } - void GraphicalUi::loadShortcuts() { - foreach(ActionCollection *coll, actionCollections()) - coll->readSettings(); + foreach (ActionCollection* coll, actionCollections()) + coll->readSettings(); } - void GraphicalUi::saveShortcuts() { ShortcutSettings s; s.clear(); - foreach(ActionCollection *coll, actionCollections()) - coll->writeSettings(); + foreach (ActionCollection* coll, actionCollections()) + coll->writeSettings(); } - -void GraphicalUi::setMainWidget(QWidget *widget) +void GraphicalUi::setMainWidget(QWidget* widget) { _mainWidget = widget; } - -void GraphicalUi::setContextMenuActionProvider(ContextMenuActionProvider *provider) +void GraphicalUi::setContextMenuActionProvider(ContextMenuActionProvider* provider) { _contextMenuActionProvider = provider; } - -void GraphicalUi::setToolBarActionProvider(ToolBarActionProvider *provider) +void GraphicalUi::setToolBarActionProvider(ToolBarActionProvider* provider) { _toolBarActionProvider = provider; } - -void GraphicalUi::setUiStyle(UiStyle *style) +void GraphicalUi::setUiStyle(UiStyle* style) { _uiStyle = style; } - void GraphicalUi::disconnectedFromCore() { _contextMenuActionProvider->disconnectedFromCore(); @@ -136,8 +127,7 @@ void GraphicalUi::disconnectedFromCore() AbstractUi::disconnectedFromCore(); } - -bool GraphicalUi::eventFilter(QObject *obj, QEvent *event) +bool GraphicalUi::eventFilter(QObject* obj, QEvent* event) { #ifdef Q_OS_WIN if (obj == mainWidget() && event->type() == QEvent::ActivationChange) { @@ -147,7 +137,6 @@ bool GraphicalUi::eventFilter(QObject *obj, QEvent *event) return AbstractUi::eventFilter(obj, event); } - // NOTE: Window activation stuff seems to work just fine in Plasma 5 without requiring X11 hacks. // TODO: Evaluate cleaning all this up once we can get rid of Qt4/KDE4 @@ -155,47 +144,33 @@ bool GraphicalUi::eventFilter(QObject *obj, QEvent *event) bool GraphicalUi::checkMainWidgetVisibility(bool perform) { + bool needsActivation{true}; + #ifdef Q_OS_WIN // the problem is that we lose focus when the systray icon is activated // and we don't know the former active window // therefore we watch for activation event and use our stopwatch :) if (GetTickCount() - _dwTickCount < 300) { // we were active in the last 300ms -> hide it - if (perform) - minimizeRestore(false); - return false; + needsActivation = false; } - else { - if (perform) - minimizeRestore(true); - return true; - } - #else - - if (!mainWidget()->isVisible() || mainWidget()->isMinimized() || !mainWidget()->isActiveWindow()) { - if (perform) - minimizeRestore(true); - return true; - } - else { - if (perform) - minimizeRestore(false); - return false; + if (mainWidget()->isVisible() && !mainWidget()->isMinimized() && mainWidget()->isActiveWindow()) { + needsActivation = false; } - #endif - return true; + if (perform) { + minimizeRestore(needsActivation); + } + return needsActivation; } - bool GraphicalUi::isMainWidgetVisible() { return !instance()->checkMainWidgetVisibility(false); } - void GraphicalUi::minimizeRestore(bool show) { if (show) @@ -204,7 +179,6 @@ void GraphicalUi::minimizeRestore(bool show) hideMainWidget(); } - void GraphicalUi::activateMainWidget() { #ifdef Q_WS_X11 @@ -228,7 +202,6 @@ void GraphicalUi::activateMainWidget() #endif } - void GraphicalUi::hideMainWidget() { if (instance()->isHidingMainWidgetAllowed()) @@ -239,7 +212,6 @@ void GraphicalUi::hideMainWidget() #endif } - void GraphicalUi::toggleMainWidget() { instance()->checkMainWidgetVisibility(true);