VirtualBox

Changeset 85387 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 20, 2020 10:39:24 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
139412
Message:

FE/Qt: bugref:9722: Cloud Profile Manager: Cleanup while working on Cloud Console Manager stuff.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/cloud/profilemanager/UICloudProfileDetailsWidget.cpp

    r83950 r85387  
    3636    : QIWithRetranslateUI<QWidget>(pParent)
    3737    , m_enmEmbedding(enmEmbedding)
     38    , m_pLabelName(0)
     39    , m_pEditorName(0)
     40    , m_pLabelTableWidget(0)
    3841    , m_pTableWidget(0)
    3942    , m_pButtonBox(0)
    4043{
    41     /* Prepare: */
    4244    prepare();
    4345}
  • trunk/src/VBox/Frontends/VirtualBox/src/cloud/profilemanager/UICloudProfileDetailsWidget.h

    r85035 r85387  
    5252    {
    5353        return true
    54                && (m_uuid == other.m_uuid)
     54               && (m_uId == other.m_uId)
    5555               && (m_strShortName == other.m_strShortName)
    5656               && (m_strName == other.m_strName)
     
    6565
    6666    /** Holds the provider ID. */
    67     QUuid    m_uuid;
     67    QUuid    m_uId;
    6868    /** Holds the provider short name. */
    6969    QString  m_strShortName;
     
    105105    /** Holds the profile name. */
    106106    QString  m_strName;
    107     /** Holds whether provider is restricted. */
     107    /** Holds whether profile is restricted. */
    108108    bool     m_fRestricted;
    109109
     
    217217        QTableWidget *m_pTableWidget;
    218218
    219         /** Holds the server button-box instance. */
     219        /** Holds the button-box instance. */
    220220        QIDialogButtonBox *m_pButtonBox;
    221221    /** @} */
  • trunk/src/VBox/Frontends/VirtualBox/src/cloud/profilemanager/UICloudProfileManager.cpp

    r85035 r85387  
    3434#include "UIMessageCenter.h"
    3535#include "UIToolBar.h"
    36 #ifdef VBOX_WS_MAC
    37 # include "UIWindowMenuManager.h"
    38 #endif
    3936
    4037/* COM includes: */
     
    4744enum CloudItemType
    4845{
    49     CloudItemType_Provider = QTreeWidgetItem::UserType + 1,
    50     CloudItemType_Profile  = QTreeWidgetItem::UserType + 2
     46    CloudItemType_Invalid  = 0,
     47    CloudItemType_Provider = 1,
     48    CloudItemType_Profile  = 2
    5149};
    5250Q_DECLARE_METATYPE(CloudItemType);
     
    5755    Data_ItemType   = Qt::UserRole + 1,
    5856    Data_ProviderID = Qt::UserRole + 2,
     57    Data_Definition = Qt::UserRole + 3,
    5958};
    6059
     
    119118    /* Update item fields: */
    120119    setText(Column_Name, m_strName);
    121     setData(Column_Name, Data_ProviderID, m_uuid);
     120    setData(Column_Name, Data_ProviderID, m_uId);
     121    setData(Column_Name, Data_Definition, QVariant::fromValue(QString("/%1").arg(m_strShortName)));
    122122    setCheckState(Column_ListVMs, m_fRestricted ? Qt::Unchecked : Qt::Checked);
    123123}
     
    140140    /* Update item fields: */
    141141    setText(Column_Name, m_strName);
     142    setData(Column_Name, Data_Definition, QVariant::fromValue(QString("/%1/%2").arg(m_strProviderShortName, m_strName)));
    142143    setCheckState(Column_ListVMs, m_fRestricted ? Qt::Unchecked : Qt::Checked);
    143144}
     
    158159    , m_pDetailsWidget(0)
    159160{
    160     /* Prepare: */
    161161    prepare();
    162162}
     
    188188void UICloudProfileManagerWidget::sltResetCloudProfileDetailsChanges()
    189189{
    190     /* Just push the current item data there again: */
     190    /* Just push the current-item data there again: */
    191191    sltHandleCurrentItemChange();
    192192}
     
    194194void UICloudProfileManagerWidget::sltApplyCloudProfileDetailsChanges()
    195195{
    196     /* Is can be that there is provider item, not profile item currently selected.
     196    /* It can be that there is provider item, not profile item currently selected.
    197197     * In such case we are not applying parameters, we are creating new one profile. */
    198     QTreeWidgetItem *pItem = m_pTreeWidget->currentItem();
    199     UIItemCloudProvider *pMaybeProviderItem = pItem && pItem->data(0, Data_ItemType).value<CloudItemType>() == CloudItemType_Provider
    200                                             ? static_cast<UIItemCloudProvider*>(pItem) : 0;
     198    QITreeWidgetItem *pItem = QITreeWidgetItem::toItem(m_pTreeWidget->currentItem());
     199    UIItemCloudProvider *pMaybeProviderItem = qobject_cast<UIItemCloudProvider*>(pItem);
    201200    if (pMaybeProviderItem)
    202201        return sltAddCloudProfile();
    203202
    204203    /* Get profile item: */
    205     UIItemCloudProfile *pProfileItem = static_cast<UIItemCloudProfile*>(m_pTreeWidget->currentItem());
     204    UIItemCloudProfile *pProfileItem = qobject_cast<UIItemCloudProfile*>(pItem);
    206205    AssertMsgReturnVoid(pProfileItem, ("Current item must not be null!\n"));
    207206
     
    221220    {
    222221        /* Get provider item: */
    223         UIItemCloudProvider *pProviderItem = static_cast<UIItemCloudProvider*>(pProfileItem->parentItem());
     222        UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pProfileItem->parentItem());
    224223        /* Acquire provider ID: */
    225224        const QUuid uId = pProviderItem->data(Column_Name, Data_ProviderID).toUuid();
     
    275274                    updateItemForCloudProfile(data, true, pProfileItem);
    276275
    277                     /* Make sure current item fetched: */
     276                    /* Make sure current-item fetched: */
    278277                    sltHandleCurrentItemChange();
    279278
     
    295294{
    296295    /* Get provider item: */
    297     UIItemCloudProvider *pProviderItem = static_cast<UIItemCloudProvider*>(m_pTreeWidget->currentItem());
     296    QITreeWidgetItem *pItem = QITreeWidgetItem::toItem(m_pTreeWidget->currentItem());
     297    UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pItem);
    298298    AssertMsgReturnVoid(pProviderItem, ("Current item must not be null!\n"));
    299299
     
    378378{
    379379    /* Get provider item: */
    380     UIItemCloudProvider *pProviderItem = static_cast<UIItemCloudProvider*>(m_pTreeWidget->currentItem());
     380    QITreeWidgetItem *pItem = QITreeWidgetItem::toItem(m_pTreeWidget->currentItem());
     381    UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pItem);
    381382    AssertMsgReturnVoid(pProviderItem, ("Current item must not be null!\n"));
    382383
     
    424425{
    425426    /* Get profile item: */
    426     UIItemCloudProfile *pProfileItem = static_cast<UIItemCloudProfile*>(m_pTreeWidget->currentItem());
     427    QITreeWidgetItem *pItem = QITreeWidgetItem::toItem(m_pTreeWidget->currentItem());
     428    UIItemCloudProfile *pProfileItem = qobject_cast<UIItemCloudProfile*>(pItem);
    427429    AssertMsgReturnVoid(pProfileItem, ("Current item must not be null!\n"));
    428430
     
    445447    {
    446448        /* Get provider item: */
    447         UIItemCloudProvider *pProviderItem = static_cast<UIItemCloudProvider*>(pProfileItem->parentItem());
     449        UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pProfileItem->parentItem());
    448450        /* Acquire provider ID: */
    449451        const QUuid uId = pProviderItem->data(Column_Name, Data_ProviderID).toUuid();
     
    513515void UICloudProfileManagerWidget::sltHandleCurrentItemChange()
    514516{
    515     /* Get items: */
    516     QTreeWidgetItem *pItem = m_pTreeWidget->currentItem();
    517     UIItemCloudProvider *pItemProvider = pItem && pItem->data(0, Data_ItemType).value<CloudItemType>() == CloudItemType_Provider
    518                                        ? static_cast<UIItemCloudProvider*>(pItem)
    519                                        : 0;
    520     UIItemCloudProfile  *pItemProfile  = pItem && pItem->data(0, Data_ItemType).value<CloudItemType>() == CloudItemType_Profile
    521                                        ? static_cast<UIItemCloudProfile*>(pItem)
    522                                        : 0;
     517    /* Check current-item type: */
     518    QITreeWidgetItem *pItem = QITreeWidgetItem::toItem(m_pTreeWidget->currentItem());
     519    UIItemCloudProvider *pItemProvider = qobject_cast<UIItemCloudProvider*>(pItem);
     520    UIItemCloudProfile *pItemProfile = qobject_cast<UIItemCloudProfile*>(pItem);
    523521
    524522    /* Update actions availability: */
     
    541539void UICloudProfileManagerWidget::sltHandleContextMenuRequest(const QPoint &position)
    542540{
    543     /* Get items: */
    544     QTreeWidgetItem *pItem = m_pTreeWidget->itemAt(position);
    545     UIItemCloudProvider *pItemProvider = pItem && pItem->data(0, Data_ItemType).value<CloudItemType>() == CloudItemType_Provider
    546                                        ? static_cast<UIItemCloudProvider*>(pItem)
    547                                        : 0;
    548     UIItemCloudProfile  *pItemProfile  = pItem && pItem->data(0, Data_ItemType).value<CloudItemType>() == CloudItemType_Profile
    549                                        ? static_cast<UIItemCloudProfile*>(pItem)
    550                                        : 0;
     541    /* Check clicked-item type: */
     542    QITreeWidgetItem *pItem = QITreeWidgetItem::toItem(m_pTreeWidget->itemAt(position));
     543    UIItemCloudProvider *pItemProvider = qobject_cast<UIItemCloudProvider*>(pItem);
     544    UIItemCloudProfile *pItemProfile = qobject_cast<UIItemCloudProfile*>(pItem);
    551545
    552546    /* Compose temporary context-menu: */
     
    565559
    566560    /* And show it: */
    567     menu.exec(m_pTreeWidget->mapToGlobal(position));
     561    menu.exec(m_pTreeWidget->viewport()->mapToGlobal(position));
    568562}
    569563
    570564void UICloudProfileManagerWidget::sltHandleItemChange(QTreeWidgetItem *pItem)
    571565{
    572     /* Cast pItem to QITreeWidgetItem: */
     566    /* Check item type: */
    573567    QITreeWidgetItem *pChangedItem = QITreeWidgetItem::toItem(pItem);
    574     AssertMsgReturnVoid(pChangedItem, ("Changed item must not be null!\n"));
     568    UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pChangedItem);
     569    UIItemCloudProfile *pProfileItem = qobject_cast<UIItemCloudProfile*>(pChangedItem);
    575570
    576571    /* Check whether item is of provider or profile type, then check whether it changed: */
    577572    bool fChanged = false;
    578     UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pChangedItem);
    579     UIItemCloudProfile *pProfileItem = qobject_cast<UIItemCloudProfile*>(pChangedItem);
    580573    if (pProviderItem)
    581574    {
     
    797790
    798791        /* Make sure provider item is properly inserted: */
    799         UIItemCloudProvider *pItem = searchItem(providerData.m_uuid);
     792        UIItemCloudProvider *pItem = searchItem(providerData.m_uId);
    800793
    801794        /* Iterate through provider's profiles: */
     
    823816}
    824817
    825 void UICloudProfileManagerWidget::loadCloudProvider(const CCloudProvider &comProvider, UIDataCloudProvider &data)
     818void UICloudProfileManagerWidget::loadCloudProvider(const CCloudProvider &comProvider,
     819                                                    UIDataCloudProvider &providerData)
    826820{
    827821    /* Gather provider settings: */
    828822    if (comProvider.isOk())
    829         data.m_uuid = comProvider.GetId();
     823        providerData.m_uId = comProvider.GetId();
    830824    if (comProvider.isOk())
    831         data.m_strShortName = comProvider.GetShortName();
     825        providerData.m_strShortName = comProvider.GetShortName();
    832826    if (comProvider.isOk())
    833         data.m_strName = comProvider.GetName();
     827        providerData.m_strName = comProvider.GetName();
    834828    foreach (const QString &strSupportedPropertyName, comProvider.GetSupportedPropertyNames())
    835         data.m_propertyDescriptions[strSupportedPropertyName] = comProvider.GetPropertyDescription(strSupportedPropertyName);
     829        providerData.m_propertyDescriptions[strSupportedPropertyName] = comProvider.GetPropertyDescription(strSupportedPropertyName);
    836830
    837831    /* Show error message if necessary: */
     
    840834}
    841835
    842 void UICloudProfileManagerWidget::loadCloudProfile(const CCloudProfile &comProfile, const UIDataCloudProvider &providerData, UIDataCloudProfile &profileData)
     836void UICloudProfileManagerWidget::loadCloudProfile(const CCloudProfile &comProfile,
     837                                                   const UIDataCloudProvider &providerData,
     838                                                   UIDataCloudProfile &profileData)
    843839{
    844840    /* Gather provider settings: */
     
    874870}
    875871
    876 UIItemCloudProvider *UICloudProfileManagerWidget::searchItem(const QUuid &uuid) const
    877 {
    878     /* Iterated through top-level items: */
    879     for (int i = 0; i < m_pTreeWidget->topLevelItemCount(); ++i)
    880         if (m_pTreeWidget->topLevelItem(i)->data(0, Data_ProviderID).toUuid() == uuid)
    881             return static_cast<UIItemCloudProvider*>(m_pTreeWidget->topLevelItem(i));
     872UIItemCloudProvider *UICloudProfileManagerWidget::searchItem(const QUuid &uId) const
     873{
     874    /* Iterate through tree-widget children: */
     875    for (int i = 0; i < m_pTreeWidget->childCount(); ++i)
     876        if (m_pTreeWidget->childItem(i)->data(Column_Name, Data_ProviderID).toUuid() == uId)
     877            return qobject_cast<UIItemCloudProvider*>(m_pTreeWidget->childItem(i));
    882878    /* Null by default: */
    883879    return 0;
    884880}
    885881
    886 void UICloudProfileManagerWidget::createItemForCloudProvider(const UIDataCloudProvider &data, bool fChooseItem)
     882void UICloudProfileManagerWidget::createItemForCloudProvider(const UIDataCloudProvider &providerData,
     883                                                             bool fChooseItem)
    887884{
    888885    /* Create new provider item: */
     
    891888    {
    892889        /* Configure item: */
    893         pItem->UIDataCloudProvider::operator=(data);
     890        pItem->UIDataCloudProvider::operator=(providerData);
    894891        pItem->updateFields();
    895892        /* Add item to the tree: */
     
    901898}
    902899
    903 void UICloudProfileManagerWidget::createItemForCloudProfile(QTreeWidgetItem *pParent, const UIDataCloudProfile &data, bool fChooseItem)
     900void UICloudProfileManagerWidget::createItemForCloudProfile(QTreeWidgetItem *pParent,
     901                                                            const UIDataCloudProfile &profileData,
     902                                                            bool fChooseItem)
    904903{
    905904    /* Create new profile item: */
     
    908907    {
    909908        /* Configure item: */
    910         pItem->UIDataCloudProfile::operator=(data);
     909        pItem->UIDataCloudProfile::operator=(profileData);
    911910        pItem->updateFields();
    912911        /* Add item to the parent: */
     
    918917}
    919918
    920 void UICloudProfileManagerWidget::updateItemForCloudProfile(const UIDataCloudProfile &data, bool fChooseItem, UIItemCloudProfile *pItem)
     919void UICloudProfileManagerWidget::updateItemForCloudProfile(const UIDataCloudProfile &profileData, bool fChooseItem, UIItemCloudProfile *pItem)
    921920{
    922921    /* Update passed item: */
     
    924923    {
    925924        /* Configure item: */
    926         pItem->UIDataCloudProfile::operator=(data);
     925        pItem->UIDataCloudProfile::operator=(profileData);
    927926        pItem->updateFields();
    928927        /* And choose it as current if necessary: */
     
    942941    if (   pChangedItem
    943942        && pChangedItem->checkState(Column_ListVMs) == Qt::Unchecked)
    944     {
    945         /* Check whether item is of provider or profile type: */
    946         UIItemCloudProvider *pProviderItem = qobject_cast<UIItemCloudProvider*>(pChangedItem);
    947         UIItemCloudProfile *pProfileItem = qobject_cast<UIItemCloudProfile*>(pChangedItem);
    948         if (pProviderItem)
    949         {
    950             const UIDataCloudProvider oldData = *pProviderItem;
    951             result << QString("/%1").arg(oldData.m_strShortName);
    952         }
    953         else if (pProfileItem)
    954         {
    955             const UIDataCloudProfile oldData = *pProfileItem;
    956             result << QString("/%1/%2").arg(oldData.m_strProviderShortName, oldData.m_strName);
    957         }
    958     }
     943        result << pChangedItem->data(Column_Name, Data_Definition).toString();
    959944
    960945    /* Iterate through children recursively: */
  • trunk/src/VBox/Frontends/VirtualBox/src/cloud/profilemanager/UICloudProfileManager.h

    r85035 r85387  
    9595    /** @name Menu/action stuff.
    9696      * @{ */
    97         /** Handles command to create cloud profile. */
     97        /** Handles command to add cloud profile. */
    9898        void sltAddCloudProfile();
    9999        /** Handles command to import cloud profiles. */
     
    103103        /** Handles command to make cloud profile details @a fVisible. */
    104104        void sltToggleCloudProfileDetailsVisibility(bool fVisible);
    105         /** Handles command to show cloud profile help. */
     105        /** Handles command to show cloud profile try page. */
    106106        void sltShowCloudProfileTryPage();
    107107        /** Handles command to show cloud profile help. */
     
    117117        /** Handles tree-widget current item change. */
    118118        void sltHandleCurrentItemChange();
    119         /** Handles context menu request for tree-widget @a position. */
     119        /** Handles context-menu request for tree-widget @a position. */
    120120        void sltHandleContextMenuRequest(const QPoint &position);
    121121        /** Handles tree-widget @a pItem change. */
     
    149149        /** Loads cloud stuff. */
    150150        void loadCloudStuff();
    151         /** Loads cloud @a comProvider data to passed @a data container. */
    152         void loadCloudProvider(const CCloudProvider &comProvider, UIDataCloudProvider &data);
     151        /** Loads cloud @a comProvider data to passed @a providerData container. */
     152        void loadCloudProvider(const CCloudProvider &comProvider,
     153                               UIDataCloudProvider &providerData);
    153154        /** Loads cloud @a comProfile data to passed @a profileData container, using @a providerData as hint. */
    154         void loadCloudProfile(const CCloudProfile &comProfile, const UIDataCloudProvider &providerData, UIDataCloudProfile &profileData);
     155        void loadCloudProfile(const CCloudProfile &comProfile,
     156                              const UIDataCloudProvider &providerData,
     157                              UIDataCloudProfile &profileData);
    155158    /** @} */
    156159
    157160    /** @name Tree-widget stuff.
    158161      * @{ */
    159         /** Seearches a provider item with specified @a uuid. */
    160         UIItemCloudProvider *searchItem(const QUuid &uuid) const;
    161 
    162         /** Creates a new tree-widget item on the basis of passed @a data, @a fChooseItem if requested. */
    163         void createItemForCloudProvider(const UIDataCloudProvider &data, bool fChooseItem);
    164 
    165         /** Creates a new tree-widget item as a child of certain @a pParent, on the basis of passed @a data, @a fChooseItem if requested. */
    166         void createItemForCloudProfile(QTreeWidgetItem *pParent, const UIDataCloudProfile &data, bool fChooseItem);
    167         /** Updates the passed tree-widget item on the basis of passed @a data, @a fChooseItem if requested. */
    168         void updateItemForCloudProfile(const UIDataCloudProfile &data, bool fChooseItem, UIItemCloudProfile *pItem);
     162        /** Seearches a provider item with specified @a uId. */
     163        UIItemCloudProvider *searchItem(const QUuid &uId) const;
     164
     165        /** Creates a new tree-widget item
     166          * on the basis of passed @a providerData, @a fChooseItem if requested. */
     167        void createItemForCloudProvider(const UIDataCloudProvider &providerData, bool fChooseItem);
     168
     169        /** Creates a new tree-widget item as a child of certain @a pParent,
     170          * on the basis of passed @a profileData, @a fChooseItem if requested. */
     171        void createItemForCloudProfile(QTreeWidgetItem *pParent, const UIDataCloudProfile &profileData, bool fChooseItem);
     172        /** Updates the passed tree-widget item on the basis of passed @a profileData, @a fChooseItem if requested. */
     173        void updateItemForCloudProfile(const UIDataCloudProfile &profileData, bool fChooseItem, UIItemCloudProfile *pItem);
    169174
    170175        /* Gathers a list of Cloud Profile Manager restrictions starting from @a pParentItem. */
     
    191196      * @{ */
    192197        /** Holds the tree-widget instance. */
    193         QITreeWidget *m_pTreeWidget;
     198        QITreeWidget                *m_pTreeWidget;
    194199        /** Holds the details-widget instance. */
    195200        UICloudProfileDetailsWidget *m_pDetailsWidget;
Note: See TracChangeset for help on using the changeset viewer.

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