VirtualBox

Changeset 66579 in vbox


Ignore:
Timestamp:
Apr 14, 2017 4:02:52 PM (7 years ago)
Author:
vboxsync
Message:

FE/Qt: Get rid of VBoxGlobalSettings: Moving GUI features handling into extra-data manager.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
10 edited

Legend:

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

    r66571 r66579  
    5151{
    5252    /* default settings */
    53     guiFeatures = QString::null;
    5453    languageId  = QString::null;
    5554    maxGuestRes = QString::null;
     
    6160VBoxGlobalSettingsData::VBoxGlobalSettingsData (const VBoxGlobalSettingsData &that)
    6261{
    63     guiFeatures = that.guiFeatures;
    6462    languageId  = that.languageId;
    6563    maxGuestRes = that.maxGuestRes;
     
    7674{
    7775    return this == &that ||
    78         (guiFeatures == that.guiFeatures &&
    79          languageId  == that.languageId &&
     76        (languageId  == that.languageId &&
    8077         maxGuestRes == that.maxGuestRes &&
    8178         remapScancodes == that.remapScancodes &&
     
    103100gPropertyMap[] =
    104101{
    105     { "GUI/Customizations",                        "guiFeatures",             "\\S+", true },
    106102    { "GUI/LanguageID",                            "languageId",              gVBoxLangIDRegExp, true },
    107103    { "GUI/MaxGuestResolution",                    "maxGuestRes",             "\\d*[1-9]\\d*,\\d*[1-9]\\d*|any|auto", true },
     
    110106    { "GUI/HostScreenSaverDisabled",               "hostScreenSaverDisabled", "true|false", true }
    111107};
    112 
    113 bool VBoxGlobalSettings::isFeatureActive (const char *aFeature) const
    114 {
    115     QStringList featureList = data()->guiFeatures.split (',');
    116     return featureList.contains (aFeature);
    117 }
    118108
    119109/**
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobalSettings.h

    r66571 r66579  
    3737private:
    3838
    39     QString guiFeatures;
    4039    QString languageId;
    4140    QString maxGuestRes;
     
    5251{
    5352    Q_OBJECT
    54     Q_PROPERTY (QString guiFeatures READ guiFeatures WRITE setGuiFeatures)
    5553    Q_PROPERTY (QString languageId READ languageId WRITE setLanguageId)
    5654    Q_PROPERTY (QString maxGuestRes READ maxGuestRes WRITE setMaxGuestRes)
     
    7169
    7270    // Properties
    73 
    74     QString guiFeatures() const { return data()->guiFeatures; }
    75     void setGuiFeatures (const QString &aFeatures)
    76     {
    77         mData()->guiFeatures = aFeatures;
    78     }
    79     bool isFeatureActive (const char*) const;
    8071
    8172    QString languageId() const { return data()->languageId; }
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h

    r65206 r66579  
    9090template<> bool canConvert<PreviewUpdateIntervalType>();
    9191template<> bool canConvert<EventHandlingType>();
     92template<> bool canConvert<GUIFeatureType>();
    9293template<> bool canConvert<GlobalSettingsPageType>();
    9394template<> bool canConvert<MachineSettingsPageType>();
     
    167168template<> PreviewUpdateIntervalType fromInternalInteger<PreviewUpdateIntervalType>(const int &iPreviewUpdateIntervalType);
    168169template<> EventHandlingType fromInternalString<EventHandlingType>(const QString &strEventHandlingType);
     170template<> QString toInternalString(const GUIFeatureType &guiFeatureType);
     171template<> GUIFeatureType fromInternalString<GUIFeatureType>(const QString &strGuiFeatureType);
    169172template<> QString toInternalString(const GlobalSettingsPageType &globalSettingsPageType);
    170173template<> GlobalSettingsPageType fromInternalString<GlobalSettingsPageType>(const QString &strGlobalSettingsPageType);
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp

    r65204 r66579  
    5757template<> bool canConvert<PreviewUpdateIntervalType>() { return true; }
    5858template<> bool canConvert<EventHandlingType>() { return true; }
     59template<> bool canConvert<GUIFeatureType>() { return true; }
    5960template<> bool canConvert<GlobalSettingsPageType>() { return true; }
    6061template<> bool canConvert<MachineSettingsPageType>() { return true; }
     
    11241125}
    11251126
     1127/* QString <= GUIFeatureType: */
     1128template<> QString toInternalString(const GUIFeatureType &guiFeatureType)
     1129{
     1130    QString strResult;
     1131    switch (guiFeatureType)
     1132    {
     1133        case GUIFeatureType_NoSelector:  strResult = "noSelector"; break;
     1134        case GUIFeatureType_NoMenuBar:   strResult = "noMenuBar"; break;
     1135        case GUIFeatureType_NoStatusBar: strResult = "noStatusBar"; break;
     1136        default:
     1137        {
     1138            AssertMsgFailed(("No text for GUI feature type=%d", guiFeatureType));
     1139            break;
     1140        }
     1141    }
     1142    return strResult;
     1143}
     1144
     1145/* GUIFeatureType <= QString: */
     1146template<> GUIFeatureType fromInternalString<GUIFeatureType>(const QString &strGuiFeatureType)
     1147{
     1148    /* Here we have some fancy stuff allowing us
     1149     * to search through the keys using 'case-insensitive' rule: */
     1150    QStringList keys;      QList<GUIFeatureType> values;
     1151    keys << "noSelector";  values << GUIFeatureType_NoSelector;
     1152    keys << "noMenuBar";   values << GUIFeatureType_NoMenuBar;
     1153    keys << "noStatusBar"; values << GUIFeatureType_NoStatusBar;
     1154    /* None type for unknown words: */
     1155    if (!keys.contains(strGuiFeatureType, Qt::CaseInsensitive))
     1156        return GUIFeatureType_None;
     1157    /* Corresponding type for known words: */
     1158    return values.at(keys.indexOf(QRegExp(strGuiFeatureType, Qt::CaseInsensitive)));
     1159}
     1160
    11261161/* QString <= GlobalSettingsPageType: */
    11271162template<> QString toInternalString(const GlobalSettingsPageType &globalSettingsPageType)
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp

    r66571 r66579  
    4545
    4646/* Settings: */
     47const char* UIExtraDataDefs::GUI_Customizations = "GUI/Customizations";
    4748const char* UIExtraDataDefs::GUI_RestrictedGlobalSettingsPages = "GUI/RestrictedGlobalSettingsPages";
    4849const char* UIExtraDataDefs::GUI_RestrictedMachineSettingsPages = "GUI/RestrictedMachineSettingsPages";
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h

    r66571 r66579  
    6565    /** @name Settings
    6666      * @{ */
     67        /** Holds GUI feature list. */
     68        extern const char* GUI_Customizations;
    6769        /** Holds restricted Global Settings pages. */
    6870        extern const char* GUI_RestrictedGlobalSettingsPages;
     
    500502};
    501503
     504/** Common UI: GUI feature types. */
     505enum GUIFeatureType
     506{
     507    GUIFeatureType_None        = 0,
     508    GUIFeatureType_NoSelector  = RT_BIT(0),
     509    GUIFeatureType_NoMenuBar   = RT_BIT(1),
     510    GUIFeatureType_NoStatusBar = RT_BIT(2),
     511    GUIFeatureType_All         = 0xFF
     512};
     513
    502514/** Common UI: Global settings page types. */
    503515enum GlobalSettingsPageType
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp

    r66571 r66579  
    22972297#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
    22982298
     2299bool UIExtraDataManager::guiFeatureEnabled(GUIFeatureType enmFeature)
     2300{
     2301    /* Acquire GUI feature list: */
     2302    GUIFeatureType enmFeatures = GUIFeatureType_None;
     2303    foreach (const QString &strValue, extraDataStringList(GUI_Customizations))
     2304        enmFeatures = static_cast<GUIFeatureType>(enmFeatures | gpConverter->fromInternalString<GUIFeatureType>(strValue));
     2305    /* Return whether the requested feature is enabled: */
     2306    return enmFeatures & enmFeature;
     2307}
     2308
    22992309QList<GlobalSettingsPageType> UIExtraDataManager::restrictedGlobalSettingsPages()
    23002310{
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h

    r66571 r66579  
    179179    /** @name Settings
    180180      * @{ */
     181        /** Returns whether GUI @a enmFeature is enabled. */
     182        bool guiFeatureEnabled(GUIFeatureType enmFeature);
     183
    181184        /** Returns restricted global settings pages. */
    182185        QList<GlobalSettingsPageType> restrictedGlobalSettingsPages();
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r66516 r66579  
    48214821void VBoxGlobal::showUI()
    48224822{
    4823     /* Load application settings: */
    4824     VBoxGlobalSettings appSettings = settings();
    4825 
    48264823    /* Show Selector UI: */
    48274824    if (!isVMConsoleProcess())
    48284825    {
    48294826        /* Make sure Selector UI is permitted, quit if not: */
    4830         if (appSettings.isFeatureActive("noSelector"))
     4827        if (gEDataManager->guiFeatureEnabled(GUIFeatureType_NoSelector))
    48314828        {
    48324829            msgCenter().cannotStartSelector();
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp

    r66571 r66579  
    13121312        /* Menu-bar options: */
    13131313        {
    1314             const bool fEnabledGlobally = !vboxGlobal().settings().isFeatureActive("noMenuBar");
     1314            const bool fEnabledGlobally = !gEDataManager->guiFeatureEnabled(GUIFeatureType_NoMenuBar);
    13151315            const bool fEnabledForMachine = gEDataManager->menuBarEnabled(strMachineID);
    13161316            const bool fEnabled = fEnabledGlobally && fEnabledForMachine;
     
    13261326        /* Status-bar options: */
    13271327        {
    1328             const bool fEnabledGlobally = !vboxGlobal().settings().isFeatureActive("noStatusBar");
     1328            const bool fEnabledGlobally = !gEDataManager->guiFeatureEnabled(GUIFeatureType_NoStatusBar);
    13291329            const bool fEnabledForMachine = gEDataManager->statusBarEnabled(strMachineID);
    13301330            const bool fEnabled = fEnabledGlobally && fEnabledForMachine;
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