mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-04 16:56:53 +08:00
Ref T189, allow to set main window (injection)
In swift UI applications we init the main window explicitly, no need afterwars to search for it
This commit is contained in:
@@ -187,13 +187,16 @@ namespace BlackGui
|
||||
if (!mainWindow) { return; }
|
||||
if (m_uiSetupCompleted) { return; }
|
||||
m_uiSetupCompleted = true;
|
||||
|
||||
const QString name(this->getApplicationNameVersionBetaDev());
|
||||
mainWindow->setObjectName(QCoreApplication::applicationName());
|
||||
mainWindow->setWindowTitle(name);
|
||||
mainWindow->setWindowIcon(m_windowIcon);
|
||||
mainWindow->setWindowIconText(name);
|
||||
CStyleSheetUtility::setQSysInfoProperties(CGuiApplication::mainApplicationWindow(), true);
|
||||
emit uiObjectTreeReady();
|
||||
CStyleSheetUtility::setQSysInfoProperties(mainWindow, true);
|
||||
CGuiUtility::registerMainApplicationWindow(mainWindow);
|
||||
|
||||
emit this->uiObjectTreeReady();
|
||||
}
|
||||
|
||||
void CGuiApplication::addWindowFlags(Qt::WindowFlags flags)
|
||||
|
||||
@@ -39,6 +39,8 @@ using namespace BlackMisc;
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
QWidget *CGuiUtility::s_mainApplicationWindow = nullptr;
|
||||
|
||||
CEnableForFramelessWindow *CGuiUtility::mainFramelessEnabledApplicationWindow()
|
||||
{
|
||||
const QWidgetList tlw = topLevelApplicationWidgetsWithName();
|
||||
@@ -53,7 +55,7 @@ namespace BlackGui
|
||||
|
||||
namespace Private
|
||||
{
|
||||
QWidget *mainApplicationWindowImpl()
|
||||
QWidget *mainApplicationWindowSearch()
|
||||
{
|
||||
CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledApplicationWindow();
|
||||
if (mw && mw->getWidget())
|
||||
@@ -73,15 +75,23 @@ namespace BlackGui
|
||||
}
|
||||
} // ns
|
||||
|
||||
void CGuiUtility::registerMainApplicationWindow(QWidget *mainWindow)
|
||||
{
|
||||
CGuiUtility::s_mainApplicationWindow = mainWindow;
|
||||
}
|
||||
|
||||
QWidget *CGuiUtility::mainApplicationWindow()
|
||||
{
|
||||
static QWidget *mw = Private::mainApplicationWindowImpl();
|
||||
return mw;
|
||||
if (!CGuiUtility::s_mainApplicationWindow)
|
||||
{
|
||||
CGuiUtility::s_mainApplicationWindow = Private::mainApplicationWindowSearch();
|
||||
}
|
||||
return CGuiUtility::s_mainApplicationWindow;
|
||||
}
|
||||
|
||||
bool CGuiUtility::isMainWindowFrameless()
|
||||
{
|
||||
const CEnableForFramelessWindow *mw = mainFramelessEnabledApplicationWindow();
|
||||
const CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledApplicationWindow();
|
||||
return (mw && mw->isFrameless());
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,9 @@ namespace BlackGui
|
||||
//! Main (frameless enabled) application window
|
||||
static CEnableForFramelessWindow *mainFramelessEnabledApplicationWindow();
|
||||
|
||||
//! Register main application window widget if this is known
|
||||
static void registerMainApplicationWindow(QWidget *mainWindow);
|
||||
|
||||
//! Main application window widget
|
||||
static QWidget *mainApplicationWindow();
|
||||
|
||||
@@ -131,6 +134,8 @@ namespace BlackGui
|
||||
private:
|
||||
//! Constructor, use static methods only
|
||||
CGuiUtility() {}
|
||||
|
||||
static QWidget *s_mainApplicationWindow;
|
||||
};
|
||||
} // ns
|
||||
|
||||
|
||||
Reference in New Issue
Block a user