VirtualBox

Changeset 75607 in vbox


Ignore:
Timestamp:
Nov 20, 2018 10:33:09 AM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9289: VirtualBox Manager / Details pane: A possibility to save changes in Details options.

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

Legend:

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

    r75525 r75607  
    29432943    const QString strFullKey = QString("%1/%2").arg(GUI_Details_Elements).arg(strElementType);
    29442944
    2945     /* Returns option list: */
     2945    /* Return option list: */
    29462946    return extraDataStringList(strFullKey);
     2947}
     2948
     2949void UIExtraDataManager::setVBoxManagerDetailsPaneElementOptions(DetailsElementType enmElementType, const QStringList &options)
     2950{
     2951    /* Compose full key from GUI_Details_Elements and enmElementType: */
     2952    QString strElementType = gpConverter->toInternalString(enmElementType);
     2953    AssertReturnVoid(!strElementType.isEmpty());
     2954    strElementType[0] = strElementType.at(0).toUpper();
     2955    const QString strFullKey = QString("%1/%2").arg(GUI_Details_Elements).arg(strElementType);
     2956
     2957    /* Store option list: */
     2958    setExtraDataStringList(strFullKey, options);
    29472959}
    29482960
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h

    r75525 r75607  
    349349        /** Returns VirtualBox Manager / Details pane options for certain @a enmElementType. */
    350350        QStringList vboxManagerDetailsPaneElementOptions(DetailsElementType enmElementType);
     351        /** Defines VirtualBox Manager / Details pane @a options for certain @a enmElementType. */
     352        void setVBoxManagerDetailsPaneElementOptions(DetailsElementType enmElementType, const QStringList &options);
    351353    /** @} */
    352354
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.cpp

    r75530 r75607  
    2626# include <QGraphicsView>
    2727# include <QMenu>
     28# include <QMetaEnum>
    2829
    2930/* GUI includes: */
     
    9798{
    9899    m_pRoot->buildGroup(items);
     100}
     101
     102void UIDetailsModel::setCategories(const QMap<DetailsElementType, bool> &categories)
     103{
     104    m_categories = categories;
     105    m_pRoot->rebuildGroup();
     106}
     107
     108void UIDetailsModel::setOptionsGeneral(UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral fOptionsGeneral)
     109{
     110    m_fOptionsGeneral = fOptionsGeneral;
     111    m_pRoot->rebuildGroup();
     112}
     113
     114void UIDetailsModel::setOptionsSystem(UIExtraDataMetaDefs::DetailsElementOptionTypeSystem fOptionsSystem)
     115{
     116    m_fOptionsSystem = fOptionsSystem;
     117    m_pRoot->rebuildGroup();
     118}
     119
     120void UIDetailsModel::setOptionsDisplay(UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay fOptionsDisplay)
     121{
     122    m_fOptionsDisplay = fOptionsDisplay;
     123    m_pRoot->rebuildGroup();
     124}
     125
     126void UIDetailsModel::setOptionsStorage(UIExtraDataMetaDefs::DetailsElementOptionTypeStorage fOptionsStorage)
     127{
     128    m_fOptionsStorage = fOptionsStorage;
     129    m_pRoot->rebuildGroup();
     130}
     131
     132void UIDetailsModel::setOptionsAudio(UIExtraDataMetaDefs::DetailsElementOptionTypeAudio fOptionsAudio)
     133{
     134    m_fOptionsAudio = fOptionsAudio;
     135    m_pRoot->rebuildGroup();
     136}
     137
     138void UIDetailsModel::setOptionsNetwork(UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork fOptionsNetwork)
     139{
     140    m_fOptionsNetwork = fOptionsNetwork;
     141    m_pRoot->rebuildGroup();
     142}
     143
     144void UIDetailsModel::setOptionsSerial(UIExtraDataMetaDefs::DetailsElementOptionTypeSerial fOptionsSerial)
     145{
     146    m_fOptionsSerial = fOptionsSerial;
     147    m_pRoot->rebuildGroup();
     148}
     149
     150void UIDetailsModel::setOptionsUsb(UIExtraDataMetaDefs::DetailsElementOptionTypeUsb fOptionsUsb)
     151{
     152    m_fOptionsUsb = fOptionsUsb;
     153    m_pRoot->rebuildGroup();
     154}
     155
     156void UIDetailsModel::setOptionsSharedFolders(UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders fOptionsSharedFolders)
     157{
     158    m_fOptionsSharedFolders = fOptionsSharedFolders;
     159    m_pRoot->rebuildGroup();
     160}
     161
     162void UIDetailsModel::setOptionsUserInterface(UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface fOptionsUserInterface)
     163{
     164    m_fOptionsUserInterface = fOptionsUserInterface;
     165    m_pRoot->rebuildGroup();
     166}
     167
     168void UIDetailsModel::setOptionsDescription(UIExtraDataMetaDefs::DetailsElementOptionTypeDescription fOptionsDescription)
     169{
     170    m_fOptionsDescription = fOptionsDescription;
     171    m_pRoot->rebuildGroup();
    99172}
    100173
     
    412485}
    413486
     487void UIDetailsModel::saveDetailsOptions()
     488{
     489    /* We will use that one for all the options fetching: */
     490    const QMetaObject &smo = UIExtraDataMetaDefs::staticMetaObject;
     491    int iEnumIndex = -1;
     492
     493    /* General options: */
     494    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeGeneral");
     495    if (iEnumIndex != -1)
     496    {
     497        bool fDefault = true;
     498        QStringList options;
     499        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     500        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     501        {
     502            /* Prepare current option type: */
     503            const UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral enmOptionType =
     504                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     505            /* Skip invalid and default types: */
     506            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Invalid
     507                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Default)
     508                continue;
     509            /* If option type enabled: */
     510            if (m_fOptionsGeneral & enmOptionType)
     511            {
     512                /* Add it to the list: */
     513                options << gpConverter->toInternalString(enmOptionType);
     514                /* Make sure item is included by default: */
     515                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Default & enmOptionType))
     516                    fDefault = false;
     517            }
     518            /* If option type disabled: */
     519            else
     520            {
     521                /* Make sure item is excluded by default: */
     522                if (UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Default & enmOptionType)
     523                    fDefault = false;
     524            }
     525            /* Save options: */
     526            if (!fDefault)
     527                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_General, options);
     528            else
     529                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_General, QStringList());
     530        }
     531    }
     532
     533    /* System options: */
     534    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeSystem");
     535    if (iEnumIndex != -1)
     536    {
     537        bool fDefault = true;
     538        QStringList options;
     539        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     540        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     541        {
     542            /* Prepare current option type: */
     543            const UIExtraDataMetaDefs::DetailsElementOptionTypeSystem enmOptionType =
     544                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     545            /* Skip invalid and default types: */
     546            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Invalid
     547                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Default)
     548                continue;
     549            /* If option type enabled: */
     550            if (m_fOptionsSystem & enmOptionType)
     551            {
     552                /* Add it to the list: */
     553                options << gpConverter->toInternalString(enmOptionType);
     554                /* Make sure item is included by default: */
     555                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Default & enmOptionType))
     556                    fDefault = false;
     557            }
     558            /* If option type disabled: */
     559            else
     560            {
     561                /* Make sure item is excluded by default: */
     562                if (UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Default & enmOptionType)
     563                    fDefault = false;
     564            }
     565            /* Save options: */
     566            if (!fDefault)
     567                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_System, options);
     568            else
     569                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_System, QStringList());
     570        }
     571    }
     572
     573    /* Display options: */
     574    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeDisplay");
     575    if (iEnumIndex != -1)
     576    {
     577        bool fDefault = true;
     578        QStringList options;
     579        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     580        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     581        {
     582            /* Prepare current option type: */
     583            const UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay enmOptionType =
     584                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     585            /* Skip invalid and default types: */
     586            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Invalid
     587                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Default)
     588                continue;
     589            /* If option type enabled: */
     590            if (m_fOptionsDisplay & enmOptionType)
     591            {
     592                /* Add it to the list: */
     593                options << gpConverter->toInternalString(enmOptionType);
     594                /* Make sure item is included by default: */
     595                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Default & enmOptionType))
     596                    fDefault = false;
     597            }
     598            /* If option type disabled: */
     599            else
     600            {
     601                /* Make sure item is excluded by default: */
     602                if (UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Default & enmOptionType)
     603                    fDefault = false;
     604            }
     605            /* Save options: */
     606            if (!fDefault)
     607                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Display, options);
     608            else
     609                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Display, QStringList());
     610        }
     611    }
     612
     613    /* Storage options: */
     614    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeStorage");
     615    if (iEnumIndex != -1)
     616    {
     617        bool fDefault = true;
     618        QStringList options;
     619        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     620        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     621        {
     622            /* Prepare current option type: */
     623            const UIExtraDataMetaDefs::DetailsElementOptionTypeStorage enmOptionType =
     624                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     625            /* Skip invalid and default types: */
     626            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Invalid
     627                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Default)
     628                continue;
     629            /* If option type enabled: */
     630            if (m_fOptionsStorage & enmOptionType)
     631            {
     632                /* Add it to the list: */
     633                options << gpConverter->toInternalString(enmOptionType);
     634                /* Make sure item is included by default: */
     635                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Default & enmOptionType))
     636                    fDefault = false;
     637            }
     638            /* If option type disabled: */
     639            else
     640            {
     641                /* Make sure item is excluded by default: */
     642                if (UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Default & enmOptionType)
     643                    fDefault = false;
     644            }
     645            /* Save options: */
     646            if (!fDefault)
     647                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Storage, options);
     648            else
     649                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Storage, QStringList());
     650        }
     651    }
     652
     653    /* Audio options: */
     654    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeAudio");
     655    if (iEnumIndex != -1)
     656    {
     657        bool fDefault = true;
     658        QStringList options;
     659        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     660        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     661        {
     662            /* Prepare current option type: */
     663            const UIExtraDataMetaDefs::DetailsElementOptionTypeAudio enmOptionType =
     664                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     665            /* Skip invalid and default types: */
     666            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Invalid
     667                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Default)
     668                continue;
     669            /* If option type enabled: */
     670            if (m_fOptionsAudio & enmOptionType)
     671            {
     672                /* Add it to the list: */
     673                options << gpConverter->toInternalString(enmOptionType);
     674                /* Make sure item is included by default: */
     675                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Default & enmOptionType))
     676                    fDefault = false;
     677            }
     678            /* If option type disabled: */
     679            else
     680            {
     681                /* Make sure item is excluded by default: */
     682                if (UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Default & enmOptionType)
     683                    fDefault = false;
     684            }
     685            /* Save options: */
     686            if (!fDefault)
     687                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Audio, options);
     688            else
     689                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Audio, QStringList());
     690        }
     691    }
     692
     693    /* Network options: */
     694    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeNetwork");
     695    if (iEnumIndex != -1)
     696    {
     697        bool fDefault = true;
     698        QStringList options;
     699        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     700        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     701        {
     702            /* Prepare current option type: */
     703            const UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork enmOptionType =
     704                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     705            /* Skip invalid and default types: */
     706            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Invalid
     707                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Default)
     708                continue;
     709            /* If option type enabled: */
     710            if (m_fOptionsNetwork & enmOptionType)
     711            {
     712                /* Add it to the list: */
     713                options << gpConverter->toInternalString(enmOptionType);
     714                /* Make sure item is included by default: */
     715                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Default & enmOptionType))
     716                    fDefault = false;
     717            }
     718            /* If option type disabled: */
     719            else
     720            {
     721                /* Make sure item is excluded by default: */
     722                if (UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Default & enmOptionType)
     723                    fDefault = false;
     724            }
     725            /* Save options: */
     726            if (!fDefault)
     727                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Network, options);
     728            else
     729                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Network, QStringList());
     730        }
     731    }
     732
     733    /* Serial options: */
     734    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeSerial");
     735    if (iEnumIndex != -1)
     736    {
     737        bool fDefault = true;
     738        QStringList options;
     739        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     740        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     741        {
     742            /* Prepare current option type: */
     743            const UIExtraDataMetaDefs::DetailsElementOptionTypeSerial enmOptionType =
     744                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     745            /* Skip invalid and default types: */
     746            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Invalid
     747                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Default)
     748                continue;
     749            /* If option type enabled: */
     750            if (m_fOptionsSerial & enmOptionType)
     751            {
     752                /* Add it to the list: */
     753                options << gpConverter->toInternalString(enmOptionType);
     754                /* Make sure item is included by default: */
     755                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Default & enmOptionType))
     756                    fDefault = false;
     757            }
     758            /* If option type disabled: */
     759            else
     760            {
     761                /* Make sure item is excluded by default: */
     762                if (UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Default & enmOptionType)
     763                    fDefault = false;
     764            }
     765            /* Save options: */
     766            if (!fDefault)
     767                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Serial, options);
     768            else
     769                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Serial, QStringList());
     770        }
     771    }
     772
     773    /* Usb options: */
     774    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeUsb");
     775    if (iEnumIndex != -1)
     776    {
     777        bool fDefault = true;
     778        QStringList options;
     779        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     780        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     781        {
     782            /* Prepare current option type: */
     783            const UIExtraDataMetaDefs::DetailsElementOptionTypeUsb enmOptionType =
     784                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     785            /* Skip invalid and default types: */
     786            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Invalid
     787                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Default)
     788                continue;
     789            /* If option type enabled: */
     790            if (m_fOptionsUsb & enmOptionType)
     791            {
     792                /* Add it to the list: */
     793                options << gpConverter->toInternalString(enmOptionType);
     794                /* Make sure item is included by default: */
     795                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Default & enmOptionType))
     796                    fDefault = false;
     797            }
     798            /* If option type disabled: */
     799            else
     800            {
     801                /* Make sure item is excluded by default: */
     802                if (UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Default & enmOptionType)
     803                    fDefault = false;
     804            }
     805            /* Save options: */
     806            if (!fDefault)
     807                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_USB, options);
     808            else
     809                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_USB, QStringList());
     810        }
     811    }
     812
     813    /* SharedFolders options: */
     814    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeSharedFolders");
     815    if (iEnumIndex != -1)
     816    {
     817        bool fDefault = true;
     818        QStringList options;
     819        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     820        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     821        {
     822            /* Prepare current option type: */
     823            const UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders enmOptionType =
     824                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     825            /* Skip invalid and default types: */
     826            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Invalid
     827                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Default)
     828                continue;
     829            /* If option type enabled: */
     830            if (m_fOptionsSharedFolders & enmOptionType)
     831            {
     832                /* Add it to the list: */
     833                options << gpConverter->toInternalString(enmOptionType);
     834                /* Make sure item is included by default: */
     835                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Default & enmOptionType))
     836                    fDefault = false;
     837            }
     838            /* If option type disabled: */
     839            else
     840            {
     841                /* Make sure item is excluded by default: */
     842                if (UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Default & enmOptionType)
     843                    fDefault = false;
     844            }
     845            /* Save options: */
     846            if (!fDefault)
     847                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_SF, options);
     848            else
     849                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_SF, QStringList());
     850        }
     851    }
     852
     853    /* UserInterface options: */
     854    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeUserInterface");
     855    if (iEnumIndex != -1)
     856    {
     857        bool fDefault = true;
     858        QStringList options;
     859        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     860        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     861        {
     862            /* Prepare current option type: */
     863            const UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface enmOptionType =
     864                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     865            /* Skip invalid and default types: */
     866            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Invalid
     867                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Default)
     868                continue;
     869            /* If option type enabled: */
     870            if (m_fOptionsUserInterface & enmOptionType)
     871            {
     872                /* Add it to the list: */
     873                options << gpConverter->toInternalString(enmOptionType);
     874                /* Make sure item is included by default: */
     875                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Default & enmOptionType))
     876                    fDefault = false;
     877            }
     878            /* If option type disabled: */
     879            else
     880            {
     881                /* Make sure item is excluded by default: */
     882                if (UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Default & enmOptionType)
     883                    fDefault = false;
     884            }
     885            /* Save options: */
     886            if (!fDefault)
     887                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_UI, options);
     888            else
     889                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_UI, QStringList());
     890        }
     891    }
     892
     893    /* Description options: */
     894    iEnumIndex = smo.indexOfEnumerator("DetailsElementOptionTypeDescription");
     895    if (iEnumIndex != -1)
     896    {
     897        bool fDefault = true;
     898        QStringList options;
     899        const QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
     900        for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
     901        {
     902            /* Prepare current option type: */
     903            const UIExtraDataMetaDefs::DetailsElementOptionTypeDescription enmOptionType =
     904                static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
     905            /* Skip invalid and default types: */
     906            if (   enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Invalid
     907                || enmOptionType == UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Default)
     908                continue;
     909            /* If option type enabled: */
     910            if (m_fOptionsDescription & enmOptionType)
     911            {
     912                /* Add it to the list: */
     913                options << gpConverter->toInternalString(enmOptionType);
     914                /* Make sure item is included by default: */
     915                if (!(UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Default & enmOptionType))
     916                    fDefault = false;
     917            }
     918            /* If option type disabled: */
     919            else
     920            {
     921                /* Make sure item is excluded by default: */
     922                if (UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Default & enmOptionType)
     923                    fDefault = false;
     924            }
     925            /* Save options: */
     926            if (!fDefault)
     927                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Description, options);
     928            else
     929                gEDataManager->setVBoxManagerDetailsPaneElementOptions(DetailsElementType_Description, QStringList());
     930        }
     931    }
     932}
     933
     934void UIDetailsModel::saveDetailsCategories()
     935{
     936    gEDataManager->setSelectorWindowDetailsElements(m_categories);
     937}
     938
    414939void UIDetailsModel::saveSettings()
    415940{
    416     gEDataManager->setSelectorWindowDetailsElements(m_categories);
     941    saveDetailsOptions();
     942    saveDetailsCategories();
    417943}
    418944
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.h

    r75530 r75607  
    9292    /** Returns the details categories. */
    9393    const QMap<DetailsElementType, bool> &categories() const { return m_categories; }
     94    /** Defines the details @a categories. */
     95    void setCategories(const QMap<DetailsElementType, bool> &categories);
    9496
    9597    /** Returns options for General element. */
    96     UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral        optionsGeneral()       const { return m_fOptionsGeneral; }
     98    UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral optionsGeneral() const { return m_fOptionsGeneral; }
     99    /** Defines @a fOptions for General element. */
     100    void setOptionsGeneral(UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral fOptions);
     101
    97102    /** Returns options for System element. */
    98     UIExtraDataMetaDefs::DetailsElementOptionTypeSystem         optionsSystem()        const { return m_fOptionsSystem; }
     103    UIExtraDataMetaDefs::DetailsElementOptionTypeSystem optionsSystem() const { return m_fOptionsSystem; }
     104    /** Defines @a fOptions for System element. */
     105    void setOptionsSystem(UIExtraDataMetaDefs::DetailsElementOptionTypeSystem fOptions);
     106
    99107    /** Returns options for Display element. */
    100     UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay        optionsDisplay()       const { return m_fOptionsDisplay; }
     108    UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay optionsDisplay() const { return m_fOptionsDisplay; }
     109    /** Defines @a fOptions for Display element. */
     110    void setOptionsDisplay(UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay fOptions);
     111
    101112    /** Returns options for Storage element. */
    102     UIExtraDataMetaDefs::DetailsElementOptionTypeStorage        optionsStorage()       const { return m_fOptionsStorage; }
     113    UIExtraDataMetaDefs::DetailsElementOptionTypeStorage optionsStorage() const { return m_fOptionsStorage; }
     114    /** Defines @a fOptions for Storage element. */
     115    void setOptionsStorage(UIExtraDataMetaDefs::DetailsElementOptionTypeStorage fOptions);
     116
    103117    /** Returns options for Audio element. */
    104     UIExtraDataMetaDefs::DetailsElementOptionTypeAudio          optionsAudio()         const { return m_fOptionsAudio; }
     118    UIExtraDataMetaDefs::DetailsElementOptionTypeAudio optionsAudio() const { return m_fOptionsAudio; }
     119    /** Defines @a fOptions for Audio element. */
     120    void setOptionsAudio(UIExtraDataMetaDefs::DetailsElementOptionTypeAudio fOptions);
     121
    105122    /** Returns options for Network element. */
    106     UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork        optionsNetwork()       const { return m_fOptionsNetwork; }
     123    UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork optionsNetwork() const { return m_fOptionsNetwork; }
     124    /** Defines @a fOptions for Network element. */
     125    void setOptionsNetwork(UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork fOptions);
     126
    107127    /** Returns options for Serial element. */
    108     UIExtraDataMetaDefs::DetailsElementOptionTypeSerial         optionsSerial()        const { return m_fOptionsSerial; }
     128    UIExtraDataMetaDefs::DetailsElementOptionTypeSerial optionsSerial() const { return m_fOptionsSerial; }
     129    /** Defines @a fOptions for Serial element. */
     130    void setOptionsSerial(UIExtraDataMetaDefs::DetailsElementOptionTypeSerial fOptions);
     131
    109132    /** Returns options for Usb element. */
    110     UIExtraDataMetaDefs::DetailsElementOptionTypeUsb            optionsUsb()           const { return m_fOptionsUsb; }
     133    UIExtraDataMetaDefs::DetailsElementOptionTypeUsb optionsUsb() const { return m_fOptionsUsb; }
     134    /** Defines @a fOptions for Usb element. */
     135    void setOptionsUsb(UIExtraDataMetaDefs::DetailsElementOptionTypeUsb fOptions);
     136
    111137    /** Returns options for Shared Folders element. */
    112     UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders  optionsSharedFolders() const { return m_fOptionsSharedFolders; }
     138    UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders optionsSharedFolders() const { return m_fOptionsSharedFolders; }
     139    /** Defines @a fOptions for Shared Folders element. */
     140    void setOptionsSharedFolders(UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders fOptions);
     141
    113142    /** Returns options for User Interface element. */
    114     UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface  optionsUserInterface() const { return m_fOptionsUserInterface; }
     143    UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface optionsUserInterface() const { return m_fOptionsUserInterface; }
     144    /** Defines @a fOptions for User Interface element. */
     145    void setOptionsUserInterface(UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface fOptions);
     146
    115147    /** Returns options for Description element. */
    116     UIExtraDataMetaDefs::DetailsElementOptionTypeDescription    optionsDescription()   const { return m_fOptionsDescription; }
     148    UIExtraDataMetaDefs::DetailsElementOptionTypeDescription optionsDescription() const { return m_fOptionsDescription; }
     149    /** Defines @a fOptions for Description element. */
     150    void setOptionsDescription(UIExtraDataMetaDefs::DetailsElementOptionTypeDescription fOptions);
    117151
    118152public slots:
     
    166200        void loadDetailsOptions(DetailsElementType enmType = DetailsElementType_Invalid);
    167201
     202        /** Saves details options. */
     203        void saveDetailsOptions();
     204        /** Saves details categories. */
     205        void saveDetailsCategories();
    168206        /** Saves settings. */
    169207        void saveSettings();
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