VirtualBox

Changeset 102503 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Dec 6, 2023 1:35:58 PM (14 months ago)
Author:
vboxsync
Message:

FE/Qt: macOS: Bring back macOS version detection code; Based on partically reverted r156218 (only detection code, no workarounds); This is useful to adjust Qt palette to be more native, for example.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/globals
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp

    r102502 r102503  
    192192#endif
    193193#ifdef VBOX_WS_MAC
     194    , m_enmMacOSVersion(MacOSXRelease_Old)
    194195    , m_fDarkMode(false)
    195196#endif
     
    248249            this, &UICommon::sltHandleCommitDataRequest);
    249250#endif /* VBOX_GUI_WITH_CUSTOMIZATIONS1 */
     251
     252#ifdef VBOX_WS_MAC
     253    /* Determine OS release early: */
     254    m_enmMacOSVersion = determineOsRelease();
     255#endif
    250256
    251257#ifdef VBOX_WS_NIX
     
    954960    return settings.value(QString("%1").arg(strKey)).toString();
    955961}
     962
     963#ifdef VBOX_WS_MAC
     964/* static */
     965MacOSXRelease UICommon::determineOsRelease()
     966{
     967    /* Prepare 'utsname' struct: */
     968    utsname info;
     969    if (uname(&info) != -1)
     970    {
     971        /* Cut the major release index of the string we have, s.a. 'man uname': */
     972        const int iRelease = QString(info.release).section('.', 0, 0).toInt();
     973        /* Check boundaries: */
     974        if (iRelease <= MacOSXRelease_FirstUnknown)
     975            return MacOSXRelease_Old;
     976        else if (iRelease >= MacOSXRelease_LastUnknown)
     977            return MacOSXRelease_New;
     978        else
     979            return (MacOSXRelease)iRelease;
     980    }
     981    /* Return 'Old' by default: */
     982    return MacOSXRelease_Old;
     983}
     984#endif /* VBOX_WS_MAC */
    956985
    957986#ifdef VBOX_WS_NIX
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h

    r102502 r102503  
    214214     * @{ */
    215215#ifdef VBOX_WS_MAC
     216        /** macOS: Returns #MacOSXRelease determined by <i>uname</i> call. */
     217        static MacOSXRelease determineOsRelease();
     218        /** macOS: Returns #MacOSXRelease determined during UICommon prepare routine. */
     219        MacOSXRelease osRelease() const { return m_enmMacOSVersion; }
     220
    216221        /** macOS: Returns whether macOS is in Dark mode. */
    217222        bool isInDarkMode() const { return m_fDarkMode; }
     
    654659     * @{ */
    655660#ifdef VBOX_WS_MAC
     661        /** macOS: Holds the #MacOSXRelease determined using <i>uname</i> call. */
     662        MacOSXRelease  m_enmMacOSVersion;
     663
    656664        /** macOS: Holds whether macOS is in Dark mode. */
    657665        bool  m_fDarkMode;
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h

    r98999 r102503  
    101101
    102102
     103#ifdef VBOX_WS_MAC
     104/** Known macOS releases. */
     105enum MacOSXRelease
     106{
     107    MacOSXRelease_Old,
     108    MacOSXRelease_FirstUnknown = 9,
     109    MacOSXRelease_SnowLeopard  = 10,
     110    MacOSXRelease_Lion         = 11,
     111    MacOSXRelease_MountainLion = 12,
     112    MacOSXRelease_Mavericks    = 13,
     113    MacOSXRelease_Yosemite     = 14,
     114    MacOSXRelease_ElCapitan    = 15,
     115    MacOSXRelease_Sierra       = 16,
     116    MacOSXRelease_HighSierra   = 17,
     117    MacOSXRelease_Mojave       = 18,
     118    MacOSXRelease_Catalina     = 19,
     119    MacOSXRelease_BigSur       = 20,
     120    MacOSXRelease_Monterey     = 21,
     121    MacOSXRelease_Ventura      = 22,
     122    MacOSXRelease_Sonoma       = 23,
     123    MacOSXRelease_LastUnknown  = 24,
     124    MacOSXRelease_New,
     125};
     126#endif /* VBOX_WS_MAC */
     127
     128
    103129/** Size suffixes. */
    104130enum SizeSuffix
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette