VirtualBox

Ignore:
Timestamp:
Jun 20, 2018 1:57:27 PM (7 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9049: Huge overhaul for VBoxGlobal class: Full code refactoring according to coding-style and latest achievements.

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

Legend:

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

    r72626 r72628  
    185185
    186186    /** Constructs translator passing @a pParent to the base-class. */
    187     VBoxTranslator (QObject *pParent = 0)
    188         : QTranslator (pParent) {}
     187    VBoxTranslator(QObject *pParent = 0)
     188        : QTranslator(pParent)
     189    {}
    189190
    190191    /** Loads language file with gained @a strFileName. */
    191     bool loadFile (const QString &strFileName)
    192     {
    193         QFile file (strFileName);
    194         if (!file.open (QIODevice::ReadOnly))
     192    bool loadFile(const QString &strFileName)
     193    {
     194        QFile file(strFileName);
     195        if (!file.open(QIODevice::ReadOnly))
    195196            return false;
    196197        m_data = file.readAll();
    197         return load ((uchar*)m_data.data(), m_data.size());
     198        return load((uchar*)m_data.data(), m_data.size());
    198199    }
    199200
     
    242243bool        VBoxGlobal::s_fCleaningUp = false;
    243244QString     VBoxGlobal::s_strLoadedLanguageId = vboxBuiltInLanguageName();
     245QString     VBoxGlobal::s_strUserDefinedPortName = QString();
    244246
    245247/* static */
     
    346348QString VBoxGlobal::qtRTVersionString()
    347349{
    348     return QString::fromLatin1 (qVersion());
     350    return QString::fromLatin1(qVersion());
    349351}
    350352
     
    352354uint VBoxGlobal::qtRTVersion()
    353355{
    354     QString strVersionRT = VBoxGlobal::qtRTVersionString();
    355     return (strVersionRT.section ('.', 0, 0).toInt() << 16) +
    356            (strVersionRT.section ('.', 1, 1).toInt() << 8) +
    357            strVersionRT.section ('.', 2, 2).toInt();
     356    const QString strVersionRT = VBoxGlobal::qtRTVersionString();
     357    return (strVersionRT.section('.', 0, 0).toInt() << 16) +
     358           (strVersionRT.section('.', 1, 1).toInt() << 8) +
     359           strVersionRT.section('.', 2, 2).toInt();
    358360}
    359361
     
    361363QString VBoxGlobal::qtCTVersionString()
    362364{
    363     return QString::fromLatin1 (QT_VERSION_STR);
     365    return QString::fromLatin1(QT_VERSION_STR);
    364366}
    365367
     
    367369uint VBoxGlobal::qtCTVersion()
    368370{
    369     QString strVersionCompiled = VBoxGlobal::qtCTVersionString();
     371    const QString strVersionCompiled = VBoxGlobal::qtCTVersionString();
    370372    return (strVersionCompiled.section('.', 0, 0).toInt() << 16) +
    371373           (strVersionCompiled.section('.', 1, 1).toInt() << 8) +
     
    416418#endif /* VBOX_WS_MAC */
    417419
    418 bool VBoxGlobal::brandingIsActive (bool fForce /* = false */)
     420bool VBoxGlobal::brandingIsActive(bool fForce /* = false */)
    419421{
    420422    if (fForce)
     
    426428        m_strBrandingConfigFilePath += "/custom/custom.ini";
    427429    }
    428     return QFile::exists (m_strBrandingConfigFilePath);
    429 }
    430 
    431 QString VBoxGlobal::brandingGetKey (QString strKey)
     430
     431    return QFile::exists(m_strBrandingConfigFilePath);
     432}
     433
     434QString VBoxGlobal::brandingGetKey(QString strKey)
    432435{
    433436    QSettings settings(m_strBrandingConfigFilePath, QSettings::IniFormat);
     
    448451    /* Among those arguments: */
    449452    bool fResult = false;
    450     QStringList args = qApp->arguments();
     453    const QStringList args = qApp->arguments();
     454
    451455    /* We are looking for a list of file URLs passed to the executable: */
    452456    QList<QUrl> listArgUrls;
     
    457461        if (args.at(i).startsWith("-"))
    458462            break;
     463
    459464#ifdef VBOX_WS_MAC
    460         QString strArg = ::darwinResolveAlias(args.at(i));
    461 #else /* VBOX_WS_MAC */
    462         QString strArg = args.at(i);
    463 #endif /* !VBOX_WS_MAC */
     465        const QString strArg = ::darwinResolveAlias(args.at(i));
     466#else
     467        const QString strArg = args.at(i);
     468#endif
     469
    464470        /* So if the argument file exists, we add it to URL list: */
    465471        if (   !strArg.isEmpty()
     
    467473            listArgUrls << QUrl::fromLocalFile(strArg);
    468474    }
     475
    469476    /* If there are file URLs: */
    470477    if (!listArgUrls.isEmpty())
     
    474481        {
    475482            /* Check which of them has allowed VM extensions: */
    476             const QString& strFile = listArgUrls.at(i).toLocalFile();
     483            const QString &strFile = listArgUrls.at(i).toLocalFile();
    477484            if (VBoxGlobal::hasAllowedExtension(strFile, VBoxFileExts))
    478485            {
     
    490497        }
    491498    }
     499
    492500    /* And if there are *still* URLs: */
    493501    if (!listArgUrls.isEmpty())
     
    498506        emit sigAskToOpenURLs();
    499507    }
     508
    500509    return fResult;
    501510}
     
    540549    if (!m_strPidFile.isEmpty())
    541550    {
    542         qint64 iPid = qApp->applicationPid();
     551        const qint64 iPid = qApp->applicationPid();
    543552        QFile file(m_strPidFile);
    544553        if (file.open(QIODevice::WriteOnly | QIODevice::Truncate))
     
    561570#endif /* VBOX_GUI_WITH_PIDFILE */
    562571
    563 QString VBoxGlobal::languageName() const
     572/* static */
     573QString VBoxGlobal::languageName()
    564574{
    565575    /* Returns "English" if no translation is installed
    566576     * or if the translation file is invalid. */
    567     return qApp->translate ("@@@", "English",
    568                             "Native language name");
    569 }
    570 
    571 QString VBoxGlobal::languageCountry() const
     577    return QApplication::translate("@@@", "English",
     578                                   "Native language name");
     579}
     580
     581/* static */
     582QString VBoxGlobal::languageCountry()
    572583{
    573584    /* Returns "--" if no translation is installed or if the translation file
    574585     * is invalid, or if the language is independent on the country. */
    575     return qApp->translate ("@@@", "--",
    576                             "Native language country name "
    577                             "(empty if this language is for all countries)");
    578 }
    579 
    580 QString VBoxGlobal::languageNameEnglish() const
     586    return QApplication::translate("@@@", "--",
     587                                   "Native language country name "
     588                                   "(empty if this language is for all countries)");
     589}
     590
     591/* static */
     592QString VBoxGlobal::languageNameEnglish()
    581593{
    582594    /* Returns "English" if no translation is installed
    583595     * or if the translation file is invalid. */
    584     return qApp->translate ("@@@", "English",
    585                             "Language name, in English");
    586 }
    587 
    588 QString VBoxGlobal::languageCountryEnglish() const
     596    return QApplication::translate("@@@", "English",
     597                                   "Language name, in English");
     598}
     599
     600/* static */
     601QString VBoxGlobal::languageCountryEnglish()
    589602{
    590603    /* Returns "--" if no translation is installed or if the translation file
    591604     * is invalid, or if the language is independent on the country. */
    592     return qApp->translate ("@@@", "--",
    593                             "Language country name, in English "
    594                             "(empty if native country name is empty)");
    595 }
    596 
    597 QString VBoxGlobal::languageTranslators() const
     605    return QApplication::translate("@@@", "--",
     606                                   "Language country name, in English "
     607                                   "(empty if native country name is empty)");
     608}
     609
     610/* static */
     611QString VBoxGlobal::languageTranslators()
    598612{
    599613    /* Returns "Oracle Corporation" if no translation is installed or if the translation file
    600614     * is invalid, or if the translation is supplied by Oracle Corporation. */
    601     return qApp->translate ("@@@", "Oracle Corporation",
    602                             "Comma-separated list of translators");
     615    return QApplication::translate("@@@", "Oracle Corporation",
     616                                   "Comma-separated list of translators");
    603617}
    604618
     
    660674     * This method will return "C" when the requested locale is invalid or when the "C" locale is set explicitly. */
    661675
    662 #if defined (VBOX_WS_MAC)
     676#if defined(VBOX_WS_MAC)
    663677    /* QLocale return the right id only if the user select the format
    664678     * of the language also. So we use our own implementation */
    665679    return ::darwinSystemLanguage();
    666 #elif defined (Q_OS_UNIX)
    667     const char *pszValue = RTEnvGet ("LC_ALL");
     680#elif defined(Q_OS_UNIX)
     681    const char *pszValue = RTEnvGet("LC_ALL");
    668682    if (pszValue == 0)
    669         pszValue = RTEnvGet ("LC_MESSAGES");
     683        pszValue = RTEnvGet("LC_MESSAGES");
    670684    if (pszValue == 0)
    671         pszValue = RTEnvGet ("LANG");
     685        pszValue = RTEnvGet("LANG");
    672686    if (pszValue != 0)
    673         return QLocale (pszValue).name();
     687        return QLocale(pszValue).name();
    674688#endif
    675     return  QLocale::system().name();
    676 }
    677 
    678 /* static */
    679 void VBoxGlobal::loadLanguage (const QString &strLangId)
    680 {
    681     QString strEffectiveLangId = strLangId.isEmpty() ?
    682         VBoxGlobal::systemLanguageId() : strLangId;
     689    return QLocale::system().name();
     690}
     691
     692/* static */
     693void VBoxGlobal::loadLanguage(const QString &strLangId)
     694{
     695    QString strEffectiveLangId = strLangId.isEmpty()
     696                               ? VBoxGlobal::systemLanguageId()
     697                               : strLangId;
    683698    QString strLanguageFileName;
    684699    QString strSelectedLangId = vboxBuiltInLanguageName();
     
    698713
    699714    rc = RTPathAppPrivateNoArch(szNlsPath, sizeof(szNlsPath));
    700     AssertRC (rc);
     715    AssertRC(rc);
    701716
    702717    QString strNlsPath = QString(szNlsPath) + vboxLanguageSubDirectory();
    703     QDir nlsDir (strNlsPath);
    704 
    705     Assert (!strEffectiveLangId.isEmpty());
     718    QDir nlsDir(strNlsPath);
     719
     720    Assert(!strEffectiveLangId.isEmpty());
    706721    if (!strEffectiveLangId.isEmpty() && strEffectiveLangId != vboxBuiltInLanguageName())
    707722    {
    708         QRegExp regExp (vboxLanguageIdRegExp());
    709         int iPos = regExp.indexIn (strEffectiveLangId);
    710         /* the language ID should match the regexp completely */
    711         AssertReturnVoid (iPos == 0);
    712 
    713         QString strStrippedLangId = regExp.cap (2);
    714 
    715         if (nlsDir.exists (vboxLanguageFileBase() + strEffectiveLangId + vboxLanguageFileExtension()))
    716         {
    717             strLanguageFileName = nlsDir.absoluteFilePath (vboxLanguageFileBase() + strEffectiveLangId +
    718                                                            vboxLanguageFileExtension());
     723        QRegExp regExp(vboxLanguageIdRegExp());
     724        int iPos = regExp.indexIn(strEffectiveLangId);
     725        /* The language ID should match the regexp completely: */
     726        AssertReturnVoid(iPos == 0);
     727
     728        QString strStrippedLangId = regExp.cap(2);
     729
     730        if (nlsDir.exists(vboxLanguageFileBase() + strEffectiveLangId + vboxLanguageFileExtension()))
     731        {
     732            strLanguageFileName = nlsDir.absoluteFilePath(vboxLanguageFileBase() +
     733                                                          strEffectiveLangId +
     734                                                          vboxLanguageFileExtension());
    719735            strSelectedLangId = strEffectiveLangId;
    720736        }
    721         else if (nlsDir.exists (vboxLanguageFileBase() + strStrippedLangId + vboxLanguageFileExtension()))
    722         {
    723             strLanguageFileName = nlsDir.absoluteFilePath (vboxLanguageFileBase() + strStrippedLangId +
    724                                                            vboxLanguageFileExtension());
     737        else if (nlsDir.exists(vboxLanguageFileBase() + strStrippedLangId + vboxLanguageFileExtension()))
     738        {
     739            strLanguageFileName = nlsDir.absoluteFilePath(vboxLanguageFileBase() +
     740                                                          strStrippedLangId +
     741                                                          vboxLanguageFileExtension());
    725742            strSelectedLangId = strStrippedLangId;
    726743        }
     
    731748             * fall-back to English (built-in). */
    732749            if (!strLangId.isNull() && strEffectiveLangId != "en")
    733                 msgCenter().cannotFindLanguage (strEffectiveLangId, strNlsPath);
     750                msgCenter().cannotFindLanguage(strEffectiveLangId, strNlsPath);
    734751            /* strSelectedLangId remains built-in here: */
    735             AssertReturnVoid (strSelectedLangId == vboxBuiltInLanguageName());
     752            AssertReturnVoid(strSelectedLangId == vboxBuiltInLanguageName());
    736753        }
    737754    }
     
    747764
    748765    /* Load new language files: */
    749     sTranslator = new VBoxTranslator (qApp);
    750     Assert (sTranslator);
     766    sTranslator = new VBoxTranslator(qApp);
     767    Assert(sTranslator);
    751768    bool fLoadOk = true;
    752769    if (sTranslator)
     
    754771        if (strSelectedLangId != vboxBuiltInLanguageName())
    755772        {
    756             Assert (!strLanguageFileName.isNull());
    757             fLoadOk = sTranslator->loadFile (strLanguageFileName);
     773            Assert(!strLanguageFileName.isNull());
     774            fLoadOk = sTranslator->loadFile(strLanguageFileName);
    758775        }
    759776        /* We install the translator in any case: on failure, this will
    760777         * activate an empty translator that will give us English (built-in): */
    761         qApp->installTranslator (sTranslator);
     778        qApp->installTranslator(sTranslator);
    762779    }
    763780    else
     
    768785    else
    769786    {
    770         msgCenter().cannotLoadLanguage (strLanguageFileName);
     787        msgCenter().cannotLoadLanguage(strLanguageFileName);
    771788        s_strLoadedLanguageId = vboxBuiltInLanguageName();
    772789    }
     
    780797        strLanguageFileName = QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" +
    781798                              languageId() + vboxLanguageFileExtension();
    782         QTranslator *pQtSysTr = new QTranslator (sTranslator);
    783         Assert (pQtSysTr);
    784         if (pQtSysTr && pQtSysTr->load (strLanguageFileName))
    785             qApp->installTranslator (pQtSysTr);
     799        QTranslator *pQtSysTr = new QTranslator(sTranslator);
     800        Assert(pQtSysTr);
     801        if (pQtSysTr && pQtSysTr->load(strLanguageFileName))
     802            qApp->installTranslator(pQtSysTr);
    786803        /* Note that the Qt translation supplied by Oracle is always loaded
    787804         * afterwards to make sure it will take precedence over the system
     
    793810         * Oracle translation is always the best one. */
    794811#endif
    795         strLanguageFileName =  nlsDir.absoluteFilePath (QString ("qt_") +
    796                                                         languageId() +
    797                                                         vboxLanguageFileExtension());
    798         QTranslator *pQtTr = new QTranslator (sTranslator);
    799         Assert (pQtTr);
    800         if (pQtTr && (fLoadOk = pQtTr->load (strLanguageFileName)))
    801             qApp->installTranslator (pQtTr);
     812        strLanguageFileName = nlsDir.absoluteFilePath(QString("qt_") +
     813                                                      languageId() +
     814                                                      vboxLanguageFileExtension());
     815        QTranslator *pQtTr = new QTranslator(sTranslator);
     816        Assert(pQtTr);
     817        if (pQtTr && (fLoadOk = pQtTr->load(strLanguageFileName)))
     818            qApp->installTranslator(pQtTr);
    802819        /* The below message doesn't fit 100% (because it's an additional
    803820         * language and the main one won't be reset to built-in on failure)
     
    805822         * message (but still, having something is better than having none) */
    806823        if (!fLoadOk && !strLangId.isNull())
    807             msgCenter().cannotLoadLanguage (strLanguageFileName);
     824            msgCenter().cannotLoadLanguage(strLanguageFileName);
    808825    }
    809826    if (fResetToC)
     
    813830     * Manually trigger an update. */
    814831    ::darwinRetranslateAppMenu();
    815 #endif /* VBOX_WS_MAC */
     832#endif
    816833}
    817834
     
    870887     *           B cannot appear there). */
    871888
    872     QString strRegexp =
    873         QString ("^(?:(?:(\\d+)(?:\\s?(%2|%3|%4|%5|%6|%7))?)|(?:(\\d*)%1(\\d{1,2})(?:\\s?(%3|%4|%5|%6|%7))))$")
    874             .arg (decimalSep())
    875             .arg (tr ("B", "size suffix Bytes"))
    876             .arg (tr ("KB", "size suffix KBytes=1024 Bytes"))
    877             .arg (tr ("MB", "size suffix MBytes=1024 KBytes"))
    878             .arg (tr ("GB", "size suffix GBytes=1024 MBytes"))
    879             .arg (tr ("TB", "size suffix TBytes=1024 GBytes"))
    880             .arg (tr ("PB", "size suffix PBytes=1024 TBytes"));
     889    const QString strRegexp =
     890        QString("^(?:(?:(\\d+)(?:\\s?(%2|%3|%4|%5|%6|%7))?)|(?:(\\d*)%1(\\d{1,2})(?:\\s?(%3|%4|%5|%6|%7))))$")
     891            .arg(decimalSep())
     892            .arg(tr("B", "size suffix Bytes"))
     893            .arg(tr("KB", "size suffix KBytes=1024 Bytes"))
     894            .arg(tr("MB", "size suffix MBytes=1024 KBytes"))
     895            .arg(tr("GB", "size suffix GBytes=1024 MBytes"))
     896            .arg(tr("TB", "size suffix TBytes=1024 GBytes"))
     897            .arg(tr("PB", "size suffix PBytes=1024 TBytes"));
    881898    return strRegexp;
    882899}
    883900
    884901/* static */
    885 quint64 VBoxGlobal::parseSize (const QString &strText)
     902quint64 VBoxGlobal::parseSize(const QString &strText)
    886903{
    887904    /* Text should be in form of B|KB|MB|GB|TB|PB. */
    888     QRegExp regexp (sizeRegexp());
    889     int iPos = regexp.indexIn (strText);
     905    QRegExp regexp(sizeRegexp());
     906    int iPos = regexp.indexIn(strText);
    890907    if (iPos != -1)
    891908    {
    892         QString strInteger = regexp.cap (1);
     909        QString strInteger = regexp.cap(1);
    893910        QString strHundred;
    894         QString strSuff = regexp.cap (2);
     911        QString strSuff = regexp.cap(2);
    895912        if (strInteger.isEmpty())
    896913        {
    897             strInteger = regexp.cap (3);
    898             strHundred = regexp.cap (4);
    899             strSuff = regexp.cap (5);
     914            strInteger = regexp.cap(3);
     915            strHundred = regexp.cap(4);
     916            strSuff = regexp.cap(5);
    900917        }
    901918
    902919        quint64 uDenominator = 0;
    903         if (strSuff.isEmpty() || strSuff == tr ("B", "size suffix Bytes"))
     920        if (strSuff.isEmpty() || strSuff == tr("B", "size suffix Bytes"))
    904921            uDenominator = 1;
    905         else if (strSuff == tr ("KB", "size suffix KBytes=1024 Bytes"))
     922        else if (strSuff == tr("KB", "size suffix KBytes=1024 Bytes"))
    906923            uDenominator = _1K;
    907         else if (strSuff == tr ("MB", "size suffix MBytes=1024 KBytes"))
     924        else if (strSuff == tr("MB", "size suffix MBytes=1024 KBytes"))
    908925            uDenominator = _1M;
    909         else if (strSuff == tr ("GB", "size suffix GBytes=1024 MBytes"))
     926        else if (strSuff == tr("GB", "size suffix GBytes=1024 MBytes"))
    910927            uDenominator = _1G;
    911         else if (strSuff == tr ("TB", "size suffix TBytes=1024 GBytes"))
     928        else if (strSuff == tr("TB", "size suffix TBytes=1024 GBytes"))
    912929            uDenominator = _1T;
    913         else if (strSuff == tr ("PB", "size suffix PBytes=1024 TBytes"))
     930        else if (strSuff == tr("PB", "size suffix PBytes=1024 TBytes"))
    914931            uDenominator = _1P;
    915932
     
    918935            return iInteger;
    919936
    920         quint64 iHundred = strHundred.leftJustified (2, '0').toULongLong();
     937        quint64 iHundred = strHundred.leftJustified(2, '0').toULongLong();
    921938        iHundred = iHundred * uDenominator / 100;
    922939        iInteger = iInteger * uDenominator + iHundred;
     
    928945
    929946/* static */
    930 QString VBoxGlobal::formatSize (quint64 uSize, uint cDecimal /* = 2 */,
    931                                 FormatSize enmMode /* = FormatSize_Round */)
     947QString VBoxGlobal::formatSize(quint64 uSize, uint cDecimal /* = 2 */,
     948                               FormatSize enmMode /* = FormatSize_Round */)
    932949{
    933950    /* Text will be in form of B|KB|MB|GB|TB|PB.
     
    9831000    quint64 uDecimal = uSize % uDenominator;
    9841001    quint64 uMult = 1;
    985     for (uint i = 0; i < cDecimal; ++ i) uMult *= 10;
     1002    for (uint i = 0; i < cDecimal; ++i)
     1003        uMult *= 10;
    9861004
    9871005    QString strNumber;
     
    9911009        {
    9921010            uDecimal *= uMult;
    993             /* not greater */
     1011            /* Not greater: */
    9941012            if (enmMode == FormatSize_RoundDown)
    9951013                uDecimal = uDecimal / uDenominator;
    996             /* not less */
     1014            /* Not less: */
    9971015            else if (enmMode == FormatSize_RoundUp)
    9981016                uDecimal = (uDecimal + uDenominator - 1) / uDenominator;
    999             /* nearest */
    1000             else uDecimal = (uDecimal + uDenominator / 2) / uDenominator;
     1017            /* Nearest: */
     1018            else
     1019                uDecimal = (uDecimal + uDenominator / 2) / uDenominator;
    10011020        }
    10021021        /* Check for the fractional part overflow due to rounding: */
     
    10041023        {
    10051024            uDecimal = 0;
    1006             ++ uInteger;
     1025            ++uInteger;
    10071026            /* Check if we've got 1024 XB after rounding and scale down if so: */
    10081027            if (uInteger == 1024 && iSuffix + 1 < (int)SizeSuffix_Max)
    10091028            {
    10101029                uInteger /= 1024;
    1011                 ++ iSuffix;
     1030                ++iSuffix;
    10121031            }
    10131032        }
    1014         strNumber = QString::number (uInteger);
    1015         if (cDecimal) strNumber += QString ("%1%2").arg (decimalSep())
    1016             .arg (QString::number (uDecimal).rightJustified (cDecimal, '0'));
     1033        strNumber = QString::number(uInteger);
     1034        if (cDecimal)
     1035            strNumber += QString("%1%2").arg(decimalSep())
     1036                                        .arg(QString::number(uDecimal).rightJustified(cDecimal, '0'));
    10171037    }
    10181038    else
    10191039    {
    1020         strNumber = QString::number (uInteger);
    1021     }
    1022 
    1023     return QString ("%1 %2").arg (strNumber).arg (gpConverter->toString(static_cast<SizeSuffix>(iSuffix)));
     1040        strNumber = QString::number(uInteger);
     1041    }
     1042
     1043    return QString("%1 %2").arg(strNumber).arg(gpConverter->toString(static_cast<SizeSuffix>(iSuffix)));
    10241044}
    10251045
     
    10421062}
    10431063
    1044 QStringList VBoxGlobal::COMPortNames() const
     1064/* static */
     1065QStringList VBoxGlobal::COMPortNames()
    10451066{
    10461067    QStringList list;
    1047     for (size_t i = 0; i < RT_ELEMENTS (kComKnownPorts); ++ i)
    1048         list << kComKnownPorts [i].name;
     1068    for (size_t i = 0; i < RT_ELEMENTS(kComKnownPorts); ++i)
     1069        list << kComKnownPorts[i].name;
    10491070
    10501071    return list;
    10511072}
    10521073
    1053 QString VBoxGlobal::toCOMPortName (ulong uIRQ, ulong uIOBase) const
    1054 {
    1055     for (size_t i = 0; i < RT_ELEMENTS (kComKnownPorts); ++ i)
    1056         if (kComKnownPorts [i].IRQ == uIRQ &&
    1057             kComKnownPorts [i].IOBase == uIOBase)
    1058             return kComKnownPorts [i].name;
    1059 
    1060     return m_strUserDefinedPortName;
    1061 }
    1062 
    1063 bool VBoxGlobal::toCOMPortNumbers (const QString &strName, ulong &uIRQ,
    1064                                    ulong &uIOBase) const
    1065 {
    1066     for (size_t i = 0; i < RT_ELEMENTS (kComKnownPorts); ++ i)
    1067         if (strcmp (kComKnownPorts [i].name, strName.toUtf8().data()) == 0)
    1068         {
    1069             uIRQ = kComKnownPorts [i].IRQ;
    1070             uIOBase = kComKnownPorts [i].IOBase;
     1074/* static */
     1075QString VBoxGlobal::toCOMPortName(ulong uIRQ, ulong uIOBase)
     1076{
     1077    for (size_t i = 0; i < RT_ELEMENTS(kComKnownPorts); ++i)
     1078        if (kComKnownPorts[i].IRQ == uIRQ &&
     1079            kComKnownPorts[i].IOBase == uIOBase)
     1080            return kComKnownPorts[i].name;
     1081
     1082    return s_strUserDefinedPortName;
     1083}
     1084
     1085/* static */
     1086bool VBoxGlobal::toCOMPortNumbers(const QString &strName, ulong &uIRQ, ulong &uIOBase)
     1087{
     1088    for (size_t i = 0; i < RT_ELEMENTS(kComKnownPorts); ++i)
     1089        if (strcmp(kComKnownPorts[i].name, strName.toUtf8().data()) == 0)
     1090        {
     1091            uIRQ = kComKnownPorts[i].IRQ;
     1092            uIOBase = kComKnownPorts[i].IOBase;
    10711093            return true;
    10721094        }
     
    10751097}
    10761098
    1077 QStringList VBoxGlobal::LPTPortNames() const
     1099/* static */
     1100QStringList VBoxGlobal::LPTPortNames()
    10781101{
    10791102    QStringList list;
    1080     for (size_t i = 0; i < RT_ELEMENTS (kLptKnownPorts); ++ i)
    1081         list << kLptKnownPorts [i].name;
     1103    for (size_t i = 0; i < RT_ELEMENTS(kLptKnownPorts); ++i)
     1104        list << kLptKnownPorts[i].name;
    10821105
    10831106    return list;
    10841107}
    10851108
    1086 QString VBoxGlobal::toLPTPortName (ulong uIRQ, ulong uIOBase) const
    1087 {
    1088     for (size_t i = 0; i < RT_ELEMENTS (kLptKnownPorts); ++ i)
    1089         if (kLptKnownPorts [i].IRQ == uIRQ &&
    1090             kLptKnownPorts [i].IOBase == uIOBase)
    1091             return kLptKnownPorts [i].name;
    1092 
    1093     return m_strUserDefinedPortName;
    1094 }
    1095 
    1096 bool VBoxGlobal::toLPTPortNumbers (const QString &strName, ulong &uIRQ,
    1097                                    ulong &uIOBase) const
    1098 {
    1099     for (size_t i = 0; i < RT_ELEMENTS (kLptKnownPorts); ++ i)
    1100         if (strcmp (kLptKnownPorts [i].name, strName.toUtf8().data()) == 0)
    1101         {
    1102             uIRQ = kLptKnownPorts [i].IRQ;
    1103             uIOBase = kLptKnownPorts [i].IOBase;
     1109/* static */
     1110QString VBoxGlobal::toLPTPortName(ulong uIRQ, ulong uIOBase)
     1111{
     1112    for (size_t i = 0; i < RT_ELEMENTS(kLptKnownPorts); ++i)
     1113        if (kLptKnownPorts[i].IRQ == uIRQ &&
     1114            kLptKnownPorts[i].IOBase == uIOBase)
     1115            return kLptKnownPorts[i].name;
     1116
     1117    return s_strUserDefinedPortName;
     1118}
     1119
     1120/* static */
     1121bool VBoxGlobal::toLPTPortNumbers(const QString &strName, ulong &uIRQ, ulong &uIOBase)
     1122{
     1123    for (size_t i = 0; i < RT_ELEMENTS(kLptKnownPorts); ++i)
     1124        if (strcmp(kLptKnownPorts[i].name, strName.toUtf8().data()) == 0)
     1125        {
     1126            uIRQ = kLptKnownPorts[i].IRQ;
     1127            uIOBase = kLptKnownPorts[i].IOBase;
    11041128            return true;
    11051129        }
     
    11091133
    11101134/* static */
    1111 QString VBoxGlobal::highlight (const QString &strTextArg, bool fToolTip /* = false */)
     1135QString VBoxGlobal::highlight(QString strText, bool fToolTip /* = false */)
    11121136{
    11131137    /* We should reformat the input strText so that:
     
    11341158    }
    11351159
    1136     QString strText = strTextArg;
    1137 
    11381160    /* Replace special entities, '&' -- first! */
    1139     strText.replace ('&', "&amp;");
    1140     strText.replace ('<', "&lt;");
    1141     strText.replace ('>', "&gt;");
    1142     strText.replace ('\"', "&quot;");
     1161    strText.replace('&', "&amp;");
     1162    strText.replace('<', "&lt;");
     1163    strText.replace('>', "&gt;");
     1164    strText.replace('\"', "&quot;");
    11431165
    11441166    /* Mark strings in single quotes with color: */
    1145     QRegExp rx = QRegExp ("((?:^|\\s)[(]?)'([^']*)'(?=[:.-!);]?(?:\\s|$))");
    1146     rx.setMinimal (true);
    1147     strText.replace (rx,
    1148         QString ("\\1%1<nobr>'\\2'</nobr>%2").arg (strFont).arg (endFont));
     1167    QRegExp rx = QRegExp("((?:^|\\s)[(]?)'([^']*)'(?=[:.-!);]?(?:\\s|$))");
     1168    rx.setMinimal(true);
     1169    strText.replace(rx, QString("\\1%1<nobr>'\\2'</nobr>%2").arg(strFont).arg(endFont));
    11491170
    11501171    /* Mark UUIDs with color: */
    1151     strText.replace (QRegExp (
     1172    strText.replace(QRegExp(
    11521173        "((?:^|\\s)[(]?)"
    11531174        "(\\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\})"
    11541175        "(?=[:.-!);]?(?:\\s|$))"),
    1155         QString ("\\1%1<nobr>\\2</nobr>%2").arg (uuidFont).arg (endFont));
     1176        QString("\\1%1<nobr>\\2</nobr>%2").arg(uuidFont).arg(endFont));
    11561177
    11571178    /* Split to paragraphs at \n chars: */
    11581179    if (!fToolTip)
    1159         strText.replace ('\n', "</p><p>");
     1180        strText.replace('\n', "</p><p>");
    11601181    else
    1161         strText.replace ('\n', "<br>");
     1182        strText.replace('\n', "<br>");
    11621183
    11631184    return strText;
     
    11651186
    11661187/* static */
    1167 QString VBoxGlobal::emphasize (const QString &strTextArg)
     1188QString VBoxGlobal::emphasize(QString strText)
    11681189{
    11691190    /* We should reformat the input string @a strText so that:
     
    11771198     *    or prepended to the existing paragraph). */
    11781199
    1179     QString strEmphStart ("<b>");
    1180     QString strEmphEnd ("</b>");
    1181     QString uuidEmphStart ("<i>");
    1182     QString uuidEmphEnd ("</i>");
    1183 
    1184     QString strText = strTextArg;
     1200    QString strEmphStart("<b>");
     1201    QString strEmphEnd("</b>");
     1202    QString uuidEmphStart("<i>");
     1203    QString uuidEmphEnd("</i>");
    11851204
    11861205    /* Replace special entities, '&' -- first! */
    1187     strText.replace ('&', "&amp;");
    1188     strText.replace ('<', "&lt;");
    1189     strText.replace ('>', "&gt;");
    1190     strText.replace ('\"', "&quot;");
     1206    strText.replace('&', "&amp;");
     1207    strText.replace('<', "&lt;");
     1208    strText.replace('>', "&gt;");
     1209    strText.replace('\"', "&quot;");
    11911210
    11921211    /* Mark strings in single quotes with bold style: */
    1193     QRegExp rx = QRegExp ("((?:^|\\s)[(]?)'([^']*)'(?=[:.-!);]?(?:\\s|$))");
    1194     rx.setMinimal (true);
    1195     strText.replace(rx,
    1196         QString ("\\1%1<nobr>'\\2'</nobr>%2").arg (strEmphStart).arg (strEmphEnd));
     1212    QRegExp rx = QRegExp("((?:^|\\s)[(]?)'([^']*)'(?=[:.-!);]?(?:\\s|$))");
     1213    rx.setMinimal(true);
     1214    strText.replace(rx, QString("\\1%1<nobr>'\\2'</nobr>%2").arg(strEmphStart).arg(strEmphEnd));
    11971215
    11981216    /* Mark UUIDs with italic style: */
    1199     strText.replace (QRegExp (
     1217    strText.replace(QRegExp(
    12001218        "((?:^|\\s)[(]?)"
    12011219        "(\\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\\})"
    12021220        "(?=[:.-!);]?(?:\\s|$))"),
    1203         QString ("\\1%1<nobr>\\2</nobr>%2").arg (uuidEmphStart).arg (uuidEmphEnd));
     1221        QString("\\1%1<nobr>\\2</nobr>%2").arg(uuidEmphStart).arg(uuidEmphEnd));
    12041222
    12051223    /* Split to paragraphs at \n chars: */
    1206     strText.replace ('\n', "</p><p>");
     1224    strText.replace('\n', "</p><p>");
    12071225
    12081226    return strText;
     
    12101228
    12111229/* static */
    1212 QString VBoxGlobal::removeAccelMark (const QString &strTextArg)
     1230QString VBoxGlobal::removeAccelMark(QString strText)
    12131231{
    12141232    /* In order to support accelerators used in non-alphabet languages
     
    12181236     * removed from the string. */
    12191237
    1220     QString strText = strTextArg;
    1221 
    1222     QRegExp accel ("\\(&[a-zA-Z]\\)");
    1223     int iPos = accel.indexIn (strText);
     1238    QRegExp accel("\\(&[a-zA-Z]\\)");
     1239    int iPos = accel.indexIn(strText);
    12241240    if (iPos >= 0)
    1225         strText.remove (iPos, accel.cap().length());
     1241        strText.remove(iPos, accel.cap().length());
    12261242    else
    12271243    {
    1228         iPos = strText.indexOf ('&');
     1244        iPos = strText.indexOf('&');
    12291245        if (iPos >= 0)
    1230             strText.remove (iPos, 1);
     1246            strText.remove(iPos, 1);
    12311247    }
    12321248
     
    12491265}
    12501266
    1251 QString VBoxGlobal::helpFile() const
    1252 {
    1253 #if defined (VBOX_WS_WIN)
     1267/* static */
     1268QString VBoxGlobal::helpFile()
     1269{
     1270#if defined(VBOX_WS_WIN)
    12541271    const QString strName = "VirtualBox";
    12551272    const QString strSuffix = "chm";
    1256 #elif defined (VBOX_WS_MAC)
     1273#elif defined(VBOX_WS_MAC)
    12571274    const QString strName = "UserManual";
    12581275    const QString strSuffix = "pdf";
    1259 #elif defined (VBOX_WS_X11)
     1276#elif defined(VBOX_WS_X11)
    12601277# if defined VBOX_OSE
    12611278    const QString strName = "UserManual";
     
    12661283# endif
    12671284#endif
     1285
    12681286    /* Where are the docs located? */
    12691287    char szDocsPath[RTPATH_MAX];
    1270     int rc = RTPathAppDocs (szDocsPath, sizeof (szDocsPath));
    1271     AssertRC (rc);
     1288    int rc = RTPathAppDocs(szDocsPath, sizeof(szDocsPath));
     1289    AssertRC(rc);
     1290
    12721291    /* Make sure that the language is in two letter code.
    12731292     * Note: if languageId() returns an empty string lang.name() will
    12741293     * return "C" which is an valid language code. */
    1275     QLocale lang (VBoxGlobal::languageId());
     1294    QLocale lang(VBoxGlobal::languageId());
    12761295
    12771296    /* Construct the path and the filename: */
    1278     QString strManual = QString ("%1/%2_%3.%4").arg (szDocsPath)
    1279                                                .arg (strName)
    1280                                                .arg (lang.name())
    1281                                                .arg (strSuffix);
     1297    QString strManual = QString("%1/%2_%3.%4").arg(szDocsPath)
     1298                                              .arg(strName)
     1299                                              .arg(lang.name())
     1300                                              .arg(strSuffix);
     1301
    12821302    /* Check if a help file with that name exists: */
    1283     QFileInfo fi (strManual);
     1303    QFileInfo fi(strManual);
    12841304    if (fi.exists())
    12851305        return strManual;
    12861306
    12871307    /* Fall back to the standard: */
    1288     strManual = QString ("%1/%2.%4").arg (szDocsPath)
    1289                                     .arg (strName)
    1290                                     .arg (strSuffix);
     1308    strManual = QString("%1/%2.%4").arg(szDocsPath)
     1309                                   .arg(strName)
     1310                                   .arg(strSuffix);
    12911311    return strManual;
    12921312}
     
    13101330
    13111331/* static */
    1312 QRect VBoxGlobal::normalizeGeometry (const QRect &rectangle, const QRegion &boundRegion,
    1313                                      bool fCanResize /* = true */)
     1332QRect VBoxGlobal::normalizeGeometry(const QRect &rectangle, const QRegion &boundRegion, bool fCanResize /* = true */)
    13141333{
    13151334    /* Perform direct and flipped search of position for @a rectangle to make sure it is fully contained
     
    13171336     * necessary. Selects the minimum shifted result between direct and flipped variants. */
    13181337
    1319     /* Direct search for normalized rectangle */
    1320     QRect var1 (getNormalized (rectangle, boundRegion, fCanResize));
     1338    /* Direct search for normalized rectangle: */
     1339    QRect var1(getNormalized(rectangle, boundRegion, fCanResize));
    13211340
    13221341    /* Flipped search for normalized rectangle: */
    1323     QRect var2 (flip (getNormalized (flip (rectangle).boundingRect(),
    1324                                      flip (boundRegion), fCanResize)).boundingRect());
     1342    QRect var2(flip(getNormalized(flip(rectangle).boundingRect(),
     1343                                  flip(boundRegion), fCanResize)).boundingRect());
    13251344
    13261345    /* Calculate shift from starting position for both variants: */
    1327     double dLength1 = sqrt (pow ((double) (var1.x() - rectangle.x()), (double) 2) +
    1328                             pow ((double) (var1.y() - rectangle.y()), (double) 2));
    1329     double dLength2 = sqrt (pow ((double) (var2.x() - rectangle.x()), (double) 2) +
    1330                             pow ((double) (var2.y() - rectangle.y()), (double) 2));
     1346    double dLength1 = sqrt(pow((double)(var1.x() - rectangle.x()), (double)2) +
     1347                           pow((double)(var1.y() - rectangle.y()), (double)2));
     1348    double dLength2 = sqrt(pow((double)(var2.x() - rectangle.x()), (double)2) +
     1349                           pow((double)(var2.y() - rectangle.y()), (double)2));
    13311350
    13321351    /* Return minimum shifted variant: */
     
    13351354
    13361355/* static */
    1337 QRect VBoxGlobal::getNormalized (const QRect &rectangle, const QRegion &boundRegion,
    1338                                  bool /* fCanResize = true */)
     1356QRect VBoxGlobal::getNormalized(const QRect &rectangle, const QRegion &boundRegion, bool /* fCanResize = true */)
    13391357{
    13401358    /* Ensures that the given rectangle @a rectangle is fully contained within the region @a boundRegion
     
    13441362
    13451363    /* Storing available horizontal sub-rectangles & vertical shifts: */
    1346     int iWindowVertical = rectangle.center().y();
    1347     QVector <QRect> rectanglesVector (boundRegion.rects());
    1348     QList <QRect> rectanglesList;
    1349     QList <int> shiftsList;
    1350     foreach (QRect currentItem, rectanglesVector)
    1351     {
    1352         int iCurrentDelta = qAbs (iWindowVertical - currentItem.center().y());
    1353         int iShift2Top = currentItem.top() - rectangle.top();
    1354         int iShift2Bot = currentItem.bottom() - rectangle.bottom();
     1364    const int iWindowVertical = rectangle.center().y();
     1365    QList<QRect> rectanglesList;
     1366    QList<int> shiftsList;
     1367    foreach (QRect currentItem, boundRegion.rects())
     1368    {
     1369        const int iCurrentDelta = qAbs(iWindowVertical - currentItem.center().y());
     1370        const int iShift2Top = currentItem.top() - rectangle.top();
     1371        const int iShift2Bot = currentItem.bottom() - rectangle.bottom();
    13551372
    13561373        int iTtemPosition = 0;
    13571374        foreach (QRect item, rectanglesList)
    13581375        {
    1359             int iDelta = qAbs (iWindowVertical - item.center().y());
    1360             if (iDelta > iCurrentDelta) break; else ++ iTtemPosition;
    1361         }
    1362         rectanglesList.insert (iTtemPosition, currentItem);
     1376            const int iDelta = qAbs(iWindowVertical - item.center().y());
     1377            if (iDelta > iCurrentDelta)
     1378                break;
     1379            else
     1380                ++iTtemPosition;
     1381        }
     1382        rectanglesList.insert(iTtemPosition, currentItem);
    13631383
    13641384        int iShift2TopPos = 0;
    13651385        foreach (int iShift, shiftsList)
    1366             if (qAbs (iShift) > qAbs (iShift2Top)) break; else ++ iShift2TopPos;
    1367         shiftsList.insert (iShift2TopPos, iShift2Top);
     1386            if (qAbs(iShift) > qAbs(iShift2Top))
     1387                break;
     1388            else
     1389                ++iShift2TopPos;
     1390        shiftsList.insert(iShift2TopPos, iShift2Top);
    13681391
    13691392        int iShift2BotPos = 0;
    13701393        foreach (int iShift, shiftsList)
    1371             if (qAbs(iShift) > qAbs(iShift2Bot)) break; else ++ iShift2BotPos;
    1372         shiftsList.insert (iShift2BotPos, iShift2Bot);
     1394            if (qAbs(iShift) > qAbs(iShift2Bot))
     1395                break;
     1396            else
     1397                ++iShift2BotPos;
     1398        shiftsList.insert(iShift2BotPos, iShift2Bot);
    13731399    }
    13741400
    13751401    /* Trying to find the appropriate place for window: */
    13761402    QRect result;
    1377     for (int i = -1; i < shiftsList.size(); ++ i)
     1403    for (int i = -1; i < shiftsList.size(); ++i)
    13781404    {
    13791405        /* Move to appropriate vertical: */
    1380         QRect newRectangle (rectangle);
    1381         if (i >= 0) newRectangle.translate (0, shiftsList [i]);
     1406        QRect newRectangle(rectangle);
     1407        if (i >= 0)
     1408            newRectangle.translate(0, shiftsList[i]);
    13821409
    13831410        /* Search horizontal shift: */
     
    13851412        foreach (QRect item, rectanglesList)
    13861413        {
    1387             QRect trectangle (newRectangle.translated (item.left() - newRectangle.left(), 0));
    1388             if (!item.intersects (trectangle))
     1414            QRect trectangle(newRectangle.translated(item.left() - newRectangle.left(), 0));
     1415            if (!item.intersects(trectangle))
    13891416                continue;
    13901417
    13911418            if (newRectangle.left() < item.left())
    13921419            {
    1393                 int iShift = item.left() - newRectangle.left();
    1394                 iMaxShift = qAbs (iShift) > qAbs (iMaxShift) ? iShift : iMaxShift;
     1420                const int iShift = item.left() - newRectangle.left();
     1421                iMaxShift = qAbs(iShift) > qAbs(iMaxShift) ? iShift : iMaxShift;
    13951422            }
    13961423            else if (newRectangle.right() > item.right())
    13971424            {
    1398                 int iShift = item.right() - newRectangle.right();
    1399                 iMaxShift = qAbs (iShift) > qAbs (iMaxShift) ? iShift : iMaxShift;
     1425                const int iShift = item.right() - newRectangle.right();
     1426                iMaxShift = qAbs(iShift) > qAbs(iMaxShift) ? iShift : iMaxShift;
    14001427            }
    14011428        }
    14021429
    14031430        /* Shift across the horizontal direction: */
    1404         newRectangle.translate (iMaxShift, 0);
     1431        newRectangle.translate(iMaxShift, 0);
    14051432
    14061433        /* Check the translated rectangle to feat the rules: */
    1407         if (boundRegion.united (newRectangle) == boundRegion)
     1434        if (boundRegion.united(newRectangle) == boundRegion)
    14081435            result = newRectangle;
    14091436
    1410         if (!result.isNull()) break;
     1437        if (!result.isNull())
     1438            break;
    14111439    }
    14121440
     
    14191447        foreach (QRect item, rectanglesList)
    14201448        {
    1421             quint64 uSquare = item.width() * item.height();
     1449            const quint64 uSquare = item.width() * item.height();
    14221450            if (uSquare > uMaxSquare)
    14231451            {
     
    14281456
    14291457        result = rectangle;
    1430         result.moveTo (maxRectangle.x(), maxRectangle.y());
     1458        result.moveTo(maxRectangle.x(), maxRectangle.y());
    14311459        if (maxRectangle.right() < result.right())
    1432             result.setRight (maxRectangle.right());
     1460            result.setRight(maxRectangle.right());
    14331461        if (maxRectangle.bottom() < result.bottom())
    1434             result.setBottom (maxRectangle.bottom());
     1462            result.setBottom(maxRectangle.bottom());
    14351463    }
    14361464
     
    14391467
    14401468/* static */
    1441 QRegion VBoxGlobal::flip (const QRegion &region)
     1469QRegion VBoxGlobal::flip(const QRegion &region)
    14421470{
    14431471    QRegion result;
    1444     QVector <QRect> rectangles (region.rects());
     1472    QVector<QRect> rectangles(region.rects());
    14451473    foreach (QRect rectangle, rectangles)
    1446         result += QRect (rectangle.y(), rectangle.x(),
    1447                          rectangle.height(), rectangle.width());
     1474        result += QRect(rectangle.y(), rectangle.x(),
     1475                        rectangle.height(), rectangle.width());
    14481476    return result;
    14491477}
    14501478
    14511479/* static */
    1452 void VBoxGlobal::centerWidget (QWidget *pWidget, QWidget *pRelative,
    1453                                bool fCanResize /* = true */)
     1480void VBoxGlobal::centerWidget(QWidget *pWidget, QWidget *pRelative, bool fCanResize /* = true */)
    14541481{
    14551482    /* If necessary, pWidget's position is adjusted to make it fully visible within
     
    14621489     * pWidget will be centered relative to the available desktop area. */
    14631490
    1464     AssertReturnVoid (pWidget);
    1465     AssertReturnVoid (pWidget->isTopLevel());
     1491    AssertReturnVoid(pWidget);
     1492    AssertReturnVoid(pWidget->isTopLevel());
    14661493
    14671494    QRect deskGeo, parentGeo;
    1468     QWidget *w = pRelative;
    1469     if (w)
    1470     {
    1471         w = w->window();
    1472         deskGeo = gpDesktop->availableGeometry (w);
    1473         parentGeo = w->frameGeometry();
     1495    if (pRelative)
     1496    {
     1497        pRelative = pRelative->window();
     1498        deskGeo = gpDesktop->availableGeometry(pRelative);
     1499        parentGeo = pRelative->frameGeometry();
    14741500        // WORKAROUND:
    14751501        // On X11/Gnome, geo/frameGeo.x() and y() are always 0 for top level
    14761502        // widgets with parents, what a shame. Use mapToGlobal() to workaround.
    1477         QPoint d = w->mapToGlobal (QPoint (0, 0));
    1478         d.rx() -= w->geometry().x() - w->x();
    1479         d.ry() -= w->geometry().y() - w->y();
    1480         parentGeo.moveTopLeft (d);
     1503        QPoint d = pRelative->mapToGlobal(QPoint(0, 0));
     1504        d.rx() -= pRelative->geometry().x() - pRelative->x();
     1505        d.ry() -= pRelative->geometry().y() - pRelative->y();
     1506        parentGeo.moveTopLeft(d);
    14811507    }
    14821508    else
     
    14921518    // is based on the idea taken from QDialog::adjustPositionInternal().
    14931519
    1494     int iExtraW = 0, iExtraH = 0;
     1520    int iExtraW = 0;
     1521    int iExtraH = 0;
    14951522
    14961523    QWidgetList list = QApplication::topLevelWidgets();
    1497     QListIterator<QWidget*> it (list);
     1524    QListIterator<QWidget*> it(list);
    14981525    while ((iExtraW == 0 || iExtraH == 0) && it.hasNext())
    14991526    {
     
    15061533        iFrameH = pCurrent->frameGeometry().height() - pCurrent->height();
    15071534
    1508         iExtraW = qMax (iExtraW, iFrameW);
    1509         iExtraH = qMax (iExtraH, iFrameH);
    1510     }
    1511 
    1512     /* On non-X11 platforms, the following would be enough instead of the
    1513      * above workaround: */
     1535        iExtraW = qMax(iExtraW, iFrameW);
     1536        iExtraH = qMax(iExtraH, iFrameH);
     1537    }
     1538
     1539    /* On non-X11 platforms, the following would be enough instead of the above workaround: */
    15141540    // QRect geo = frameGeometry();
    1515     QRect geo = QRect (0, 0, pWidget->width() + iExtraW,
    1516                              pWidget->height() + iExtraH);
    1517 
    1518     geo.moveCenter (QPoint (parentGeo.x() + (parentGeo.width() - 1) / 2,
    1519                             parentGeo.y() + (parentGeo.height() - 1) / 2));
     1541    QRect geo = QRect(0, 0, pWidget->width() + iExtraW,
     1542                            pWidget->height() + iExtraH);
     1543
     1544    geo.moveCenter(QPoint(parentGeo.x() + (parentGeo.width() - 1) / 2,
     1545                          parentGeo.y() + (parentGeo.height() - 1) / 2));
    15201546
    15211547    /* Ensure the widget is within the available desktop area: */
    1522     QRect newGeo = normalizeGeometry (geo, deskGeo, fCanResize);
     1548    QRect newGeo = normalizeGeometry(geo, deskGeo, fCanResize);
    15231549#ifdef VBOX_WS_MAC
    15241550    // WORKAROUND:
     
    15261552    // ::move call. So manually add the height of the toolbar before setting
    15271553    // the position.
    1528     if (w)
    1529         newGeo.translate (0, ::darwinWindowToolBarHeight (pWidget));
     1554    if (pRelative)
     1555        newGeo.translate(0, ::darwinWindowToolBarHeight(pWidget));
    15301556#endif /* VBOX_WS_MAC */
    15311557
    1532     pWidget->move (newGeo.topLeft());
    1533 
    1534     if (fCanResize &&
    1535         (geo.width() != newGeo.width() || geo.height() != newGeo.height()))
     1558    pWidget->move(newGeo.topLeft());
     1559
     1560    if (   fCanResize
     1561        && (geo.width() != newGeo.width() || geo.height() != newGeo.height()))
    15361562        pWidget->resize(newGeo.width() - iExtraW, newGeo.height() - iExtraH);
    15371563}
     
    15801606        uint16_t fMask =   XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y
    15811607                         | XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT;
    1582         uint32_t values[] = { (uint32_t)(x * dDPR), (uint32_t)(y * dDPR),
    1583                               (uint32_t)(w * dDPR), (uint32_t)(h * dDPR) };
     1608        uint32_t values[] = { (uint32_t)(x * dDPR), (uint32_t)(y * dDPR), (uint32_t)(w * dDPR), (uint32_t)(h * dDPR) };
    15841609        xcb_configure_window(QX11Info::connection(), (xcb_window_t)pWidget->winId(),
    15851610                             fMask, values);
     
    16291654}
    16301655
    1631 #if defined (VBOX_WS_X11)
    1632 
    1633 static char *XXGetProperty (Display *pDpy, Window windowHandle,
    1634                             Atom propType, const char *pszPropName)
    1635 {
    1636     Atom propNameAtom = XInternAtom (pDpy, pszPropName,
    1637                                      True /* only_if_exists */);
     1656#if defined(VBOX_WS_X11)
     1657
     1658static char *XXGetProperty(Display *pDpy, Window windowHandle, Atom propType, const char *pszPropName)
     1659{
     1660    Atom propNameAtom = XInternAtom(pDpy, pszPropName, True /* only_if_exists */);
    16381661    if (propNameAtom == None)
    16391662        return NULL;
     
    16441667    unsigned long nBytesAfter = 0;
    16451668    unsigned char *propVal = NULL;
    1646     int rc = XGetWindowProperty (pDpy, windowHandle, propNameAtom,
    1647                                  0, LONG_MAX, False /* delete */,
    1648                                  propType, &actTypeAtom, &actFmt,
    1649                                  &nItems, &nBytesAfter, &propVal);
     1669    int rc = XGetWindowProperty(pDpy, windowHandle, propNameAtom,
     1670                                0, LONG_MAX, False /* delete */,
     1671                                propType, &actTypeAtom, &actFmt,
     1672                                &nItems, &nBytesAfter, &propVal);
    16501673    if (rc != Success)
    16511674        return NULL;
    16521675
    1653     return reinterpret_cast <char *> (propVal);
    1654 }
    1655 
    1656 static Bool XXSendClientMessage (Display *pDpy, Window windowHandle, const char *pszMsg,
    1657                                  unsigned long aData0 = 0, unsigned long aData1 = 0,
    1658                                  unsigned long aData2 = 0, unsigned long aData3 = 0,
    1659                                  unsigned long aData4 = 0)
    1660 {
    1661     Atom msgAtom = XInternAtom (pDpy, pszMsg, True /* only_if_exists */);
     1676    return reinterpret_cast<char*>(propVal);
     1677}
     1678
     1679static Bool XXSendClientMessage(Display *pDpy, Window windowHandle, const char *pszMsg,
     1680                                unsigned long aData0 = 0, unsigned long aData1 = 0,
     1681                                unsigned long aData2 = 0, unsigned long aData3 = 0,
     1682                                unsigned long aData4 = 0)
     1683{
     1684    Atom msgAtom = XInternAtom(pDpy, pszMsg, True /* only_if_exists */);
    16621685    if (msgAtom == None)
    16631686        return False;
     
    16741697    /* Always send as 32 bit for now: */
    16751698    ev.xclient.format = 32;
    1676     ev.xclient.data.l [0] = aData0;
    1677     ev.xclient.data.l [1] = aData1;
    1678     ev.xclient.data.l [2] = aData2;
    1679     ev.xclient.data.l [3] = aData3;
    1680     ev.xclient.data.l [4] = aData4;
    1681 
    1682     return XSendEvent (pDpy, DefaultRootWindow (pDpy), False,
    1683                        SubstructureRedirectMask, &ev) != 0;
     1699    ev.xclient.data.l[0] = aData0;
     1700    ev.xclient.data.l[1] = aData1;
     1701    ev.xclient.data.l[2] = aData2;
     1702    ev.xclient.data.l[3] = aData3;
     1703    ev.xclient.data.l[4] = aData4;
     1704
     1705    return XSendEvent(pDpy, DefaultRootWindow(pDpy), False,
     1706                      SubstructureRedirectMask, &ev) != 0;
    16841707}
    16851708
     
    16871710
    16881711/* static */
    1689 bool VBoxGlobal::activateWindow (WId wId, bool fSwitchDesktop /* = true */)
     1712bool VBoxGlobal::activateWindow(WId wId, bool fSwitchDesktop /* = true */)
    16901713{
    16911714    RT_NOREF(fSwitchDesktop);
    16921715    bool fResult = true;
    16931716
    1694 #if defined (VBOX_WS_WIN)
     1717#if defined(VBOX_WS_WIN)
    16951718
    16961719    HWND handle = (HWND)wId;
    16971720
    1698     if (IsIconic (handle))
    1699         fResult &= !!ShowWindow (handle, SW_RESTORE);
    1700     else if (!IsWindowVisible (handle))
    1701         fResult &= !!ShowWindow (handle, SW_SHOW);
    1702 
    1703     fResult &= !!SetForegroundWindow (handle);
    1704 
    1705 #elif defined (VBOX_WS_X11)
     1721    if (IsIconic(handle))
     1722        fResult &= !!ShowWindow(handle, SW_RESTORE);
     1723    else if (!IsWindowVisible(handle))
     1724        fResult &= !!ShowWindow(handle, SW_SHOW);
     1725
     1726    fResult &= !!SetForegroundWindow(handle);
     1727
     1728#elif defined(VBOX_WS_X11)
    17061729
    17071730    Display *pDisplay = QX11Info::display();
     
    17101733    {
    17111734        /* try to find the desktop ID using the NetWM property */
    1712         CARD32 *pDesktop = (CARD32 *) XXGetProperty (pDisplay, wId, XA_CARDINAL,
    1713                                                      "_NET_WM_DESKTOP");
     1735        CARD32 *pDesktop = (CARD32 *) XXGetProperty(pDisplay, wId, XA_CARDINAL,
     1736                                                    "_NET_WM_DESKTOP");
    17141737        if (pDesktop == NULL)
    17151738            // WORKAROUND:
    17161739            // if the NetWM properly is not supported try to find
    17171740            // the desktop ID using the GNOME WM property.
    1718             pDesktop = (CARD32 *) XXGetProperty (pDisplay, wId, XA_CARDINAL,
    1719                                                  "_WIN_WORKSPACE");
     1741            pDesktop = (CARD32 *) XXGetProperty(pDisplay, wId, XA_CARDINAL,
     1742                                                "_WIN_WORKSPACE");
    17201743
    17211744        if (pDesktop != NULL)
    17221745        {
    1723             Bool ok = XXSendClientMessage (pDisplay, DefaultRootWindow (pDisplay),
    1724                                            "_NET_CURRENT_DESKTOP",
    1725                                            *pDesktop);
     1746            Bool ok = XXSendClientMessage(pDisplay, DefaultRootWindow(pDisplay),
     1747                                          "_NET_CURRENT_DESKTOP",
     1748                                          *pDesktop);
    17261749            if (!ok)
    17271750            {
     
    17291752                fResult = false;
    17301753            }
    1731             XFree (pDesktop);
     1754            XFree(pDesktop);
    17321755        }
    17331756        else
     
    17381761    }
    17391762
    1740     Bool ok = XXSendClientMessage (pDisplay, wId, "_NET_ACTIVE_WINDOW");
     1763    Bool ok = XXSendClientMessage(pDisplay, wId, "_NET_ACTIVE_WINDOW");
    17411764    fResult &= !!ok;
    17421765
    1743     XRaiseWindow (pDisplay, wId);
     1766    XRaiseWindow(pDisplay, wId);
    17441767
    17451768#else
    17461769
    1747     NOREF (wId);
    1748     NOREF (fSwitchDesktop);
     1770    NOREF(wId);
     1771    NOREF(fSwitchDesktop);
    17491772    AssertFailed();
    17501773    fResult = false;
     
    17581781}
    17591782
    1760 #if defined (VBOX_WS_X11)
     1783#if defined(VBOX_WS_X11)
    17611784
    17621785/* static */
     
    19812004}
    19822005
    1983 #endif
     2006#endif /* VBOX_WS_X11 */
    19842007
    19852008/* static */
     
    20022025
    20032026    /* Calculate minimum-width magic: */
    2004     int iSpinBoxWidth = pSpinBox->width();
    2005     int iSpinBoxEditFieldWidth = rect.width();
    2006     int iSpinBoxDelta = qMax(0, iSpinBoxWidth - iSpinBoxEditFieldWidth);
     2027    const int iSpinBoxWidth = pSpinBox->width();
     2028    const int iSpinBoxEditFieldWidth = rect.width();
     2029    const int iSpinBoxDelta = qMax(0, iSpinBoxWidth - iSpinBoxEditFieldWidth);
    20072030    QFontMetrics metrics(pSpinBox->font(), pSpinBox);
    2008     QString strDummy(cCount, '0');
    2009     int iTextWidth = metrics.width(strDummy);
     2031    const QString strDummy(cCount, '0');
     2032    const int iTextWidth = metrics.width(strDummy);
    20102033
    20112034    /* Tune spin-box minimum-width: */
     
    20292052
    20302053CGuestOSType VBoxGlobal::vmGuestOSType(const QString &strTypeId,
    2031              const QString &strFamilyId /* = QString() */) const
    2032 {
    2033     QList <CGuestOSType> list;
    2034     if (m_guestOSFamilyIDs.contains (strFamilyId))
    2035     {
    2036         list = m_guestOSTypes [m_guestOSFamilyIDs.indexOf (strFamilyId)];
     2054                                       const QString &strFamilyId /* = QString() */) const
     2055{
     2056    QList<CGuestOSType> list;
     2057    if (m_guestOSFamilyIDs.contains(strFamilyId))
     2058    {
     2059        list = m_guestOSTypes.at(m_guestOSFamilyIDs.indexOf(strFamilyId));
    20372060    }
    20382061    else
    20392062    {
    2040         for (int i = 0; i < m_guestOSFamilyIDs.size(); ++ i)
    2041             list += m_guestOSTypes [i];
    2042     }
    2043     for (int j = 0; j < list.size(); ++ j)
    2044         if (!list [j].GetId().compare (strTypeId))
    2045             return list [j];
    2046     AssertMsgFailed (("Type ID incorrect: '%s'.", strTypeId.toLatin1().constData()));
     2063        for (int i = 0; i < m_guestOSFamilyIDs.size(); ++i)
     2064            list += m_guestOSTypes.at(i);
     2065    }
     2066    for (int j = 0; j < list.size(); ++j)
     2067        if (!list.at(j).GetId().compare(strTypeId))
     2068            return list.at(j);
     2069    AssertMsgFailed(("Type ID incorrect: '%s'.", strTypeId.toLatin1().constData()));
    20472070    return CGuestOSType();
    20482071}
    20492072
    2050 QString VBoxGlobal::vmGuestOSTypeDescription (const QString &strTypeId) const
    2051 {
    2052     for (int i = 0; i < m_guestOSFamilyIDs.size(); ++ i)
    2053     {
    2054         QList <CGuestOSType> list (m_guestOSTypes [i]);
    2055         for ( int j = 0; j < list.size(); ++ j)
    2056             if (!list [j].GetId().compare (strTypeId))
    2057                 return list [j].GetDescription();
     2073QString VBoxGlobal::vmGuestOSTypeDescription(const QString &strTypeId) const
     2074{
     2075    for (int i = 0; i < m_guestOSFamilyIDs.size(); ++i)
     2076    {
     2077        QList<CGuestOSType> list(m_guestOSTypes[i]);
     2078        for (int j = 0; j < list.size(); ++j)
     2079            if (!list.at(j).GetId().compare(strTypeId))
     2080                return list.at(j).GetDescription();
    20582081    }
    20592082    return QString();
     
    20612084
    20622085/* static */
    2063 bool VBoxGlobal::isDOSType (const QString &strOSTypeId)
    2064 {
    2065     if (strOSTypeId.left (3) == "dos" ||
    2066         strOSTypeId.left (3) == "win" ||
    2067         strOSTypeId.left (3) == "os2")
     2086bool VBoxGlobal::isDOSType(const QString &strOSTypeId)
     2087{
     2088    if (   strOSTypeId.left(3) == "dos"
     2089        || strOSTypeId.left(3) == "win"
     2090        || strOSTypeId.left(3) == "os2")
    20682091        return true;
    20692092
     
    20712094}
    20722095
     2096/* static */
    20732097bool VBoxGlobal::switchToMachine(CMachine &comMachine)
    20742098{
     
    20762100    ULONG64 id = comMachine.ShowConsoleWindow();
    20772101#else
    2078     WId id = (WId) comMachine.ShowConsoleWindow();
     2102    WId id = (WId)comMachine.ShowConsoleWindow();
    20792103#endif
     2104
    20802105    AssertWrapperOk(comMachine);
    20812106    if (!comMachine.isOk())
     
    20902115#if defined(VBOX_WS_WIN) || defined(VBOX_WS_X11)
    20912116
    2092     return vboxGlobal().activateWindow(id, true);
     2117    return activateWindow(id, true);
    20932118
    20942119#elif defined(VBOX_WS_MAC)
     2120
    20952121    // WORKAROUND:
    20962122    // This is just for the case were the other process cannot steal
     
    21302156        {
    21312157            /* Just switch to existing VM window: */
    2132             return VBoxGlobal::switchToMachine(comMachine);
     2158            return switchToMachine(comMachine);
    21332159        }
    21342160        /* For the Runtime UI: */
     
    21372163            /* Only separate UI process can reach that place,
    21382164             * switch to existing VM window and exit. */
    2139             VBoxGlobal::switchToMachine(comMachine);
     2165            switchToMachine(comMachine);
    21402166            return false;
    21412167        }
     
    21672193    /* Allow started VM process to be foreground window: */
    21682194    AllowSetForegroundWindow(ASFW_ANY);
    2169 #endif /* Q_OS_WIN */
     2195#endif
    21702196#ifdef VBOX_WS_X11
    21712197    /* Make sure VM process will start on the same display as the VM selector: */
     
    21762202    if (pXauth)
    21772203        strEnv.append(QString("XAUTHORITY=%1\n").arg(pXauth));
    2178 #endif /* VBOX_WS_X11 */
     2204#endif
    21792205    QString strType;
    21802206    switch (enmLaunchMode)
    21812207    {
    21822208        case LaunchMode_Default:  strType = ""; break;
    2183         case LaunchMode_Separate: strType = vboxGlobal().isSeparateProcess() ? "headless" : "separate"; break;
     2209        case LaunchMode_Separate: strType = isSeparateProcess() ? "headless" : "separate"; break;
    21842210        case LaunchMode_Headless: strType = "headless"; break;
    21852211        default: AssertFailedReturn(false);
     
    22822308}
    22832309
    2284 /* static */
    2285 QList <QPair <QString, QString> > VBoxGlobal::MediumBackends(KDeviceType enmType)
     2310QList<QPair<QString, QString> > VBoxGlobal::MediumBackends(KDeviceType enmType) const
    22862311{
    22872312    /* Prepare a list of pairs with the form <tt>{"Backend Name", "*.suffix1 .suffix2 ..."}</tt>. */
    2288     CSystemProperties comSystemProperties = vboxGlobal().virtualBox().GetSystemProperties();
     2313    CSystemProperties comSystemProperties = virtualBox().GetSystemProperties();
    22892314    QVector<CMediumFormat> mediumFormats = comSystemProperties.GetMediumFormats();
    22902315    QList< QPair<QString, QString> > backendPropList;
    2291     for (int i = 0; i < mediumFormats.size(); ++ i)
     2316    for (int i = 0; i < mediumFormats.size(); ++i)
    22922317    {
    22932318        /* File extensions */
     
    22952320        QVector <KDeviceType> deviceTypes;
    22962321
    2297         mediumFormats [i].DescribeFileExtensions(fileExtensions, deviceTypes);
     2322        mediumFormats[i].DescribeFileExtensions(fileExtensions, deviceTypes);
    22982323
    22992324        QStringList f;
    2300         for (int a = 0; a < fileExtensions.size(); ++ a)
    2301             if (deviceTypes [a] == enmType)
    2302                 f << QString ("*.%1").arg (fileExtensions [a]);
     2325        for (int a = 0; a < fileExtensions.size(); ++a)
     2326            if (deviceTypes[a] == enmType)
     2327                f << QString("*.%1").arg(fileExtensions[a]);
    23032328        /* Create a pair out of the backend description and all suffix's. */
    23042329        if (!f.isEmpty())
    2305             backendPropList << QPair<QString, QString> (mediumFormats [i].GetName(), f.join(" "));
     2330            backendPropList << QPair<QString, QString>(mediumFormats[i].GetName(), f.join(" "));
    23062331    }
    23072332    return backendPropList;
     
    23092334
    23102335/* static */
    2311 QList <QPair <QString, QString> > VBoxGlobal::HDDBackends()
     2336QList<QPair<QString, QString> > VBoxGlobal::HDDBackends() const
    23122337{
    23132338    return MediumBackends(KDeviceType_HardDisk);
     
    23152340
    23162341/* static */
    2317 QList <QPair <QString, QString> > VBoxGlobal::DVDBackends()
     2342QList<QPair<QString, QString> > VBoxGlobal::DVDBackends() const
    23182343{
    23192344    return MediumBackends(KDeviceType_DVD);
     
    23212346
    23222347/* static */
    2323 QList <QPair <QString, QString> > VBoxGlobal::FloppyBackends()
     2348QList<QPair<QString, QString> > VBoxGlobal::FloppyBackends() const
    23242349{
    23252350    return MediumBackends(KDeviceType_Floppy);
     
    23602385{
    23612386    /* Redirect request to medium-enumerator: */
    2362     return m_pMediumEnumerator
    2363         && m_pMediumEnumerator->isMediumEnumerationInProgress();
     2387    return    m_pMediumEnumerator
     2388           && m_pMediumEnumerator->isMediumEnumerationInProgress();
    23642389}
    23652390
     
    24432468        recentMediumList.removeAll(strMediumLocation);
    24442469    recentMediumList.prepend(strMediumLocation);
    2445     while(recentMediumList.size() > 5) recentMediumList.removeLast();
     2470    while(recentMediumList.size() > 5)
     2471        recentMediumList.removeLast();
    24462472    switch (enmMediumType)
    24472473    {
     
    24822508{
    24832509    /* Initialize variables: */
    2484     QList < QPair <QString, QString> > filters;
     2510    QList<QPair <QString, QString> > filters;
    24852511    QStringList backends;
    24862512    QStringList prefixes;
     
    24932519        case UIMediumType_HardDisk:
    24942520        {
    2495             filters = vboxGlobal().HDDBackends();
     2521            filters = HDDBackends();
    24962522            strTitle = tr("Please choose a virtual hard disk file");
    24972523            allType = tr("All virtual hard disk files (%1)");
     
    25052531        case UIMediumType_DVD:
    25062532        {
    2507             filters = vboxGlobal().DVDBackends();
     2533            filters = DVDBackends();
    25082534            strTitle = tr("Please choose a virtual optical disk file");
    25092535            allType = tr("All virtual optical disk files (%1)");
     
    25172543        case UIMediumType_Floppy:
    25182544        {
    2519             filters = vboxGlobal().FloppyBackends();
     2545            filters = FloppyBackends();
    25202546            strTitle = tr("Please choose a virtual floppy disk file");
    25212547            allType = tr("All virtual floppy disk files (%1)");
     
    25312557    }
    25322558    QString strHomeFolder = fUseLastFolder && !strLastFolder.isEmpty() ? strLastFolder :
    2533                             strDefaultFolder.isEmpty() ? vboxGlobal().homeFolder() : strDefaultFolder;
     2559                            strDefaultFolder.isEmpty() ? homeFolder() : strDefaultFolder;
    25342560
    25352561    /* Prepare filters and backends: */
     
    25372563    {
    25382564        /* Get iterated filter: */
    2539         QPair <QString, QString> item = filters.at(i);
     2565        QPair<QString, QString> item = filters.at(i);
    25402566        /* Create one backend filter string: */
    25412567        backends << QString("%1 (%2)").arg(item.first).arg(item.second);
     
    26352661{
    26362662    /* Current attachment attributes: */
    2637     const CMediumAttachment comCurrentAttachment = comMachine.GetMediumAttachment(strControllerName, storageSlot.port, storageSlot.device);
     2663    const CMediumAttachment comCurrentAttachment = comMachine.GetMediumAttachment(strControllerName,
     2664                                                                                  storageSlot.port,
     2665                                                                                  storageSlot.device);
    26382666    const CMedium comCurrentMedium = comCurrentAttachment.GetMedium();
    26392667    const QString strCurrentID = comCurrentMedium.isNull() ? QString() : comCurrentMedium.GetId();
     
    26472675    AssertMsgReturnVoid(enmMediumType != UIMediumType_Invalid, ("Incorrect storage medium type!\n"));
    26482676
    2649 
    26502677    /* Prepare open-existing-medium action: */
    2651     QAction *pActionOpenExistingMedium = menu.addAction(UIIconPool::iconSet(":/select_file_16px.png"), QString(), pListener, pszSlotName);
    2652     pActionOpenExistingMedium->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(), comCurrentAttachment.GetDevice(),
    2653                                                                           enmMediumType)));
    2654     pActionOpenExistingMedium->setText(QApplication::translate("UIMachineSettingsStorage", "Choose disk image...", "This is used for hard disks, optical media and floppies"));
     2678    QAction *pActionOpenExistingMedium = menu.addAction(UIIconPool::iconSet(":/select_file_16px.png"),
     2679                                                        QString(), pListener, pszSlotName);
     2680    pActionOpenExistingMedium->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(),
     2681                                                                          comCurrentAttachment.GetDevice(), enmMediumType)));
     2682    pActionOpenExistingMedium->setText(QApplication::translate("UIMachineSettingsStorage", "Choose disk image...",
     2683                                                               "This is used for hard disks, optical media and floppies"));
    26552684
    26562685    /* Prepare ad-hoc-viso action for DVD-ROMs: */
    26572686    if (enmMediumType == UIMediumType_DVD)
    26582687    {
    2659         QAction *pActionAdHocViso = menu.addAction(UIIconPool::iconSet(":/select_file_16px.png"), QString(),
    2660                                                    pListener, pszSlotName);
     2688        QAction *pActionAdHocViso = menu.addAction(UIIconPool::iconSet(":/select_file_16px.png"),
     2689                                                   QString(), pListener, pszSlotName);
    26612690        pActionAdHocViso->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(),
    26622691                                                                     comCurrentAttachment.GetDevice(), enmMediumType,
    26632692                                                                     UIMediumTarget::UIMediumTargetType_CreateAdHocVISO)));
    2664         pActionAdHocViso->setText(QApplication::translate("UIMachineSettingsStorage", "Create ad hoc VISO...", "This is used for optical media"));
     2693        pActionAdHocViso->setText(QApplication::translate("UIMachineSettingsStorage", "Create ad hoc VISO...",
     2694                                                          "This is used for optical media"));
    26652695    }
    26662696
    26672697    /* Insert separator: */
    26682698    menu.addSeparator();
    2669 
    26702699
    26712700    /* Get existing-host-drive vector: */
     
    27002729            pActionChooseHostDrive->setCheckable(true);
    27012730            pActionChooseHostDrive->setChecked(!comCurrentMedium.isNull() && comMedium.GetId() == strCurrentID);
    2702             pActionChooseHostDrive->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(), comCurrentAttachment.GetDevice(),
    2703                                                                                enmMediumType, UIMediumTarget::UIMediumTargetType_WithID, comMedium.GetId())));
    2704         }
    2705     }
    2706 
     2731            pActionChooseHostDrive->setData(QVariant::fromValue(UIMediumTarget(strControllerName,
     2732                                                                               comCurrentAttachment.GetPort(),
     2733                                                                               comCurrentAttachment.GetDevice(),
     2734                                                                               enmMediumType,
     2735                                                                               UIMediumTarget::UIMediumTargetType_WithID,
     2736                                                                               comMedium.GetId())));
     2737        }
     2738    }
    27072739
    27082740    /* Get recent-medium list: */
     
    27462778        if (!fIsRecentMediumUsed)
    27472779        {
    2748             QAction *pActionChooseRecentMedium = menu.addAction(QFileInfo(strRecentMediumLocation).fileName(), pListener, pszSlotName);
     2780            QAction *pActionChooseRecentMedium = menu.addAction(QFileInfo(strRecentMediumLocation).fileName(),
     2781                                                                pListener, pszSlotName);
    27492782            pActionChooseRecentMedium->setCheckable(true);
    27502783            pActionChooseRecentMedium->setChecked(!comCurrentMedium.isNull() && strRecentMediumLocation == strCurrentLocation);
    2751             pActionChooseRecentMedium->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(), comCurrentAttachment.GetDevice(),
    2752                                                                                   enmMediumType, UIMediumTarget::UIMediumTargetType_WithLocation, strRecentMediumLocation)));
     2784            pActionChooseRecentMedium->setData(QVariant::fromValue(UIMediumTarget(strControllerName,
     2785                                                                                  comCurrentAttachment.GetPort(),
     2786                                                                                  comCurrentAttachment.GetDevice(),
     2787                                                                                  enmMediumType,
     2788                                                                                  UIMediumTarget::UIMediumTargetType_WithLocation,
     2789                                                                                  strRecentMediumLocation)));
    27532790            pActionChooseRecentMedium->setToolTip(strRecentMediumLocation);
    27542791        }
    27552792    }
    2756 
    27572793
    27582794    /* Last action for optical/floppy attachments only: */
     
    27652801        QAction *pActionUnmountMedium = menu.addAction(QString(), pListener, pszSlotName);
    27662802        pActionUnmountMedium->setEnabled(!comCurrentMedium.isNull());
    2767         pActionUnmountMedium->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(), comCurrentAttachment.GetDevice())));
     2803        pActionUnmountMedium->setData(QVariant::fromValue(UIMediumTarget(strControllerName, comCurrentAttachment.GetPort(),
     2804                                                                         comCurrentAttachment.GetDevice())));
    27682805        pActionUnmountMedium->setText(QApplication::translate("UIMachineSettingsStorage", "Remove disk from virtual drive"));
    27692806        if (enmMediumType == UIMediumType_DVD)
     
    28162853                const QString strMachineFolder(QFileInfo(comConstMachine.GetSettingsFilePath()).absolutePath());
    28172854                const QString strMediumID = target.type != UIMediumTarget::UIMediumTargetType_CreateAdHocVISO
    2818                                           ? vboxGlobal().openMediumWithFileOpenDialog(target.mediumType,
    2819                                                                                       windowManager().mainWindowShown(),
    2820                                                                                       strMachineFolder)
    2821                                           : vboxGlobal().createVisoMediumWithFileOpenDialog(windowManager().mainWindowShown(),
    2822                                                                                             strMachineFolder);
     2855                                          ? openMediumWithFileOpenDialog(target.mediumType,
     2856                                                                         windowManager().mainWindowShown(),
     2857                                                                         strMachineFolder)
     2858                                          : createVisoMediumWithFileOpenDialog(windowManager().mainWindowShown(),
     2859                                                                               strMachineFolder);
    28232860                /* Return focus back: */
    28242861                if (pLastFocusedWidget)
     
    28382875
    28392876            /* Prepare target medium: */
    2840             const UIMedium guiMedium = vboxGlobal().medium(strNewID);
     2877            const UIMedium guiMedium = medium(strNewID);
    28412878            comMedium = guiMedium.medium();
    28422879            strActualID = fMount ? strNewID : strCurrentID;
     
    28472884        {
    28482885            /* Open medium by location and get new medium ID if any: */
    2849             const QString strNewID = vboxGlobal().openMedium(target.mediumType, target.data);
     2886            const QString strNewID = openMedium(target.mediumType, target.data);
    28502887            /* Else just exit: */
    28512888            if (strNewID.isEmpty())
     
    28562893
    28572894            /* Prepare target medium: */
    2858             const UIMedium guiMedium = fMount ? vboxGlobal().medium(strNewID) : UIMedium();
     2895            const UIMedium guiMedium = fMount ? medium(strNewID) : UIMedium();
    28592896            comMedium = fMount ? guiMedium.medium() : CMedium();
    28602897            strActualID = fMount ? strNewID : strCurrentID;
     
    29202957        {
    29212958            /* Ask for force remounting: */
    2922             if (msgCenter().cannotRemountMedium(comMachine, vboxGlobal().medium(strActualID),
     2959            if (msgCenter().cannotRemountMedium(comMachine, medium(strActualID),
    29232960                                                fMount, true /* retry? */))
    29242961            {
     
    29272964                fWasMounted = comMachine.isOk();
    29282965                if (!fWasMounted)
    2929                     msgCenter().cannotRemountMedium(comMachine, vboxGlobal().medium(strActualID),
     2966                    msgCenter().cannotRemountMedium(comMachine, medium(strActualID),
    29302967                                                    fMount, false /* retry? */);
    29312968            }
     
    29643001
    29653002        /* Search for corresponding UI medium again: */
    2966 
    29673003        guiMedium = medium(strMediumID);
    29683004        if (guiMedium.isNull())
     
    30073043#endif /* RT_OS_LINUX */
    30083044
    3009 QString VBoxGlobal::details (const CUSBDevice &comDevice) const
     3045/* static */
     3046QString VBoxGlobal::details(const CUSBDevice &comDevice)
    30103047{
    30113048    QString strDetails;
     
    30263063        {
    30273064            strDetails =
    3028                 tr ("Unknown device %1:%2", "USB device details")
    3029                     .arg (QString().sprintf ("%04hX", comDevice.GetVendorId()))
    3030                     .arg (QString().sprintf ("%04hX", comDevice.GetProductId()));
     3065                tr("Unknown device %1:%2", "USB device details")
     3066                   .arg(QString().sprintf("%04hX", comDevice.GetVendorId()))
     3067                   .arg(QString().sprintf("%04hX", comDevice.GetProductId()));
    30313068        }
    30323069        else
    30333070        {
    3034             if (strProduct.toUpper().startsWith (strManufacturer.toUpper()))
     3071            if (strProduct.toUpper().startsWith(strManufacturer.toUpper()))
    30353072                strDetails = strProduct;
    30363073            else
     
    30393076        ushort iRev = comDevice.GetRevision();
    30403077        if (iRev != 0)
    3041             strDetails += QString().sprintf (" [%04hX]", iRev);
     3078            strDetails += QString().sprintf(" [%04hX]", iRev);
    30423079    }
    30433080
     
    30453082}
    30463083
    3047 QString VBoxGlobal::toolTip (const CUSBDevice &comDevice) const
     3084/* static */
     3085QString VBoxGlobal::toolTip(const CUSBDevice &comDevice)
    30483086{
    30493087    QString strTip =
    3050         tr ("<nobr>Vendor ID: %1</nobr><br>"
    3051             "<nobr>Product ID: %2</nobr><br>"
    3052             "<nobr>Revision: %3</nobr>", "USB device tooltip")
    3053             .arg (QString().sprintf ("%04hX", comDevice.GetVendorId()))
    3054             .arg (QString().sprintf ("%04hX", comDevice.GetProductId()))
    3055             .arg (QString().sprintf ("%04hX", comDevice.GetRevision()));
    3056 
    3057     QString strSerial = comDevice.GetSerialNumber();
     3088        tr("<nobr>Vendor ID: %1</nobr><br>"
     3089           "<nobr>Product ID: %2</nobr><br>"
     3090           "<nobr>Revision: %3</nobr>", "USB device tooltip")
     3091           .arg(QString().sprintf("%04hX", comDevice.GetVendorId()))
     3092           .arg(QString().sprintf("%04hX", comDevice.GetProductId()))
     3093           .arg(QString().sprintf("%04hX", comDevice.GetRevision()));
     3094
     3095    const QString strSerial = comDevice.GetSerialNumber();
    30583096    if (!strSerial.isEmpty())
    3059         strTip += QString (tr ("<br><nobr>Serial No. %1</nobr>", "USB device tooltip"))
    3060                                .arg (strSerial);
    3061 
    3062     /* add the state field if it's a host USB device */
    3063     CHostUSBDevice hostDev (comDevice);
     3097        strTip += QString(tr("<br><nobr>Serial No. %1</nobr>", "USB device tooltip"))
     3098                             .arg(strSerial);
     3099
     3100    /* Add the state field if it's a host USB device: */
     3101    CHostUSBDevice hostDev(comDevice);
    30643102    if (!hostDev.isNull())
    30653103    {
    3066         strTip += QString (tr ("<br><nobr>State: %1</nobr>", "USB device tooltip"))
    3067                                .arg (gpConverter->toString (hostDev.GetState()));
     3104        strTip += QString(tr("<br><nobr>State: %1</nobr>", "USB device tooltip"))
     3105                             .arg(gpConverter->toString(hostDev.GetState()));
    30683106    }
    30693107
     
    30713109}
    30723110
    3073 QString VBoxGlobal::toolTip (const CUSBDeviceFilter &comFilter) const
     3111/* static */
     3112QString VBoxGlobal::toolTip(const CUSBDeviceFilter &comFilter)
    30743113{
    30753114    QString strTip;
    30763115
    3077     QString strVendorId = comFilter.GetVendorId();
     3116    const QString strVendorId = comFilter.GetVendorId();
    30783117    if (!strVendorId.isEmpty())
    3079         strTip += tr ("<nobr>Vendor ID: %1</nobr>", "USB filter tooltip")
    3080                       .arg (strVendorId);
    3081 
    3082     QString strProductId = comFilter.GetProductId();
     3118        strTip += tr("<nobr>Vendor ID: %1</nobr>", "USB filter tooltip")
     3119                     .arg(strVendorId);
     3120
     3121    const QString strProductId = comFilter.GetProductId();
    30833122    if (!strProductId.isEmpty())
    3084         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>Product ID: %2</nobr>", "USB filter tooltip")
    3085                                                       .arg (strProductId);
    3086 
    3087     QString strRevision = comFilter.GetRevision();
     3123        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>Product ID: %2</nobr>", "USB filter tooltip")
     3124                                                     .arg(strProductId);
     3125
     3126    const QString strRevision = comFilter.GetRevision();
    30883127    if (!strRevision.isEmpty())
    3089         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>Revision: %3</nobr>", "USB filter tooltip")
    3090                                                       .arg (strRevision);
    3091 
    3092     QString strProduct = comFilter.GetProduct();
     3128        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>Revision: %3</nobr>", "USB filter tooltip")
     3129                                                     .arg(strRevision);
     3130
     3131    const QString strProduct = comFilter.GetProduct();
    30933132    if (!strProduct.isEmpty())
    3094         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>Product: %4</nobr>", "USB filter tooltip")
    3095                                                       .arg (strProduct);
    3096 
    3097     QString strManufacturer = comFilter.GetManufacturer();
     3133        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>Product: %4</nobr>", "USB filter tooltip")
     3134                                                     .arg(strProduct);
     3135
     3136    const QString strManufacturer = comFilter.GetManufacturer();
    30983137    if (!strManufacturer.isEmpty())
    3099         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>Manufacturer: %5</nobr>", "USB filter tooltip")
    3100                                                       .arg (strManufacturer);
    3101 
    3102     QString strSerial = comFilter.GetSerialNumber();
     3138        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>Manufacturer: %5</nobr>", "USB filter tooltip")
     3139                                                     .arg(strManufacturer);
     3140
     3141    const QString strSerial = comFilter.GetSerialNumber();
    31033142    if (!strSerial.isEmpty())
    3104         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>Serial No.: %1</nobr>", "USB filter tooltip")
    3105                                                       .arg (strSerial);
    3106 
    3107     QString strPort = comFilter.GetPort();
     3143        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>Serial No.: %1</nobr>", "USB filter tooltip")
     3144                                                     .arg(strSerial);
     3145
     3146    const QString strPort = comFilter.GetPort();
    31083147    if (!strPort.isEmpty())
    3109         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>Port: %1</nobr>", "USB filter tooltip")
    3110                                                       .arg (strPort);
    3111 
    3112     /* add the state field if it's a host USB device */
    3113     CHostUSBDevice hostDev (comFilter);
     3148        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>Port: %1</nobr>", "USB filter tooltip")
     3149                                                     .arg(strPort);
     3150
     3151    /* Add the state field if it's a host USB device: */
     3152    CHostUSBDevice hostDev(comFilter);
    31143153    if (!hostDev.isNull())
    31153154    {
    3116         strTip += strTip.isEmpty() ? "":"<br/>" + tr ("<nobr>State: %1</nobr>", "USB filter tooltip")
    3117                                                       .arg (gpConverter->toString (hostDev.GetState()));
     3155        strTip += strTip.isEmpty() ? "":"<br/>" + tr("<nobr>State: %1</nobr>", "USB filter tooltip")
     3156                                                     .arg(gpConverter->toString(hostDev.GetState()));
    31183157    }
    31193158
     
    31213160}
    31223161
    3123 QString VBoxGlobal::toolTip(const CHostVideoInputDevice &comWebcam) const
     3162/* static */
     3163QString VBoxGlobal::toolTip(const CHostVideoInputDevice &comWebcam)
    31243164{
    31253165    QStringList records;
     
    31383178/* static */
    31393179void VBoxGlobal::doExtPackInstallation(QString const &strFilePath, QString const &strDigest,
    3140                                        QWidget *pParent, QString *pstrExtPackName)
     3180                                       QWidget *pParent, QString *pstrExtPackName) const
    31413181{
    31423182    /* Open the extpack tarball via IExtPackManager: */
    3143     CExtPackManager comManager = vboxGlobal().virtualBox().GetExtensionPackManager();
     3183    CExtPackManager comManager = virtualBox().GetExtensionPackManager();
    31443184    CExtPackFile comExtPackFile;
    31453185    if (strDigest.isEmpty())
     
    32383278    bool fSupported = false;
    32393279#endif
    3240     unconst(this)->m_i3DAvailable = fSupported;
     3280    m_i3DAvailable = fSupported;
    32413281    return fSupported;
    32423282}
     
    32983338    }
    32993339    /* Translate value into megabytes with rounding to highest side: */
    3300     quint64 uNeedMBytes = uNeedBits % (8 * _1M) ? uNeedBits / (8 * _1M) + 1 :
    3301                           uNeedBits / (8 * _1M) /* convert to megabytes */;
     3340    quint64 uNeedMBytes = uNeedBits % (8 * _1M)
     3341                        ? uNeedBits / (8 * _1M) + 1
     3342                        : uNeedBits / (8 * _1M) /* convert to megabytes */;
    33023343
    33033344    if (strGuestOSTypeId.startsWith("Windows"))
    33043345    {
    3305        /* Windows guests need offscreen VRAM too for graphics acceleration features: */
     3346        /* Windows guests need offscreen VRAM too for graphics acceleration features: */
    33063347#ifdef VBOX_WITH_CRHGSMI
    3307        if (isWddmCompatibleOsType(strGuestOSTypeId))
    3308        {
    3309            /* WDDM mode, there are two surfaces for each screen: shadow & primary: */
    3310            uNeedMBytes *= 3;
    3311        }
    3312        else
     3348        if (isWddmCompatibleOsType(strGuestOSTypeId))
     3349        {
     3350            /* WDDM mode, there are two surfaces for each screen: shadow & primary: */
     3351            uNeedMBytes *= 3;
     3352        }
     3353        else
    33133354#endif /* VBOX_WITH_CRHGSMI */
    3314        {
    3315            uNeedMBytes *= 2;
    3316        }
     3355        {
     3356            uNeedMBytes *= 2;
     3357        }
    33173358    }
    33183359
     
    33933434
    33943435/* static */
    3395 QPixmap VBoxGlobal::joinPixmaps (const QPixmap &pixmap1, const QPixmap &pixmap2)
     3436QPixmap VBoxGlobal::joinPixmaps(const QPixmap &pixmap1, const QPixmap &pixmap2)
    33963437{
    33973438    if (pixmap1.isNull())
     
    34003441        return pixmap1;
    34013442
    3402     QPixmap result (pixmap1.width() + pixmap2.width() + 2,
    3403                     qMax (pixmap1.height(), pixmap2.height()));
    3404     result.fill (Qt::transparent);
    3405 
    3406     QPainter painter (&result);
    3407     painter.drawPixmap (0, 0, pixmap1);
    3408     painter.drawPixmap (pixmap1.width() + 2, result.height() - pixmap2.height(), pixmap2);
     3443    QPixmap result(pixmap1.width() + pixmap2.width() + 2,
     3444                   qMax(pixmap1.height(), pixmap2.height()));
     3445    result.fill(Qt::transparent);
     3446
     3447    QPainter painter(&result);
     3448    painter.drawPixmap(0, 0, pixmap1);
     3449    painter.drawPixmap(pixmap1.width() + 2, result.height() - pixmap2.height(), pixmap2);
    34093450    painter.end();
    34103451
     
    34123453}
    34133454
    3414 bool VBoxGlobal::openURL (const QString &strUrl)
     3455bool VBoxGlobal::openURL(const QString &strUrl) const
    34153456{
    34163457    /** Service event. */
    34173458    class ServiceEvent : public QEvent
    34183459    {
    3419         public:
    3420 
    3421             /** Constructs service event on th basis of passed @a fResult. */
    3422             ServiceEvent (bool fResult) : QEvent (QEvent::User), m_fResult (fResult) {}
    3423 
    3424             /** Returns the result which event brings. */
    3425             bool result() const { return m_fResult; }
    3426 
    3427         private:
    3428 
    3429             /** Holds the result which event brings. */
    3430             bool m_fResult;
     3460    public:
     3461
     3462        /** Constructs service event on th basis of passed @a fResult. */
     3463        ServiceEvent(bool fResult)
     3464            : QEvent(QEvent::User)
     3465            , m_fResult(fResult)
     3466        {}
     3467
     3468        /** Returns the result which event brings. */
     3469        bool result() const { return m_fResult; }
     3470
     3471    private:
     3472
     3473        /** Holds the result which event brings. */
     3474        bool m_fResult;
    34313475    };
    34323476
     
    34343478    class ServiceClient : public QEventLoop
    34353479    {
    3436         public:
    3437 
    3438             /** Constructs service client on the basis of passed @a fResult. */
    3439             ServiceClient() : m_fResult (false) {}
    3440 
    3441             /** Returns the result which event brings. */
    3442             bool result() const { return m_fResult; }
    3443 
    3444         private:
    3445 
    3446             /** Handles any Qt @a pEvent. */
    3447             bool event (QEvent *pEvent)
     3480    public:
     3481
     3482        /** Constructs service client on the basis of passed @a fResult. */
     3483        ServiceClient()
     3484            : m_fResult(false)
     3485        {}
     3486
     3487        /** Returns the result which event brings. */
     3488        bool result() const { return m_fResult; }
     3489
     3490    private:
     3491
     3492        /** Handles any Qt @a pEvent. */
     3493        bool event(QEvent *pEvent)
     3494        {
     3495            /* Handle service event: */
     3496            if (pEvent->type() == QEvent::User)
    34483497            {
    3449                 /* Handle service event: */
    3450                 if (pEvent->type() == QEvent::User)
    3451                 {
    3452                     ServiceEvent *pServiceEvent = static_cast <ServiceEvent*> (pEvent);
    3453                     m_fResult = pServiceEvent->result();
    3454                     pServiceEvent->accept();
    3455                     quit();
    3456                     return true;
    3457                 }
    3458                 return false;
     3498                ServiceEvent *pServiceEvent = static_cast<ServiceEvent*>(pEvent);
     3499                m_fResult = pServiceEvent->result();
     3500                pServiceEvent->accept();
     3501                quit();
     3502                return true;
    34593503            }
    3460 
    3461             bool m_fResult;
     3504            return false;
     3505        }
     3506
     3507        bool m_fResult;
    34623508    };
    34633509
     
    34653511    class ServiceServer : public QThread
    34663512    {
    3467         public:
    3468 
    3469             /** Constructs service server on the basis of passed @a client and @a strUrl. */
    3470             ServiceServer (ServiceClient &client, const QString &strUrl)
    3471                 : m_client (client), m_strUrl (strUrl) {}
    3472 
    3473         private:
    3474 
    3475             /** Executes thread task. */
    3476             void run()
    3477             {
    3478                 QApplication::postEvent (&m_client, new ServiceEvent (QDesktopServices::openUrl (m_strUrl)));
    3479             }
    3480 
    3481             /** Holds the client reference. */
    3482             ServiceClient &m_client;
    3483             /** Holds the URL to be processed. */
    3484             const QString &m_strUrl;
     3513    public:
     3514
     3515        /** Constructs service server on the basis of passed @a client and @a strUrl. */
     3516        ServiceServer(ServiceClient &client, const QString &strUrl)
     3517            : m_client(client), m_strUrl(strUrl) {}
     3518
     3519    private:
     3520
     3521        /** Executes thread task. */
     3522        void run()
     3523        {
     3524            QApplication::postEvent(&m_client, new ServiceEvent(QDesktopServices::openUrl(m_strUrl)));
     3525        }
     3526
     3527        /** Holds the client reference. */
     3528        ServiceClient &m_client;
     3529        /** Holds the URL to be processed. */
     3530        const QString &m_strUrl;
    34853531    };
    34863532
    3487     /* Create/start client & server: */
     3533    /* Create client & server: */
    34883534    ServiceClient client;
    3489     ServiceServer server (client, strUrl);
     3535    ServiceServer server(client, strUrl);
    34903536    server.start();
    34913537    client.exec();
     
    34963542
    34973543    if (!fResult)
    3498         msgCenter().cannotOpenURL (strUrl);
     3544        msgCenter().cannotOpenURL(strUrl);
    34993545
    35003546    return fResult;
     
    35093555}
    35103556
    3511 bool VBoxGlobal::eventFilter (QObject *pObject, QEvent *pEvent)
     3557bool VBoxGlobal::eventFilter(QObject *pObject, QEvent *pEvent)
    35123558{
    35133559    /** @todo Just use the QIWithRetranslateUI3 template wrapper. */
    35143560
    3515     if (pEvent->type() == QEvent::LanguageChange &&
    3516         pObject->isWidgetType() &&
    3517         static_cast <QWidget *> (pObject)->isTopLevel())
     3561    if (   pEvent->type() == QEvent::LanguageChange
     3562        && pObject->isWidgetType()
     3563        && static_cast<QWidget*>(pObject)->isTopLevel())
    35183564    {
    35193565        /* Catch the language change event before any other widget gets it in
     
    35303576
    35313577    /* Call to base-class: */
    3532     return QObject::eventFilter (pObject, pEvent);
     3578    return QObject::eventFilter(pObject, pEvent);
    35333579}
    35343580
    35353581void VBoxGlobal::retranslateUi()
    35363582{
    3537     m_strUserDefinedPortName = tr ("User-defined", "serial port");
    3538 
    3539     m_pixWarning = UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_MessageBoxWarning).pixmap (16, 16);
    3540     Assert (!m_pixWarning.isNull());
    3541 
    3542     m_pixError = UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_MessageBoxCritical).pixmap (16, 16);
    3543     Assert (!m_pixError.isNull());
     3583    s_strUserDefinedPortName = tr("User-defined", "serial port");
     3584
     3585    m_pixWarning = UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_MessageBoxWarning).pixmap(16, 16);
     3586    Assert(!m_pixWarning.isNull());
     3587
     3588    m_pixError = UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_MessageBoxCritical).pixmap(16, 16);
     3589    Assert(!m_pixError.isNull());
    35443590
    35453591    /* Re-enumerate uimedium since they contain some translations too: */
     
    35523598    // we keep a table of them, which must be updated when the language is changed.
    35533599    UINativeHotKey::retranslateKeyNames();
    3554 #endif /* VBOX_WS_X11 */
     3600#endif
    35553601}
    35563602
     
    35863632
    35873633    HRESULT rc = COMBase::InitializeCOM(true);
    3588     if (FAILED (rc))
     3634    if (FAILED(rc))
    35893635    {
    35903636#ifdef VBOX_WITH_XPCOM
     
    36443690    QString sLanguageId = gEDataManager->languageId();
    36453691    if (!sLanguageId.isNull())
    3646         loadLanguage (sLanguageId);
     3692        loadLanguage(sLanguageId);
    36473693
    36483694    retranslateUi();
     
    36513697            this, &VBoxGlobal::sltGUILanguageChange);
    36523698
    3653     qApp->installEventFilter (this);
     3699    qApp->installEventFilter(this);
    36543700
    36553701    /* process command line */
     
    36733719    initDebuggerVar(&m_fDbgAutoShow, "VBOX_GUI_DBG_AUTO_SHOW", GUI_Dbg_AutoShow, false);
    36743720    m_fDbgAutoShowCommandLine = m_fDbgAutoShowStatistics = m_fDbgAutoShow;
    3675     m_enmLaunchRunning = LaunchRunning_Default;
    36763721#endif
    36773722
     
    36913736         * options to start a VM in main.cpp and hardenedmain.cpp exactly,
    36923737         * otherwise there will be weird error messages. */
    3693         if (   !::strcmp (arg, "--startvm")
    3694             || !::strcmp (arg, "-startvm"))
     3738        if (   !::strcmp(arg, "--startvm")
     3739            || !::strcmp(arg, "-startvm"))
    36953740        {
    36963741            if (++i < argc)
     
    37003745            }
    37013746        }
    3702         else if (!::strcmp (arg, "-separate") || !::strcmp (arg, "--separate"))
     3747        else if (!::strcmp(arg, "-separate") || !::strcmp(arg, "--separate"))
    37033748        {
    37043749            fSeparateProcess = true;
     
    37213766            visualStateType = UIVisualStateType_Scale;
    37223767        /* Passwords: */
    3723         else if (!::strcmp (arg, "--settingspw"))
     3768        else if (!::strcmp(arg, "--settingspw"))
    37243769        {
    37253770            if (++i < argc)
     
    37293774            }
    37303775        }
    3731         else if (!::strcmp (arg, "--settingspwfile"))
     3776        else if (!::strcmp(arg, "--settingspwfile"))
    37323777        {
    37333778            if (++i < argc)
     
    37653810        }
    37663811        /* Misc options: */
    3767         else if (!::strcmp (arg, "-comment") || !::strcmp (arg, "--comment"))
     3812        else if (!::strcmp(arg, "-comment") || !::strcmp(arg, "--comment"))
    37683813            ++i;
    37693814        else if (!::strcmp(arg, "--no-startvm-errormsgbox"))
     
    38063851#ifdef VBOX_WITH_DEBUGGER_GUI
    38073852        /* Debugger/Debugging options: */
    3808         else if (!::strcmp(arg, "-dbg") || !::strcmp (arg, "--dbg"))
     3853        else if (!::strcmp(arg, "-dbg") || !::strcmp(arg, "--dbg"))
    38093854            setDebuggerVar(&m_fDbgEnabled, true);
    3810         else if (!::strcmp( arg, "-debug") || !::strcmp (arg, "--debug"))
     3855        else if (!::strcmp( arg, "-debug") || !::strcmp(arg, "--debug"))
    38113856        {
    38123857            setDebuggerVar(&m_fDbgEnabled, true);
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h

    r72626 r72628  
    6161class SHARED_LIBRARY_STUFF VBoxGlobal : public QObject
    6262{
    63     Q_OBJECT
     63    Q_OBJECT;
    6464
    6565signals:
     
    144144     * @{ */
    145145        /** Returns whether VBoxGlobal cleanup is in progress. */
    146         bool isCleaningUp() { return s_fCleaningUp; }
     146        static bool isCleaningUp() { return s_fCleaningUp; }
    147147
    148148        /** Returns Qt runtime version string. */
     
    156156
    157157        /** Returns whether VBoxGlobal instance is properly initialized. */
    158         bool isValid() { return m_fValid; }
     158        bool isValid() const { return m_fValid; }
    159159
    160160        /** Returns VBox version string. */
     
    170170        /** Mac OS X: Returns #MacOSXRelease determined during VBoxGlobal prepare routine. */
    171171        MacOSXRelease osRelease() const { return m_enmMacOSVersion; }
    172 #endif /* VBOX_WS_MAC */
     172#endif
    173173
    174174#ifdef VBOX_WS_X11
     
    177177        /** X11: Returns the type of the Window Manager we are running under. */
    178178        X11WMType typeOfWindowManager() const { return m_enmWindowManagerType; }
    179 #endif /* VBOX_WS_X11 */
     179#endif
    180180
    181181        /** Returns whether branding is active. */
    182         bool brandingIsActive (bool fForce = false);
     182        bool brandingIsActive(bool fForce = false);
    183183        /** Returns value for certain branding @a strKey from custom.ini file. */
    184         QString brandingGetKey (QString strKey);
     184        QString brandingGetKey(QString strKey);
    185185    /** @} */
    186186
     
    229229        bool isSupervisorCodeExecedRecompiled() const { return m_fRecompileSupervisor; }
    230230        /** Returns the --recompile-user option value. */
    231         bool isUserCodeExecedRecompiled()       const { return m_fRecompileUser; }
     231        bool isUserCodeExecedRecompiled() const { return m_fRecompileUser; }
    232232        /** Returns the --execute-all-in-iem option value. */
    233         bool areWeToExecuteAllInIem()           const { return m_fExecuteAllInIem; }
     233        bool areWeToExecuteAllInIem() const { return m_fExecuteAllInIem; }
    234234        /** Returns whether --warp-factor option value is equal to 100. */
    235235        bool isDefaultWarpPct() const { return m_uWarpPct == 100; }
    236236        /** Returns the --warp-factor option value. */
    237         uint32_t getWarpPct()       const { return m_uWarpPct; }
     237        uint32_t getWarpPct() const { return m_uWarpPct; }
    238238
    239239#ifdef VBOX_WITH_DEBUGGER_GUI
     
    249249        /** VBoxDbg module handle. */
    250250        RTLDRMOD getDebuggerModule() const { return m_hVBoxDbg; }
    251 #endif /* VBOX_WITH_DEBUGGER_GUI */
     251#endif
    252252
    253253        /** Returns whether VM should start paused. */
     
    265265     * @{ */
    266266        /** Native language name of the currently installed translation. */
    267         QString languageName() const;
     267        static QString languageName();
    268268        /** Native language country name of the currently installed translation. */
    269         QString languageCountry() const;
     269        static QString languageCountry();
    270270        /** Language name of the currently installed translation, in English. */
    271         QString languageNameEnglish() const;
     271        static QString languageNameEnglish();
    272272        /** Language country name of the currently installed translation, in English. */
    273         QString languageCountryEnglish() const;
     273        static QString languageCountryEnglish();
    274274        /** Comma-separated list of authors of the currently installed translation. */
    275         QString languageTranslators() const;
     275        static QString languageTranslators();
    276276
    277277        /** Returns VBox language sub-directory. */
     
    294294          * @param  strLangId  Brings the language ID in in form of xx_YY.
    295295          *                    QString() means the system default language. */
    296         static void loadLanguage (const QString &strLangId = QString());
     296        static void loadLanguage(const QString &strLangId = QString());
    297297
    298298        /** Returns tr("%n year(s)"). */
     
    314314        static QString sizeRegexp();
    315315        /** Parses the given size strText and returns the size value in bytes. */
    316         static quint64 parseSize (const QString &strText);
     316        static quint64 parseSize(const QString &strText);
    317317        /** Formats the given @a uSize value in bytes to a human readable string.
    318318          * @param  uSize     Brings the size value in bytes.
    319319          * @param  enmMode   Brings the conversion mode.
    320320          * @param  cDecimal  Brings the number of decimal digits in result. */
    321         static QString formatSize (quint64 uSize, uint cDecimal = 2, FormatSize enmMode = FormatSize_Round);
     321        static QString formatSize(quint64 uSize, uint cDecimal = 2, FormatSize enmMode = FormatSize_Round);
    322322
    323323        /** Returns full medium-format name for the given @a strBaseMediumFormatName. */
     
    325325
    326326        /** Returns the list of the standard COM port names (i.e. "COMx"). */
    327         QStringList COMPortNames() const;
     327        static QStringList COMPortNames();
    328328        /** Returns the name of the standard COM port corresponding to the given parameters,
    329329          * or "User-defined" (which is also returned when both @a uIRQ and @a uIOBase are 0). */
    330         QString toCOMPortName (ulong uIRQ, ulong uIOBase) const;
     330        static QString toCOMPortName(ulong uIRQ, ulong uIOBase);
    331331        /** Returns port parameters corresponding to the given standard COM name.
    332332          * Returns @c true on success, or @c false if the given port name is not one of the standard names (i.e. "COMx"). */
    333         bool toCOMPortNumbers (const QString &strName, ulong &uIRQ, ulong &uIOBase) const;
     333        static bool toCOMPortNumbers(const QString &strName, ulong &uIRQ, ulong &uIOBase);
    334334        /** Returns the list of the standard LPT port names (i.e. "LPTx"). */
    335         QStringList LPTPortNames() const;
     335        static QStringList LPTPortNames();
    336336        /** Returns the name of the standard LPT port corresponding to the given parameters,
    337337          * or "User-defined" (which is also returned when both @a uIRQ and @a uIOBase are 0). */
    338         QString toLPTPortName (ulong uIRQ, ulong uIOBase) const;
     338        static QString toLPTPortName(ulong uIRQ, ulong uIOBase);
    339339        /** Returns port parameters corresponding to the given standard LPT name.
    340340          * Returns @c true on success, or @c false if the given port name is not one of the standard names (i.e. "LPTx"). */
    341         bool toLPTPortNumbers (const QString &strName, ulong &uIRQ, ulong &uIOBase) const;
     341        static bool toLPTPortNumbers(const QString &strName, ulong &uIRQ, ulong &uIOBase);
    342342
    343343        /** Reformats the input @a strText to highlight it. */
    344         static QString highlight (const QString &strText, bool fToolTip = false);
     344        static QString highlight(QString strText, bool fToolTip = false);
    345345        /** Reformats the input @a strText to emphasize it. */
    346         static QString emphasize (const QString &strText);
     346        static QString emphasize(QString strText);
    347347        /** Removes the first occurrence of the accelerator mark (the ampersand symbol) from the given @a strText. */
    348         static QString removeAccelMark (const QString &strText);
     348        static QString removeAccelMark(QString strText);
    349349        /** Inserts a passed @a strKey into action @a strText. */
    350350        static QString insertKeyToActionText (const QString &strText, const QString &strKey);
     
    354354     * @{ */
    355355        /** Returns full help file name. */
    356         QString helpFile() const;
     356        static QString helpFile();
    357357
    358358        /** Returns documents path. */
     
    363363     * @{ */
    364364        /** Search position for @a rectangle to make sure it is fully contained @a boundRegion. */
    365         static QRect normalizeGeometry (const QRect &rectangle, const QRegion &boundRegion,
    366                                         bool fCanResize = true);
     365        static QRect normalizeGeometry(const QRect &rectangle, const QRegion &boundRegion,
     366                                       bool fCanResize = true);
    367367        /** Ensures that the given rectangle @a rectangle is fully contained within the region @a boundRegion. */
    368         static QRect getNormalized (const QRect &rectangle, const QRegion &boundRegion,
    369                                     bool fCanResize = true);
     368        static QRect getNormalized(const QRect &rectangle, const QRegion &boundRegion,
     369                                   bool fCanResize = true);
    370370        /** Returns the flipped (transposed) @a region. */
    371         static QRegion flip (const QRegion &region);
     371        static QRegion flip(const QRegion &region);
    372372
    373373        /** Aligns the center of @a pWidget with the center of @a pRelative. */
    374         static void centerWidget (QWidget *pWidget, QWidget *pRelative,
    375                                   bool fCanResize = true);
     374        static void centerWidget(QWidget *pWidget, QWidget *pRelative, bool fCanResize = true);
    376375
    377376        /** Assigns top-level @a pWidget geometry passed as QRect coordinates.
     
    383382
    384383        /** Activates the specified window with given @a wId. Can @a fSwitchDesktop if requested. */
    385         static bool activateWindow (WId wId, bool fSwitchDesktop = true);
     384        static bool activateWindow(WId wId, bool fSwitchDesktop = true);
    386385
    387386#ifdef VBOX_WS_X11
     
    434433        /** Returns the list of few guest OS types, queried from
    435434          * IVirtualBox corresponding to every family id. */
    436         QList <CGuestOSType> vmGuestOSFamilyList() const;
     435        QList<CGuestOSType> vmGuestOSFamilyList() const;
    437436        /** Returns the list of all guest OS types, queried from
    438437          * IVirtualBox corresponding to passed family id. */
    439         QList <CGuestOSType> vmGuestOSTypeList (const QString &strFamilyId) const;
     438        QList<CGuestOSType> vmGuestOSTypeList(const QString &strFamilyId) const;
    440439
    441440        /** Returns the guest OS type object corresponding to the given type id of list
    442441          * containing OS types related to OS family determined by family id attribute.
    443442          * If the index is invalid a null object is returned. */
    444         CGuestOSType vmGuestOSType (const QString &strTypeId,
    445                                     const QString &strFamilyId = QString()) const;
     443        CGuestOSType vmGuestOSType(const QString &strTypeId, const QString &strFamilyId = QString()) const;
    446444        /** Returns the description corresponding to the given guest OS type id. */
    447         QString vmGuestOSTypeDescription (const QString &strTypeId) const;
     445        QString vmGuestOSTypeDescription(const QString &strTypeId) const;
    448446
    449447        /** Returns whether guest type with passed @a strOSTypeId is one of DOS types. */
    450         static bool isDOSType (const QString &strOSTypeId);
     448        static bool isDOSType(const QString &strOSTypeId);
    451449    /** @} */
    452450
     
    454452     * @{ */
    455453        /** Switches to certain @a comMachine. */
    456         bool switchToMachine(CMachine &comMachine);
     454        static bool switchToMachine(CMachine &comMachine);
    457455        /** Launches certain @a comMachine in specified @a enmLaunchMode. */
    458456        bool launchMachine(CMachine &comMachine, LaunchMode enmLaunchMode = LaunchMode_Default);
     
    467465     * @{ */
    468466        /** Returns medium formats which are currently supported by VirtualBox for the given @a enmDeviceType. */
    469         static QList <QPair <QString, QString> > MediumBackends(KDeviceType enmDeviceType);
     467        QList<QPair<QString, QString> > MediumBackends(KDeviceType enmDeviceType) const;
    470468        /** Returns which hard disk formats are currently supported by VirtualBox. */
    471         static QList <QPair <QString, QString> > HDDBackends();
     469        QList<QPair<QString, QString> > HDDBackends() const;
    472470        /** Returns which optical disk formats are currently supported by VirtualBox. */
    473         static QList <QPair <QString, QString> > DVDBackends();
     471        QList<QPair<QString, QString> > DVDBackends() const;
    474472        /** Returns which floppy disk formats are currently supported by VirtualBox. */
    475         static QList <QPair <QString, QString> > FloppyBackends();
     473        QList<QPair<QString, QString> > FloppyBackends() const;
    476474
    477475        /** Starts medium enumeration. */
     
    532530        /** Verifies that USB drivers are properly configured on Linux. */
    533531        static void checkForWrongUSBMounted();
    534 #endif /* RT_OS_LINUX */
     532#endif
    535533
    536534        /** Generates details for passed USB @a comDevice. */
    537         QString details(const CUSBDevice &comDevice) const;
     535        static QString details(const CUSBDevice &comDevice);
    538536        /** Generates tool-tip for passed USB @a comDevice. */
    539         QString toolTip(const CUSBDevice &comDevice) const;
     537        static QString toolTip(const CUSBDevice &comDevice);
    540538        /** Generates tool-tip for passed USB @a comFilter. */
    541         QString toolTip(const CUSBDeviceFilter &comFilter) const;
     539        static QString toolTip(const CUSBDeviceFilter &comFilter);
    542540        /** Generates tool-tip for passed USB @a comWebcam. */
    543         QString toolTip(const CHostVideoInputDevice &comWebcam) const;
     541        static QString toolTip(const CHostVideoInputDevice &comWebcam);
    544542    /** @} */
    545543
     
    551549          * @param  pParent          Brings the parent dialog reference.
    552550          * @param  pstrExtPackName  Brings the extension pack name. */
    553         static void doExtPackInstallation(QString const &strFilePath,
    554                                           QString const &strDigest,
    555                                           QWidget *pParent,
    556                                           QString *pstrExtPackName);
     551        void doExtPackInstallation(QString const &strFilePath,
     552                                   QString const &strDigest,
     553                                   QWidget *pParent,
     554                                   QString *pstrExtPackName) const;
    557555    /** @} */
    558556
     
    567565        /** Returns whether guest OS type with passed @a strGuestOSTypeId is WDDM compatible. */
    568566        static bool isWddmCompatibleOsType(const QString &strGuestOSTypeId);
    569 #endif /* VBOX_WITH_CRHGSMI */
     567#endif
    570568        /** Returns the required video memory in bytes for the current desktop
    571569          * resolution at maximum possible screen depth in bpp. */
     
    576574     * @{ */
    577575        /** Returns the thread-pool instance. */
    578         UIThreadPool* threadPool() const { return m_pThreadPool; }
     576        UIThreadPool *threadPool() const { return m_pThreadPool; }
    579577    /** @} */
    580578
     
    608606
    609607        /** Joins two pixmaps horizontally with 2px space between them and returns the result. */
    610         static QPixmap joinPixmaps (const QPixmap &pixmap1, const QPixmap &pixmap2);
     608        static QPixmap joinPixmaps(const QPixmap &pixmap1, const QPixmap &pixmap2);
    611609    /** @} */
    612610
     
    616614     * @{ */
    617615        /** Opens the specified URL using OS/Desktop capabilities. */
    618         bool openURL (const QString &strURL);
     616        bool openURL(const QString &strURL) const;
    619617    /** @} */
    620618
     
    628626
    629627    /** Preprocesses any Qt @a pEvent for passed @a pObject. */
    630     bool eventFilter (QObject *pObject, QEvent *pEvent);
     628    virtual bool eventFilter(QObject *pObject, QEvent *pEvent) /* override */;
    631629
    632630    /** Handles translation event. */
    633     void retranslateUi();
     631    virtual void retranslateUi() /* override */;
    634632
    635633protected slots:
     
    705703     * @{ */
    706704        /** Holds whether VBoxGlobal cleanup is in progress. */
    707         static bool        s_fCleaningUp;
     705        static bool  s_fCleaningUp;
    708706
    709707        /** Holds the currently loaded language ID. */
    710         static QString     s_strLoadedLanguageId;
     708        static QString  s_strLoadedLanguageId;
     709
     710        /** Holds the tr("User Defined") port name. */
     711        static QString  s_strUserDefinedPortName;
    711712
    712713#ifdef VBOX_GUI_WITH_SHARED_LIBRARY
    713714        /** Holds the UI type. */
    714         UIType m_enmType;
     715        UIType  m_enmType;
    715716#endif
    716717
    717718        /** Holds whether VBoxGlobal instance is properly initialized. */
    718         bool m_fValid;
     719        bool  m_fValid;
    719720
    720721#ifdef VBOX_WS_MAC
    721722        /** Mac OS X: Holds the #MacOSXRelease determined using <i>uname</i> call. */
    722         MacOSXRelease m_enmMacOSVersion;
    723 #endif /* VBOX_WS_MAC */
     723        MacOSXRelease  m_enmMacOSVersion;
     724#endif
    724725
    725726#ifdef VBOX_WS_X11
    726727        /** X11: Holds the #X11WMType of the Window Manager we are running under. */
    727         X11WMType m_enmWindowManagerType;
     728        X11WMType  m_enmWindowManagerType;
    728729        /** X11: Holds whether the Window Manager we are running at is composition one. */
    729         bool m_fCompositingManagerRunning;
    730 #endif /* VBOX_WS_X11 */
     730        bool       m_fCompositingManagerRunning;
     731#endif
    731732
    732733        /** Holds the VBox branding config file path. */
    733         QString m_strBrandingConfigFilePath;
     734        QString  m_strBrandingConfigFilePath;
    734735    /** @} */
    735736
     
    737738     * @{ */
    738739        /** Holds the URL arguments list. */
    739         QList<QUrl> m_listArgUrls;
     740        QList<QUrl>  m_listArgUrls;
    740741
    741742        /** Holds the --startvm option value (managed VM id). */
    742         QString m_strManagedVMId;
     743        QString  m_strManagedVMId;
    743744        /** Holds the --separate option value (whether GUI process is separate from VM process). */
    744         bool m_fSeparateProcess;
     745        bool     m_fSeparateProcess;
    745746        /** Holds the --no-startvm-errormsgbox option value (whether startup VM errors are disabled). */
    746         bool m_fShowStartVMErrors;
     747        bool     m_fShowStartVMErrors;
    747748
    748749        /** Holds the --aggressive-caching / --no-aggressive-caching option value (whether medium-enumeration is required). */
    749         bool m_fAgressiveCaching;
     750        bool  m_fAgressiveCaching;
    750751
    751752        /** Holds the --restore-current option value. */
    752         bool m_fRestoreCurrentSnapshot;
     753        bool  m_fRestoreCurrentSnapshot;
    753754
    754755        /** Holds the --fda option value (floppy image). */
    755         QString m_strFloppyImage;
     756        QString  m_strFloppyImage;
    756757        /** Holds the --dvd | --cdrom option value (DVD image). */
    757         QString m_strDvdImage;
     758        QString  m_strDvdImage;
    758759
    759760        /** Holds the --disable-patm option value. */
    760         bool m_fDisablePatm;
     761        bool      m_fDisablePatm;
    761762        /** Holds the --disable-csam option value. */
    762         bool m_fDisableCsam;
     763        bool      m_fDisableCsam;
    763764        /** Holds the --recompile-supervisor option value. */
    764         bool m_fRecompileSupervisor;
     765        bool      m_fRecompileSupervisor;
    765766        /** Holds the --recompile-user option value. */
    766         bool m_fRecompileUser;
     767        bool      m_fRecompileUser;
    767768        /** Holds the --execute-all-in-iem option value. */
    768         bool m_fExecuteAllInIem;
     769        bool      m_fExecuteAllInIem;
    769770        /** Holds the --warp-factor option value. */
    770         uint32_t m_uWarpPct;
     771        uint32_t  m_uWarpPct;
    771772
    772773#ifdef VBOX_WITH_DEBUGGER_GUI
    773774        /** Holds whether the debugger should be accessible. */
    774         mutable int m_fDbgEnabled;
     775        mutable int  m_fDbgEnabled;
    775776        /** Holds whether to show the debugger automatically with the console. */
    776         mutable int m_fDbgAutoShow;
     777        mutable int  m_fDbgAutoShow;
    777778        /** Holds whether to show the command line window when m_fDbgAutoShow is set. */
    778         mutable int m_fDbgAutoShowCommandLine;
     779        mutable int  m_fDbgAutoShowCommandLine;
    779780        /** Holds whether to show the statistics window when m_fDbgAutoShow is set. */
    780         mutable int m_fDbgAutoShowStatistics;
     781        mutable int  m_fDbgAutoShowStatistics;
    781782        /** VBoxDbg module handle. */
    782         RTLDRMOD m_hVBoxDbg;
     783        RTLDRMOD     m_hVBoxDbg;
    783784
    784785        /** Holds whether --start-running, --start-paused or nothing was given. */
    785         enum LaunchRunning m_enmLaunchRunning;
     786        enum LaunchRunning  m_enmLaunchRunning;
    786787#endif
    787788
    788789        /** Holds the --settingspw option value. */
    789         char m_astrSettingsPw[256];
     790        char  m_astrSettingsPw[256];
    790791        /** Holds the --settingspwfile option value. */
    791         bool m_fSettingsPwSet;
     792        bool  m_fSettingsPwSet;
    792793
    793794#ifdef VBOX_GUI_WITH_PIDFILE
     
    795796        QString m_strPidFile;
    796797#endif
    797 
    798         /** @todo remove */
    799         QString m_strUserDefinedPortName;
    800798    /** @} */
    801799
     
    803801     * @{ */
    804802        /** Holds the COM cleanup protection token. */
    805         QReadWriteLock m_comCleanupProtectionToken;
     803        QReadWriteLock  m_comCleanupProtectionToken;
    806804
    807805        /** Holds the instance of VirtualBox client wrapper. */
    808         CVirtualBoxClient m_comVBoxClient;
     806        CVirtualBoxClient  m_comVBoxClient;
    809807        /** Holds the copy of VirtualBox object wrapper. */
    810         CVirtualBox m_comVBox;
     808        CVirtualBox        m_comVBox;
    811809        /** Holds the copy of VirtualBox host-object wrapper. */
    812         CHost m_comHost;
     810        CHost              m_comHost;
    813811        /** Holds the symbolic VirtualBox home-folder representation. */
    814         QString m_strHomeFolder;
     812        QString            m_strHomeFolder;
    815813
    816814        /** Holds whether acquired COM wrappers are currently valid. */
    817         bool m_fWrappersValid;
     815        bool  m_fWrappersValid;
    818816        /** Holds whether VBoxSVC is currently available. */
    819         bool m_fVBoxSVCAvailable;
     817        bool  m_fVBoxSVCAvailable;
    820818
    821819        /** Holds the guest OS family IDs. */
    822         QList<QString> m_guestOSFamilyIDs;
     820        QList<QString>               m_guestOSFamilyIDs;
    823821        /** Holds the guest OS types for each family ID. */
    824         QList<QList<CGuestOSType> > m_guestOSTypes;
     822        QList<QList<CGuestOSType> >  m_guestOSTypes;
    825823    /** @} */
    826824
     
    828826     * @{ */
    829827        /** Holds whether 3D is available. */
    830         int m_i3DAvailable;
     828        mutable int m_i3DAvailable;
    831829    /** @} */
    832830
     
    843841
    844842        /** Holds the global file icon provider instance. */
    845         QFileIconProvider m_fileIconProvider;
     843        QFileIconProvider  m_fileIconProvider;
    846844
    847845        /** Holds the warning pixmap. */
    848         QPixmap m_pixWarning;
     846        QPixmap  m_pixWarning;
    849847        /** Holds the error pixmap. */
    850         QPixmap m_pixError;
     848        QPixmap  m_pixError;
    851849    /** @} */
    852850
     
    854852     * @{ */
    855853        /** Holds the medium enumerator cleanup protection token. */
    856         mutable QReadWriteLock m_meCleanupProtectionToken;
     854        mutable QReadWriteLock  m_meCleanupProtectionToken;
    857855
    858856        /** Holds the medium enumerator. */
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