VirtualBox

Changeset 57951 in vbox


Ignore:
Timestamp:
Sep 29, 2015 7:21:31 PM (9 years ago)
Author:
vboxsync
Message:

FE/Qt: Mac OS X: Extend release detection to distinguish old and new unknown releases.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h

    r55401 r57951  
    9696enum MacOSXRelease
    9797{
    98     MacOSXRelease_Unknown,
     98    MacOSXRelease_Old,
    9999    MacOSXRelease_SnowLeopard,
    100100    MacOSXRelease_Lion,
    101101    MacOSXRelease_MountainLion,
    102102    MacOSXRelease_Mavericks,
    103     MacOSXRelease_Yosemite
     103    MacOSXRelease_Yosemite,
     104    MacOSXRelease_New,
    104105};
    105106#endif /* Q_WS_MAC */
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r57883 r57951  
    314314
    315315#ifdef Q_WS_MAC
    316 /** Returns #MacOSXRelease determined using <i>uname</i> call. */
     316/* static */
    317317MacOSXRelease VBoxGlobal::osRelease()
    318318{
     
    321321    if (uname(&info) != -1)
    322322    {
    323         /* Parse known .release types: */
    324             if (QString(info.release).startsWith("14."))
    325                 return MacOSXRelease_Yosemite;
    326         else
    327             if (QString(info.release).startsWith("13."))
    328                 return MacOSXRelease_Mavericks;
    329         else
    330             if (QString(info.release).startsWith("12."))
    331                 return MacOSXRelease_MountainLion;
    332         else
    333             if (QString(info.release).startsWith("11."))
    334                 return MacOSXRelease_Lion;
    335         else
    336             if (QString(info.release).startsWith("10."))
    337                 return MacOSXRelease_SnowLeopard;
    338     }
    339     /* Unknown by default: */
    340     return MacOSXRelease_Unknown;
     323        /* Compose map of known releases: */
     324        QMap<int, MacOSXRelease> release;
     325        release[10] = MacOSXRelease_SnowLeopard;
     326        release[11] = MacOSXRelease_Lion;
     327        release[12] = MacOSXRelease_MountainLion;
     328        release[13] = MacOSXRelease_Mavericks;
     329        release[14] = MacOSXRelease_Yosemite;
     330
     331        /* Cut the major release index of the string we have, s.a. 'man uname': */
     332        const int iRelease = QString(info.release).section('.', 0, 0).toInt();
     333
     334        /* Return release if determined, return 'Old' if version less than 'New', return 'New' otherwise: */
     335        return release.value(iRelease, iRelease < MacOSXRelease_New ? MacOSXRelease_Old : MacOSXRelease_New);
     336    }
     337    /* Return 'Old' by default: */
     338    return MacOSXRelease_Old;
    341339}
    342340#endif /* Q_WS_MAC */
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h

    r57883 r57951  
    120120
    121121#ifdef Q_WS_MAC
     122    /** Returns #MacOSXRelease determined using <i>uname</i> call. */
    122123    static MacOSXRelease osRelease();
    123124#endif /* Q_WS_MAC */
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