From daaf895c3b1400eeea1ddda232d5fb263d630bc4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 22 Sep 2017 04:31:55 +0200 Subject: [PATCH] Utility function to change window flags --- src/blackgui/guiapplication.cpp | 19 +++++++++++++++++++ src/blackgui/guiapplication.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index 89a094a7a..ecbb8d9cf 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -19,6 +19,7 @@ #include "blackgui/guiapplication.h" #include "blackgui/guiutility.h" #include "blackgui/registermetadata.h" +#include "blackmisc/slot.h" #include "blackmisc/directoryutils.h" #include "blackmisc/datacache.h" #include "blackmisc/logcategory.h" @@ -194,6 +195,24 @@ namespace BlackGui emit uiObjectTreeReady(); } + void CGuiApplication::addWindowFlags(Qt::WindowFlags flags) + { + QWidget *maw = this->mainApplicationWindow(); + if (maw) + { + Qt::WindowFlags windowFlags = maw->windowFlags(); + windowFlags |= flags; + maw->setWindowFlags(windowFlags); + } + else + { + connectOnce(this, &CGuiApplication::uiObjectTreeReady, this, [ = ] + { + this->addWindowFlags(flags); + }); + } + } + void CGuiApplication::setWindowIcon(const QPixmap &icon) { instance()->m_windowIcon = icon; diff --git a/src/blackgui/guiapplication.h b/src/blackgui/guiapplication.h index 2fca4242e..8cc29fb21 100644 --- a/src/blackgui/guiapplication.h +++ b/src/blackgui/guiapplication.h @@ -111,6 +111,9 @@ namespace BlackGui //! Init the main application window based on information in this application void initMainApplicationWindow(QWidget *mainWindow); + //! Set window flag on main application window + void addWindowFlags(Qt::WindowFlags flags); + //! \name print messages generated during parsing / cmd handling //! @{ virtual bool cmdLineErrorMessage(const QString &cmdLineErrorMessage, bool retry = false) const override;