VirtualBox

Changeset 91335 in vbox


Ignore:
Timestamp:
Sep 22, 2021 7:45:29 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
147002
Message:

FE/Qt: bugref:9996: A bit of refactoring for Add/New Cloud VM wizards; Parse full group name beforehand, it can be required for short wizard form.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.cpp

    r91334 r91335  
    3232                                       const QString &strFullGroupName /* = QString() */)
    3333    : UINativeWizard(pParent, WizardType_AddCloudVM, WizardMode_Auto)
    34     , m_strFullGroupName(strFullGroupName)
    3534{
    3635#ifndef VBOX_WS_MAC
     
    4140    setPixmapName(":/wizard_new_cloud_vm_bg.png");
    4241#endif
     42
     43    /* Parse passed full group name: */
     44    const QString strProviderShortName = strFullGroupName.section('/', 1, 1);
     45    const QString strProfileName = strFullGroupName.section('/', 2, 2);
     46    if (!strProviderShortName.isEmpty() && !strProfileName.isEmpty())
     47    {
     48        m_strProviderShortName = strProviderShortName;
     49        m_strProfileName = strProfileName;
     50    }
    4351}
    4452
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.h

    r91334 r91335  
    4040    UIWizardAddCloudVM(QWidget *pParent, const QString &strFullGroupName = QString());
    4141
    42     /** Returns full group name. */
    43     QString fullGroupName() const { return m_strFullGroupName; }
    44 
    4542    /** Defines @a strProviderShortName. */
    4643    void setProviderShortName(const QString &strProviderShortName) { m_strProviderShortName = strProviderShortName; }
     
    7673private:
    7774
    78     /** Holds the full group name (/provider/profile) to add VM to. */
    79     QString       m_strFullGroupName;
    8075    /** Holds the short provider name. */
    8176    QString       m_strProviderShortName;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageExpert.cpp

    r91334 r91335  
    269269    updateComboToolTip(m_pProviderComboBox);
    270270    setProviderShortName(m_pProviderComboBox->currentData(ProviderData_ShortName).toString());
    271     CCloudProvider comCloudProvider = cloudProviderByShortName(providerShortName(), wizard());
    272     populateProfiles(m_pProfileComboBox, comCloudProvider);
     271    populateProfiles(m_pProfileComboBox, providerShortName(), profileName());
    273272    updateProfile();
    274273}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageSource.cpp

    r91334 r91335  
    104104}
    105105
    106 void UIWizardAddCloudVMPage1::populateProfiles(QIComboBox *pCombo, const CCloudProvider &comProvider)
     106void UIWizardAddCloudVMPage1::populateProfiles(QIComboBox *pCombo,
     107                                               const QString &strProviderShortName,
     108                                               const QString &strProfileName)
    107109{
    108110    /* Sanity check: */
    109111    AssertPtrReturnVoid(pCombo);
    110     AssertReturnVoid(comProvider.isNotNull());
    111112    /* We need top-level parent as well: */
    112113    QWidget *pParent = pCombo->window();
    113114    AssertPtrReturnVoid(pParent);
     115    /* Acquire provider: */
     116    CCloudProvider comProvider = cloudProviderByShortName(strProviderShortName, pParent);
     117    AssertReturnVoid(comProvider.isNotNull());
    114118
    115119    /* Block signals while updating: */
     
    120124    if (pCombo->currentIndex() != -1)
    121125        strOldData = pCombo->itemData(pCombo->currentIndex(), ProfileData_Name).toString();
    122     else
    123     {
    124         /* Try to fetch "old" profile name from wizard full group name: */
    125         UIWizardAddCloudVM *pWizard = qobject_cast<UIWizardAddCloudVM*>(pParent);
    126         AssertPtrReturnVoid(pWizard);
    127         const QString strFullGroupName = pWizard->fullGroupName();
    128         const QString strProfileName = strFullGroupName.section('/', 2, 2);
    129         if (!strProfileName.isEmpty())
    130             strOldData = strProfileName;
    131     }
     126    else if (!strProfileName.isEmpty())
     127        strOldData = strProfileName;
    132128
    133129    /* Clear combo initially: */
     
    140136        if (comProfile.isNull())
    141137            continue;
    142         /* Acquire profile name: */
    143         QString strProfileName;
    144         if (!cloudProfileName(comProfile, strProfileName, pParent))
     138        /* Acquire current profile name: */
     139        QString strCurrentProfileName;
     140        if (!cloudProfileName(comProfile, strCurrentProfileName, pParent))
    145141            continue;
    146142
    147143        /* Compose item, fill the data: */
    148         pCombo->addItem(strProfileName);
    149         pCombo->setItemData(pCombo->count() - 1, strProfileName, ProfileData_Name);
     144        pCombo->addItem(strCurrentProfileName);
     145        pCombo->setItemData(pCombo->count() - 1, strCurrentProfileName, ProfileData_Name);
    150146    }
    151147
     
    525521    updateComboToolTip(m_pProviderComboBox);
    526522    setProviderShortName(m_pProviderComboBox->currentData(ProviderData_ShortName).toString());
    527     CCloudProvider comCloudProvider = cloudProviderByShortName(providerShortName(), wizard());
    528     populateProfiles(m_pProfileComboBox, comCloudProvider);
     523    populateProfiles(m_pProfileComboBox, providerShortName(), profileName());
    529524    updateProfile();
    530525}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageSource.h

    r91334 r91335  
    5555    /** Populates @a pCombo with known providers. */
    5656    void populateProviders(QIComboBox *pCombo);
    57     /** Populates @a pCombo with known profiles of @a comProvider specified. */
    58     void populateProfiles(QIComboBox *pCombo, const CCloudProvider &comProvider);
     57    /** Populates @a pCombo with known profiles.
     58      * @param  strProviderShortName  Brings the short name of provider profiles related to.
     59      * @param  strProfileName        Brings the name of profile to be chosen by default. */
     60    void populateProfiles(QIComboBox *pCombo, const QString &strProviderShortName, const QString &strProfileName);
    5961    /** Populates @a pList with profile instances available in @a comClient. */
    6062    void populateProfileInstances(QListWidget *pList, const CCloudClient &comClient);
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp

    r91334 r91335  
    4040                                       WizardMode enmMode /* = WizardMode_Auto */)
    4141    : UINativeWizard(pParent, WizardType_NewCloudVM, enmMode)
    42     , m_strFullGroupName(strFullGroupName)
    4342    , m_comClient(comClient)
    4443    , m_comVSD(comVSD)
     
    5352    setPixmapName(":/wizard_new_cloud_vm_bg.png");
    5453#endif
     54
     55    /* Parse passed full group name: */
     56    const QString strProviderShortName = strFullGroupName.section('/', 1, 1);
     57    const QString strProfileName = strFullGroupName.section('/', 2, 2);
     58    if (!strProviderShortName.isEmpty() && !strProfileName.isEmpty())
     59    {
     60        m_strProviderShortName = strProviderShortName;
     61        m_strProfileName = strProfileName;
     62    }
    5563}
    5664
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.h

    r91334 r91335  
    5151    void setFinalStepPrevented(bool fPrevented) { m_fFinalStepPrevented = fPrevented; }
    5252
    53     /** Returns full group name. */
    54     QString fullGroupName() const { return m_strFullGroupName; }
    55 
    5653    /** Defines @a strProviderShortName. */
    5754    void setProviderShortName(const QString &strProviderShortName) { m_strProviderShortName = strProviderShortName; }
     
    104101private:
    105102
    106     /** Holds the full group name (/provider/profile) to add VM to. */
    107     QString                        m_strFullGroupName;
    108103    /** Holds the short provider name. */
    109104    QString                        m_strProviderShortName;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageExpert.cpp

    r91334 r91335  
    410410    updateComboToolTip(m_pProviderComboBox);
    411411    setProviderShortName(m_pProviderComboBox->currentData(ProviderData_ShortName).toString());
    412     CCloudProvider comCloudProvider = cloudProviderByShortName(providerShortName(), wizard());
    413     populateProfiles(m_pProfileComboBox, comCloudProvider);
     412    populateProfiles(m_pProfileComboBox, providerShortName(), profileName());
    414413    updateProfile();
    415414}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageSource.cpp

    r91334 r91335  
    107107}
    108108
    109 void UIWizardNewCloudVMPage1::populateProfiles(QIComboBox *pCombo, const CCloudProvider &comProvider)
     109void UIWizardNewCloudVMPage1::populateProfiles(QIComboBox *pCombo,
     110                                               const QString &strProviderShortName,
     111                                               const QString &strProfileName)
    110112{
    111113    /* Sanity check: */
    112114    AssertPtrReturnVoid(pCombo);
    113     AssertReturnVoid(comProvider.isNotNull());
    114115    /* We need top-level parent as well: */
    115116    QWidget *pParent = pCombo->window();
    116117    AssertPtrReturnVoid(pParent);
     118    /* Acquire provider: */
     119    CCloudProvider comProvider = cloudProviderByShortName(strProviderShortName, pParent);
     120    AssertReturnVoid(comProvider.isNotNull());
    117121
    118122    /* Block signals while updating: */
     
    123127    if (pCombo->currentIndex() != -1)
    124128        strOldData = pCombo->itemData(pCombo->currentIndex(), ProfileData_Name).toString();
    125     else
    126     {
    127         /* Try to fetch "old" profile name from wizard full group name: */
    128         UIWizardNewCloudVM *pWizard = qobject_cast<UIWizardNewCloudVM*>(pParent);
    129         AssertPtrReturnVoid(pWizard);
    130         const QString strFullGroupName = pWizard->fullGroupName();
    131         const QString strProfileName = strFullGroupName.section('/', 2, 2);
    132         if (!strProfileName.isEmpty())
    133             strOldData = strProfileName;
    134     }
     129    else if (!strProfileName.isEmpty())
     130        strOldData = strProfileName;
    135131
    136132    /* Clear combo initially: */
     
    143139        if (comProfile.isNull())
    144140            continue;
    145         /* Acquire profile name: */
    146         QString strProfileName;
    147         if (!cloudProfileName(comProfile, strProfileName, pParent))
     141        /* Acquire current profile name: */
     142        QString strCurrentProfileName;
     143        if (!cloudProfileName(comProfile, strCurrentProfileName, pParent))
    148144            continue;
    149145
    150146        /* Compose item, fill the data: */
    151         pCombo->addItem(strProfileName);
    152         pCombo->setItemData(pCombo->count() - 1, strProfileName, ProfileData_Name);
     147        pCombo->addItem(strCurrentProfileName);
     148        pCombo->setItemData(pCombo->count() - 1, strCurrentProfileName, ProfileData_Name);
    153149    }
    154150
     
    605601    updateComboToolTip(m_pProviderComboBox);
    606602    setProviderShortName(m_pProviderComboBox->currentData(ProviderData_ShortName).toString());
    607     CCloudProvider comCloudProvider = cloudProviderByShortName(providerShortName(), wizard());
    608     populateProfiles(m_pProfileComboBox, comCloudProvider);
     603    populateProfiles(m_pProfileComboBox, providerShortName(), profileName());
    609604    updateProfile();
    610605}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageSource.h

    r91334 r91335  
    5959    /** Populates @a pCombo with known providers. */
    6060    void populateProviders(QIComboBox *pCombo);
    61     /** Populates @a pCombo with known profiles of @a comProvider specified. */
    62     void populateProfiles(QIComboBox *pCombo, const CCloudProvider &comProvider);
     61    /** Populates @a pCombo with known profiles.
     62      * @param  strProviderShortName  Brings the short name of provider profiles related to.
     63      * @param  strProfileName        Brings the name of profile to be chosen by default. */
     64    void populateProfiles(QIComboBox *pCombo, const QString &strProviderShortName, const QString &strProfileName);
    6365    /** Populates @a pList with source images from tab of @a pTabBar available in @a comClient. */
    6466    void populateSourceImages(QListWidget *pList, QTabBar *pTabBar, const CCloudClient &comClient);
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