diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index 4fa563a1d..12f017918 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -181,6 +182,7 @@ namespace BlackGui mainWindow->setWindowTitle(name); mainWindow->setWindowIcon(m_windowIcon); mainWindow->setWindowIconText(name); + CStyleSheetUtility::setQSysInfoProperties(CGuiApplication::mainApplicationWindow(), true); emit uiObjectTreeReady(); } diff --git a/src/blackgui/stylesheetutility.cpp b/src/blackgui/stylesheetutility.cpp index ea8a916b3..27b22d805 100644 --- a/src/blackgui/stylesheetutility.cpp +++ b/src/blackgui/stylesheetutility.cpp @@ -411,6 +411,26 @@ namespace BlackGui return s1; } + void CStyleSheetUtility::setQSysInfoProperties(QWidget *widget, bool withChildWidgets) + { + Q_ASSERT_X(widget, Q_FUNC_INFO, "Missing widget"); + if (!widget->property("qsysKernelType").isValid()) + { + widget->setProperty("qsysKernelType", QSysInfo::kernelType()); + widget->setProperty("qsysCurrentCpuArchitecture", QSysInfo::currentCpuArchitecture()); + widget->setProperty("qsysBuildCpuArchitecture", QSysInfo::buildCpuArchitecture()); + widget->setProperty("qsysProductType", QSysInfo::productType()); + } + + if (withChildWidgets) + { + for (QWidget *w : widget->findChildren(QString(), Qt::FindDirectChildrenOnly)) + { + CStyleSheetUtility::setQSysInfoProperties(w, true); + } + } + } + void CStyleSheetUtility::ps_qssDirectoryChanged(const QString &file) { Q_UNUSED(file); diff --git a/src/blackgui/stylesheetutility.h b/src/blackgui/stylesheetutility.h index 5f2cfff60..bea590a71 100644 --- a/src/blackgui/stylesheetutility.h +++ b/src/blackgui/stylesheetutility.h @@ -138,6 +138,9 @@ namespace BlackGui //! Concatenate 2 styles static QString concatStyles(const QString &style1, const QString &style2); + //! Set QSysInfo properties for given widget (which can be used in stylesheet) + static void setQSysInfoProperties(QWidget *widget, bool withChildWidgets); + signals: //! Sheets have been changed //! \deprecated use BlackGui::CGuiApplication::styleSheetsChanged