mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 11:05:44 +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 (!mainWindow) { return; }
|
||||||
if (m_uiSetupCompleted) { return; }
|
if (m_uiSetupCompleted) { return; }
|
||||||
m_uiSetupCompleted = true;
|
m_uiSetupCompleted = true;
|
||||||
|
|
||||||
const QString name(this->getApplicationNameVersionBetaDev());
|
const QString name(this->getApplicationNameVersionBetaDev());
|
||||||
mainWindow->setObjectName(QCoreApplication::applicationName());
|
mainWindow->setObjectName(QCoreApplication::applicationName());
|
||||||
mainWindow->setWindowTitle(name);
|
mainWindow->setWindowTitle(name);
|
||||||
mainWindow->setWindowIcon(m_windowIcon);
|
mainWindow->setWindowIcon(m_windowIcon);
|
||||||
mainWindow->setWindowIconText(name);
|
mainWindow->setWindowIconText(name);
|
||||||
CStyleSheetUtility::setQSysInfoProperties(CGuiApplication::mainApplicationWindow(), true);
|
CStyleSheetUtility::setQSysInfoProperties(mainWindow, true);
|
||||||
emit uiObjectTreeReady();
|
CGuiUtility::registerMainApplicationWindow(mainWindow);
|
||||||
|
|
||||||
|
emit this->uiObjectTreeReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGuiApplication::addWindowFlags(Qt::WindowFlags flags)
|
void CGuiApplication::addWindowFlags(Qt::WindowFlags flags)
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ using namespace BlackMisc;
|
|||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
|
QWidget *CGuiUtility::s_mainApplicationWindow = nullptr;
|
||||||
|
|
||||||
CEnableForFramelessWindow *CGuiUtility::mainFramelessEnabledApplicationWindow()
|
CEnableForFramelessWindow *CGuiUtility::mainFramelessEnabledApplicationWindow()
|
||||||
{
|
{
|
||||||
const QWidgetList tlw = topLevelApplicationWidgetsWithName();
|
const QWidgetList tlw = topLevelApplicationWidgetsWithName();
|
||||||
@@ -53,7 +55,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
namespace Private
|
namespace Private
|
||||||
{
|
{
|
||||||
QWidget *mainApplicationWindowImpl()
|
QWidget *mainApplicationWindowSearch()
|
||||||
{
|
{
|
||||||
CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledApplicationWindow();
|
CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledApplicationWindow();
|
||||||
if (mw && mw->getWidget())
|
if (mw && mw->getWidget())
|
||||||
@@ -73,15 +75,23 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
void CGuiUtility::registerMainApplicationWindow(QWidget *mainWindow)
|
||||||
|
{
|
||||||
|
CGuiUtility::s_mainApplicationWindow = mainWindow;
|
||||||
|
}
|
||||||
|
|
||||||
QWidget *CGuiUtility::mainApplicationWindow()
|
QWidget *CGuiUtility::mainApplicationWindow()
|
||||||
{
|
{
|
||||||
static QWidget *mw = Private::mainApplicationWindowImpl();
|
if (!CGuiUtility::s_mainApplicationWindow)
|
||||||
return mw;
|
{
|
||||||
|
CGuiUtility::s_mainApplicationWindow = Private::mainApplicationWindowSearch();
|
||||||
|
}
|
||||||
|
return CGuiUtility::s_mainApplicationWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CGuiUtility::isMainWindowFrameless()
|
bool CGuiUtility::isMainWindowFrameless()
|
||||||
{
|
{
|
||||||
const CEnableForFramelessWindow *mw = mainFramelessEnabledApplicationWindow();
|
const CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledApplicationWindow();
|
||||||
return (mw && mw->isFrameless());
|
return (mw && mw->isFrameless());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,9 @@ namespace BlackGui
|
|||||||
//! Main (frameless enabled) application window
|
//! Main (frameless enabled) application window
|
||||||
static CEnableForFramelessWindow *mainFramelessEnabledApplicationWindow();
|
static CEnableForFramelessWindow *mainFramelessEnabledApplicationWindow();
|
||||||
|
|
||||||
|
//! Register main application window widget if this is known
|
||||||
|
static void registerMainApplicationWindow(QWidget *mainWindow);
|
||||||
|
|
||||||
//! Main application window widget
|
//! Main application window widget
|
||||||
static QWidget *mainApplicationWindow();
|
static QWidget *mainApplicationWindow();
|
||||||
|
|
||||||
@@ -131,6 +134,8 @@ namespace BlackGui
|
|||||||
private:
|
private:
|
||||||
//! Constructor, use static methods only
|
//! Constructor, use static methods only
|
||||||
CGuiUtility() {}
|
CGuiUtility() {}
|
||||||
|
|
||||||
|
static QWidget *s_mainApplicationWindow;
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user