diff options
Diffstat (limited to 'src/corelib/global/qoperatingsystemversion.cpp')
-rw-r--r-- | src/corelib/global/qoperatingsystemversion.cpp | 109 |
1 files changed, 79 insertions, 30 deletions
diff --git a/src/corelib/global/qoperatingsystemversion.cpp b/src/corelib/global/qoperatingsystemversion.cpp index a89cfa88d2..d25a626b8d 100644 --- a/src/corelib/global/qoperatingsystemversion.cpp +++ b/src/corelib/global/qoperatingsystemversion.cpp @@ -15,6 +15,7 @@ #include <qdebug.h> #ifdef Q_OS_ANDROID +#include <QtCore/private/qjnihelpers_p.h> #include <QJniObject> #endif @@ -110,15 +111,11 @@ QT_BEGIN_NAMESPACE */ /*! + \fn QOperatingSystemVersion::current() Returns a QOperatingSystemVersion indicating the current OS and its version number. \sa currentType() */ -QOperatingSystemVersion QOperatingSystemVersion::current() -{ - return QOperatingSystemVersionBase::current(); -} - QOperatingSystemVersionBase QOperatingSystemVersionBase::current() { static const QOperatingSystemVersionBase v = current_impl(); @@ -179,11 +176,13 @@ QOperatingSystemVersionBase QOperatingSystemVersionBase::current_impl() { 9, 0 }, // API level 28 { 10, 0 }, // API level 29 { 11, 0 }, // API level 30 + { 12, 0 }, // API level 31 + { 12, 0 }, // API level 32 + { 13, 0 }, // API level 33 }; // This will give us at least the first 2 version components - const size_t versionIdx = size_t(QJniObject::getStaticField<jint>( - "android/os/Build$VERSION", "SDK_INT")) - 1; + const size_t versionIdx = QtAndroidPrivate::androidSdkVersion() - 1; if (versionIdx < sizeof(versions) / sizeof(versions[0])) { version.m_major = versions[versionIdx].major; version.m_minor = versions[versionIdx].minor; @@ -200,13 +199,13 @@ QOperatingSystemVersionBase QOperatingSystemVersionBase::current_impl() } #endif -static inline int compareVersionComponents(int lhs, int rhs) +static inline int compareVersionComponents(int lhs, int rhs) noexcept { return lhs >= 0 && rhs >= 0 ? lhs - rhs : 0; } int QOperatingSystemVersionBase::compare(QOperatingSystemVersionBase v1, - QOperatingSystemVersionBase v2) + QOperatingSystemVersionBase v2) noexcept { if (v1.m_major == v2.m_major) { if (v1.m_minor == v2.m_minor) { @@ -303,11 +302,6 @@ int QOperatingSystemVersionBase::compare(QOperatingSystemVersionBase v1, \sa type() */ -QString QOperatingSystemVersion::name() const -{ - return QOperatingSystemVersionBase::name(); -} - QString QOperatingSystemVersionBase::name(QOperatingSystemVersionBase osversion) { switch (osversion.type()) { @@ -356,6 +350,8 @@ bool QOperatingSystemVersionBase::isAnyOfType(std::initializer_list<OSType> type return std::find(types.begin(), types.end(), type) != types.end(); } +#ifndef QT_BOOTSTRAPPED + /*! \variable QOperatingSystemVersion::Windows7 \brief a version corresponding to Windows 7 (version 6.1). @@ -394,6 +390,7 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 1809 (version 10.0.17763). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_1809; /*! \variable QOperatingSystemVersion::Windows10_1903 @@ -401,6 +398,7 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 1903 (version 10.0.18362). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_1903; /*! \variable QOperatingSystemVersion::Windows10_1909 @@ -408,6 +406,7 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 1909 (version 10.0.18363). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_1909; /*! \variable QOperatingSystemVersion::Windows10_2004 @@ -415,6 +414,7 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 2004 (version 10.0.19041). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_2004; /*! \variable QOperatingSystemVersion::Windows10_20H2 @@ -422,6 +422,7 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 20H2 (version 10.0.19042). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_20H2; /*! \variable QOperatingSystemVersion::Windows10_21H1 @@ -429,6 +430,7 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 21H1 (version 10.0.19043). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_21H1; /*! \variable QOperatingSystemVersion::Windows10_21H2 @@ -436,6 +438,15 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = Version 21H2 (version 10.0.19044). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_21H2; + +/*! + \variable QOperatingSystemVersion::Windows10_22H2 + \brief a version corresponding to Windows 10 October 2022 Update + Version 22H2 (version 10.0.19045). + \since 6.5 + */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows10_22H2; /*! \variable QOperatingSystemVersion::Windows11 @@ -443,18 +454,27 @@ const QOperatingSystemVersion QOperatingSystemVersion::Windows10 = (version 10.0.22000). \since 6.3 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows11; /*! \variable QOperatingSystemVersion::Windows11_21H2 \brief a version corresponding to Windows 11 Version 21H2 (version 10.0.22000). \since 6.4 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows11_21H2; /*! \variable QOperatingSystemVersion::Windows11_22H2 \brief a version corresponding to Windows 11 Version 22H2 (version 10.0.22621). \since 6.4 */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Windows11_22H2; + +/*! + \variable QOperatingSystemVersion::Windows11_23H2 + \brief a version corresponding to Windows 11 Version 23H2 (version 10.0.22631). + \since 6.6 + */ /*! \variable QOperatingSystemVersion::OSXMavericks @@ -514,24 +534,11 @@ const QOperatingSystemVersion QOperatingSystemVersion::MacOSCatalina = /*! \variable QOperatingSystemVersion::MacOSBigSur - \brief a version corresponding to macOS Big Sur - - The actual version number depends on whether the application was built - using the Xcode 12 SDK. If it was, the version number corresponds - to macOS 11.0. If not it will correspond to macOS 10.16. - - By comparing QOperatingSystemVersion::current() to this constant - you will always end up comparing to the right version number. + \brief a version corresponding to macOS Big Sur (version 11). \since 6.0 */ -const QOperatingSystemVersion QOperatingSystemVersion::MacOSBigSur = [] { -#if defined(Q_OS_DARWIN) - if (QMacVersion::buildSDK(QMacVersion::ApplicationBinary) >= QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 10, 16)) - return QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 11, 0); - else -#endif - return QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 10, 16); -}(); +const QOperatingSystemVersion QOperatingSystemVersion::MacOSBigSur = + QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 11, 0); /*! \variable QOperatingSystemVersion::MacOSMonterey @@ -542,6 +549,19 @@ const QOperatingSystemVersion QOperatingSystemVersion::MacOSMonterey = QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 12, 0); /*! + \variable QOperatingSystemVersion::MacOSVentura + \brief a version corresponding to macOS Ventura (version 13). + \since 6.4 +*/ +const QOperatingSystemVersionBase QOperatingSystemVersion::MacOSVentura; + +/*! + \variable QOperatingSystemVersion::MacOSSonoma + \brief a version corresponding to macOS Sonoma (version 14). + \since 6.5 +*/ + +/*! \variable QOperatingSystemVersion::AndroidJellyBean \brief a version corresponding to Android Jelly Bean (version 4.1, API level 16). \since 5.9 @@ -657,6 +677,35 @@ const QOperatingSystemVersion QOperatingSystemVersion::Android10 = const QOperatingSystemVersion QOperatingSystemVersion::Android11 = QOperatingSystemVersion(QOperatingSystemVersion::Android, 11, 0); +/*! + \variable QOperatingSystemVersion::Android12 + \brief a version corresponding to Android 12 (version 12.0, API level 31). + \since 6.5 + */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Android12; + +/*! + \variable QOperatingSystemVersion::Android12L + \brief a version corresponding to Android 12L (version 12.0, API level 32). + \since 6.5 + */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Android12L; + +/*! + \variable QOperatingSystemVersion::Android13 + \brief a version corresponding to Android 13 (version 13.0, API level 33). + \since 6.5 + */ +const QOperatingSystemVersionBase QOperatingSystemVersion::Android13; + +/*! + \variable QOperatingSystemVersion::Android14 + \brief a version corresponding to Android 14 (version 14.0, API level 34). + \since 6.7 + */ + +#endif // !QT_BOOTSTRAPPED + #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug debug, const QOperatingSystemVersion &ov) { |