From a75d42eebee0a280d6f68255506b505649ce190d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 28 Sep 2017 12:48:09 +0200 Subject: Windows QPA: Clean up code checking for the OS version Use QOperatingSystemVersion for comparisons and remove code for versions < Windows 7. Change-Id: I5a5e3d08a29accd42f170da3ee9c9021ca499f82 Reviewed-by: Oliver Wolff Reviewed-by: Jake Petroules --- src/plugins/platforms/windows/qwin10helpers.cpp | 3 ++- src/plugins/platforms/windows/qwindowscontext.cpp | 7 ++++--- src/plugins/platforms/windows/qwindowsdialoghelpers.cpp | 15 ++++++--------- src/plugins/platforms/windows/qwindowsglcontext.cpp | 4 +--- src/plugins/platforms/windows/qwindowsmousehandler.cpp | 2 -- 5 files changed, 13 insertions(+), 18 deletions(-) (limited to 'src/plugins/platforms/windows') diff --git a/src/plugins/platforms/windows/qwin10helpers.cpp b/src/plugins/platforms/windows/qwin10helpers.cpp index 12cccd124b..ac6a34d7c2 100644 --- a/src/plugins/platforms/windows/qwin10helpers.cpp +++ b/src/plugins/platforms/windows/qwin10helpers.cpp @@ -40,6 +40,7 @@ #include "qwin10helpers.h" #include +#include #include #if defined(Q_CC_MINGW) @@ -115,7 +116,7 @@ static QWindowsComBaseDLL baseComDll; bool QWindowsComBaseDLL::init() { - if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS10 && !isValid()) { + if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10 && !isValid()) { QSystemLibrary library(QStringLiteral("combase")); roGetActivationFactory = reinterpret_cast(library.resolve("RoGetActivationFactory")); diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index 869f2b5272..722c5118fe 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -191,7 +191,8 @@ void QWindowsUser32DLL::init() getDisplayAutoRotationPreferences = (GetDisplayAutoRotationPreferences)library.resolve("GetDisplayAutoRotationPreferences"); setDisplayAutoRotationPreferences = (SetDisplayAutoRotationPreferences)library.resolve("SetDisplayAutoRotationPreferences"); - if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS10) { // Appears in 10.0.14393, October 2016 + if (QOperatingSystemVersion::current() + >= QOperatingSystemVersion(QOperatingSystemVersion::Windows, 10, 0, 14393)) { enableNonClientDpiScaling = (EnableNonClientDpiScaling)library.resolve("EnableNonClientDpiScaling"); getWindowDpiAwarenessContext = (GetWindowDpiAwarenessContext)library.resolve("GetWindowDpiAwarenessContext"); getAwarenessFromDpiAwarenessContext = (GetAwarenessFromDpiAwarenessContext)library.resolve("GetAwarenessFromDpiAwarenessContext"); @@ -434,7 +435,7 @@ QString QWindowsContext::registerWindowClass(const QWindow *w) // QOpenGLWidget or QQuickWidget later on. That cannot be detected at this stage. if (w->surfaceType() == QSurface::OpenGLSurface || (flags & Qt::MSWindowsOwnDC)) style |= CS_OWNDC; - if (!(flags & Qt::NoDropShadowWindowHint) && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based) + if (!(flags & Qt::NoDropShadowWindowHint) && (type == Qt::Popup || w->property("_q_windowsDropShadow").toBool())) { style |= CS_DROPSHADOW; } @@ -852,7 +853,7 @@ static inline bool resizeOnDpiChanged(const QWindow *w) static bool shouldHaveNonClientDpiScaling(const QWindow *window) { - return QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS10 + return QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10 && window->isTopLevel() && !window->property(QWindowsWindow::embeddedNativeParentHandleProperty).isValid() #if QT_CONFIG(opengl) // /QTBUG-62901, EnableNonClientDpiScaling has problems with GL diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp index 5501601c1a..2c9228be44 100644 --- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp @@ -599,8 +599,8 @@ QString QWindowsShellItem::path() const { if (isFileSystem()) return QDir::cleanPath(QWindowsShellItem::displayName(m_item, SIGDN_FILESYSPATH)); - // Check for a "Library" item (Windows 7) - if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7 && isDir()) + // Check for a "Library" item + if (isDir()) return QWindowsShellItem::libraryItemDefaultSaveFolder(m_item); return QString(); } @@ -2041,7 +2041,7 @@ bool useHelper(QPlatformTheme::DialogType type) return false; switch (type) { case QPlatformTheme::FileDialog: - return QSysInfo::windowsVersion() >= QSysInfo::WV_XP; + return true; case QPlatformTheme::ColorDialog: #ifdef USE_NATIVE_COLOR_DIALOG return true; @@ -2062,13 +2062,10 @@ QPlatformDialogHelper *createHelper(QPlatformTheme::DialogType type) if (QWindowsIntegration::instance()->options() & QWindowsIntegration::NoNativeDialogs) return 0; switch (type) { - case QPlatformTheme::FileDialog: // Note: "Windows XP Professional x64 Edition has version number WV_5_2 (WV_2003). - if (QWindowsIntegration::instance()->options() & QWindowsIntegration::XpNativeDialogs - || QSysInfo::windowsVersion() <= QSysInfo::WV_2003) { + case QPlatformTheme::FileDialog: + if (QWindowsIntegration::instance()->options() & QWindowsIntegration::XpNativeDialogs) return new QWindowsXpFileDialogHelper(); - } - if (QSysInfo::windowsVersion() > QSysInfo::WV_2003) - return new QWindowsFileDialogHelper(); + return new QWindowsFileDialogHelper; case QPlatformTheme::ColorDialog: #ifdef USE_NATIVE_COLOR_DIALOG return new QWindowsColorDialogHelper(); diff --git a/src/plugins/platforms/windows/qwindowsglcontext.cpp b/src/plugins/platforms/windows/qwindowsglcontext.cpp index 78368d87de..4bdf3167e4 100644 --- a/src/plugins/platforms/windows/qwindowsglcontext.cpp +++ b/src/plugins/platforms/windows/qwindowsglcontext.cpp @@ -379,9 +379,7 @@ static PIXELFORMATDESCRIPTOR initPixelFormatDescriptor(&pfd); pfd.iPixelType = PFD_TYPE_RGBA; pfd.iLayerType = PFD_MAIN_PLANE; - pfd.dwFlags = PFD_SUPPORT_OPENGL; - if (QSysInfo::windowsVersion() >= QSysInfo::WV_VISTA) - pfd.dwFlags = PFD_SUPPORT_COMPOSITION; + pfd.dwFlags = PFD_SUPPORT_OPENGL | PFD_SUPPORT_COMPOSITION; const bool isPixmap = (additional.formatFlags & QWindowsGLRenderToPixmap) != 0; pfd.dwFlags |= isPixmap ? PFD_DRAW_TO_BITMAP : PFD_DRAW_TO_WINDOW; if (!(additional.formatFlags & QWindowsGLDirectRendering)) diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp index b9c2db1c6a..2f556a66df 100644 --- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp +++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp @@ -130,8 +130,6 @@ static inline QTouchDevice *createTouchDevice() QT_NID_INTEGRATED_TOUCH = 0x1, QT_NID_EXTERNAL_TOUCH = 0x02, QT_NID_MULTI_INPUT = 0x40, QT_NID_READY = 0x80 }; - if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS7) - return 0; const int digitizers = GetSystemMetrics(QT_SM_DIGITIZER); if (!(digitizers & (QT_NID_INTEGRATED_TOUCH | QT_NID_EXTERNAL_TOUCH))) return 0; -- cgit v1.2.3