diff options
author | Wladimir Leuschner <wladimir.leuschner@qt.io> | 2023-06-08 12:40:30 +0300 |
---|---|---|
committer | Wladimir Leuschner <wladimir.leuschner@qt.io> | 2023-10-27 18:32:54 +0200 |
commit | 65d58e6c41e3c549c89ea4f05a8e467466e79ca3 (patch) | |
tree | 89a7a6ce6d2d8e2aead01ef1e80b112d8f8c59a9 /src/plugins/styles/modernwindows/main.cpp | |
parent | 8ac49acca637940842f2f3ab702cd52d0a343283 (diff) |
Introduce new empty Windows 11 style
A new empty Windows 11 style plugin is introduced and QWindowsVistaStyle
module is renamed to QModernWindowsStylePlugin containing styles for
Windows Vista and Windows 11. The color palette is adjusted according to
the Windows 11 guidelines.
[ChangeLog][Windows] Introduction of Windows 11 specific style.
[ChangeLog][Windows] Renaming of QWindowsVistaStylePlugin to
QModernWindowsStylePlugin
Change-Id: I5f67d7e8c9a3033ffe57ecbaebbf0e3fb10c60ab
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/plugins/styles/modernwindows/main.cpp')
-rw-r--r-- | src/plugins/styles/modernwindows/main.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/plugins/styles/modernwindows/main.cpp b/src/plugins/styles/modernwindows/main.cpp new file mode 100644 index 0000000000..a4d8e60385 --- /dev/null +++ b/src/plugins/styles/modernwindows/main.cpp @@ -0,0 +1,36 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include <QtWidgets/private/qtwidgetsglobal_p.h> +#include <QtWidgets/qstyleplugin.h> +#include <QtCore/qoperatingsystemversion.h> +#include "qwindowsvistastyle_p.h" +#include "qwindows11style_p.h" + +QT_BEGIN_NAMESPACE + +class QModernWindowsStylePlugin : public QStylePlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "modernwindowsstyles.json") +public: + QStyle *create(const QString &key) override; +}; + +QStyle *QModernWindowsStylePlugin::create(const QString &key) +{ + bool isWin11OrAbove = QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows11; + if (isWin11OrAbove && key.compare(QLatin1String("windows11"), Qt::CaseInsensitive) == 0) { + return new QWindows11Style(); + } else if (!isWin11OrAbove && key.compare(QLatin1String("windows11"), Qt::CaseInsensitive) == 0) { + qWarning("QWindows11Style: Style is only supported on Windows11 and above"); + return new QWindowsVistaStyle(); + } else if (key.compare(QLatin1String("windowsvista"), Qt::CaseInsensitive) == 0) { + return new QWindowsVistaStyle(); + } + return nullptr; +} + +QT_END_NAMESPACE + +#include "main.moc" |