VirtualBox

Changeset 74769 in vbox


Ignore:
Timestamp:
Oct 11, 2018 12:27:00 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9265: Reworking format/account combos to make OCI choice more obvious.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp

    r73926 r74769  
    6868
    6969    /* For Filesystem formats only: */
    70     if (field("format").toString() != "csp-1.0")
     70    if (!field("isFormatCloudOne").toBool())
    7171    {
    7272        /* We need to know every filename which will be created, so that we can ask the user for confirmation of overwriting.
     
    150150QString UIWizardExportApp::uri(bool fWithFile) const
    151151{
    152     /* For Cloud Service Providers: */
    153     if (field("format").toString() == "csp-1.0")
     152    /* For Cloud formats: */
     153    if (field("isFormatCloudOne").toBool())
    154154        return QString("%1://%2").arg(field("providerShortName").toString(), field("profileName").toString());
    155155    else
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp

    r74766 r74769  
    8686    formats << "ovf-2.0";
    8787    formats << "opc-1.0";
    88     formats << "csp-1.0";
    8988    /* Add that list to combo: */
    9089    foreach (const QString &strShortName, formats)
     
    9594    }
    9695
     96    /* Iterate through existing providers: */
     97    foreach (const CCloudProvider &comProvider, m_comCloudProviderManager.GetProviders())
     98    {
     99        /* Skip if we have nothing to populate (file missing?): */
     100        if (comProvider.isNull())
     101            continue;
     102
     103        /* Compose empty item, fill it's data: */
     104        m_pFormatComboBox->addItem(QString());
     105        m_pFormatComboBox->setItemData(m_pFormatComboBox->count() - 1, comProvider.GetId(),        FormatData_ID);
     106        m_pFormatComboBox->setItemData(m_pFormatComboBox->count() - 1, comProvider.GetName(),      FormatData_Name);
     107        m_pFormatComboBox->setItemData(m_pFormatComboBox->count() - 1, comProvider.GetShortName(), FormatData_ShortName);
     108        m_pFormatComboBox->setItemData(m_pFormatComboBox->count() - 1, true,                       FormatData_IsItCloudFormat);
     109    }
     110
    97111    /* Set default: */
    98112    setFormat("ovf-1.0");
     
    116130void UIWizardExportAppPage2::populateAccounts()
    117131{
    118     /* Make sure this combo isn't filled yet: */
    119     AssertReturnVoid(m_pAccountComboBox->count() == 0);
    120 
    121     /* Iterate through providers: */
    122     foreach (const CCloudProvider &comCloudProvider, m_comCloudProviderManager.GetProviders())
    123     {
    124         /* Skip if we have nothing to populate (file missing?): */
    125         if (comCloudProvider.isNull())
    126             continue;
    127 
    128         /* Iterate through profile names: */
    129         foreach (const QString &strProfileName, comCloudProvider.GetProfileNames())
    130         {
    131             m_pAccountComboBox->addItem(QString());
    132             m_pAccountComboBox->setItemData(m_pAccountComboBox->count() - 1, comCloudProvider.GetId(),        AccountData_ProviderID);
    133             m_pAccountComboBox->setItemData(m_pAccountComboBox->count() - 1, comCloudProvider.GetName(),      AccountData_ProviderName);
    134             m_pAccountComboBox->setItemData(m_pAccountComboBox->count() - 1, comCloudProvider.GetShortName(), AccountData_ProviderShortName);
    135             m_pAccountComboBox->setItemData(m_pAccountComboBox->count() - 1, strProfileName,                  AccountData_ProfileName);
    136         }
     132    /* Clear combo initially: */
     133    m_pAccountComboBox->clear();
     134    /* Return if no provider chosen: */
     135    if (providerId().isNull())
     136        return;
     137
     138    /* Acquire Cloud Provider: */
     139    CCloudProvider comCloudProvider = m_comCloudProviderManager.GetProviderById(providerId());
     140    /* Return if the provider has disappeared: */
     141    if (comCloudProvider.isNull())
     142        return;
     143
     144    /* Iterate through profile names: */
     145    foreach (const QString &strProfileName, comCloudProvider.GetProfileNames())
     146    {
     147        m_pAccountComboBox->addItem(strProfileName);
     148        m_pAccountComboBox->setItemData(m_pAccountComboBox->count() - 1, strProfileName, AccountData_ProfileName);
    137149    }
    138150
    139151    /* Set default: */
    140152    if (m_pAccountComboBox->count() != 0)
    141         setProviderById("54e11de4-afcc-47fb-9c39-b24244cfa044");
     153        m_pAccountComboBox->setCurrentIndex(0);
    142154}
    143155
     
    146158    /* Clear table initially: */
    147159    m_pAccountPropertyTable->clear();
     160    /* Return if no provider chosen: */
     161    if (providerId().isNull())
     162        return;
    148163
    149164    /* Acquire Cloud Provider: */
     
    214229{
    215230    /* Update page appearance according to chosen storage-type: */
    216     const bool fCSP = fieldImp("format").toString() == "csp-1.0";
    217     m_pSettingsWidget->setCurrentIndex((int)fCSP);
     231    m_pSettingsWidget->setCurrentIndex((int)isFormatCloudOne());
    218232}
    219233
     
    233247void UIWizardExportAppPage2::refreshFileSelectorExtension()
    234248{
    235     /* If the format is set to CSP: */
    236     if (fieldImp("format").toString() == "csp-1.0")
     249    /* If format is cloud one: */
     250    if (isFormatCloudOne())
    237251    {
    238252        /* We use no extension: */
     
    279293void UIWizardExportAppPage2::refreshManifestCheckBoxAccess()
    280294{
    281     /* If the format is set to CSP || OPC: */
    282     if (   fieldImp("format").toString() == "csp-1.0"
     295    /* If format is cloud one or OPC: */
     296    if (   isFormatCloudOne()
    283297        || fieldImp("format").toString() == "opc-1.0")
    284298    {
     
    298312void UIWizardExportAppPage2::refreshIncludeISOsCheckBoxAccess()
    299313{
    300     /* If the format is set to CSP || OPC: */
    301     if (   fieldImp("format").toString() == "csp-1.0"
     314    /* If format is cloud one or OPC: */
     315    if (   isFormatCloudOne()
    302316        || fieldImp("format").toString() == "opc-1.0")
    303317    {
     
    375389}
    376390
     391bool UIWizardExportAppPage2::isFormatCloudOne(int iIndex /* = -1 */) const
     392{
     393    if (iIndex == -1)
     394        iIndex = m_pFormatComboBox->currentIndex();
     395    return m_pFormatComboBox->itemData(iIndex, FormatData_IsItCloudFormat).toBool();
     396}
     397
    377398void UIWizardExportAppPage2::setPath(const QString &strPath)
    378399{
     
    420441void UIWizardExportAppPage2::setProviderById(const QString &strId)
    421442{
    422     const int iIndex = m_pAccountComboBox->findData(strId, AccountData_ProviderID);
     443    const int iIndex = m_pFormatComboBox->findData(strId, FormatData_ID);
    423444    AssertMsg(iIndex != -1, ("Data not found!"));
    424     m_pAccountComboBox->setCurrentIndex(iIndex);
     445    m_pFormatComboBox->setCurrentIndex(iIndex);
    425446}
    426447
    427448QString UIWizardExportAppPage2::providerId() const
    428449{
    429     const int iIndex = m_pAccountComboBox->currentIndex();
    430     return m_pAccountComboBox->itemData(iIndex, AccountData_ProviderID).toString();
     450    const int iIndex = m_pFormatComboBox->currentIndex();
     451    return m_pFormatComboBox->itemData(iIndex, FormatData_ID).toString();
    431452}
    432453
    433454QString UIWizardExportAppPage2::providerShortName() const
    434455{
    435     const int iIndex = m_pAccountComboBox->currentIndex();
    436     return m_pAccountComboBox->itemData(iIndex, AccountData_ProviderShortName).toString();
     456    const int iIndex = m_pFormatComboBox->currentIndex();
     457    return m_pFormatComboBox->itemData(iIndex, FormatData_ShortName).toString();
    437458}
    438459
     
    699720    /* Register fields: */
    700721    registerField("format", this, "format");
     722    registerField("isFormatCloudOne", this, "isFormatCloudOne");
    701723    registerField("path", this, "path");
    702724    registerField("macAddressPolicy", this, "macAddressPolicy");
     
    759781    m_pFormatComboBox->setItemText(2, UIWizardExportApp::tr("Open Virtualization Format 2.0"));
    760782    m_pFormatComboBox->setItemText(3, UIWizardExportApp::tr("Oracle Public Cloud Format 1.0"));
    761     m_pFormatComboBox->setItemText(4, UIWizardExportApp::tr("Cloud Service Provider"));
    762783    m_pFormatComboBox->setItemData(0, UIWizardExportApp::tr("Write in legacy OVF 0.9 format for compatibility "
    763784                                                            "with other virtualization products."), Qt::ToolTipRole);
     
    765786    m_pFormatComboBox->setItemData(2, UIWizardExportApp::tr("Write in new OVF 2.0 format."), Qt::ToolTipRole);
    766787    m_pFormatComboBox->setItemData(3, UIWizardExportApp::tr("Write in Oracle Public Cloud 1.0 format."), Qt::ToolTipRole);
    767     m_pFormatComboBox->setItemData(4, UIWizardExportApp::tr("Export to Cloud Service Provider."), Qt::ToolTipRole);
     788    /* Translate received values of Format combo-box.
     789     * We are enumerating starting from 0 for simplicity: */
     790    for (int i = 0; i < m_pFormatComboBox->count(); ++i)
     791        if (isFormatCloudOne(i))
     792        {
     793            m_pFormatComboBox->setItemText(i, m_pFormatComboBox->itemData(i, FormatData_Name).toString());
     794            m_pFormatComboBox->setItemData(i, UIWizardExportApp::tr("Export to cloud service provider."), Qt::ToolTipRole);
     795        }
    768796
    769797    /* Translate MAC address policy combo-box: */
     
    794822    /* Translate Account combo-box: */
    795823    m_pAccountComboBoxLabel->setText(UIWizardExportApp::tr("&Account:"));
    796     for (int i = 0; i < m_pAccountComboBox->count(); ++i)
    797     {
    798         m_pAccountComboBox->setItemText(i, UIWizardExportApp::tr("%1: %2", "provider: profile")
    799             .arg(m_pAccountComboBox->itemData(i, AccountData_ProviderName).toString())
    800             .arg(m_pAccountComboBox->itemData(i, AccountData_ProfileName).toString()));
    801     }
    802824
    803825    /* Adjust label widths: */
     
    855877                          || field("format").toString() == "ovf-2.0";
    856878        const bool fOPC =    field("format").toString() == "opc-1.0";
    857         const bool fCSP =    field("format").toString() == "csp-1.0";
     879        const bool fCSP =    isFormatCloudOne();
    858880
    859881        fResult =    (   fOVF
     
    873895
    874896    /* Update page appearance according to chosen storage-type: */
    875     if (field("format").toString() == "csp-1.0")
     897    if (isFormatCloudOne())
    876898    {
    877899        m_pLabelSettings->setText(UIWizardExportApp::
     
    902924    refreshManifestCheckBoxAccess();
    903925    refreshIncludeISOsCheckBoxAccess();
     926    populateAccounts();
     927    populateAccountProperties();
    904928}
    905929
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.h

    r74766 r74769  
    5656enum
    5757{
    58     FormatData_ShortName = Qt::UserRole + 1
     58    FormatData_ID              = Qt::UserRole + 1,
     59    FormatData_Name            = Qt::UserRole + 2,
     60    FormatData_ShortName       = Qt::UserRole + 3,
     61    FormatData_IsItCloudFormat = Qt::UserRole + 4
    5962};
    6063
     
    6265enum
    6366{
    64     AccountData_ProviderID        = Qt::UserRole + 1,
    65     AccountData_ProviderName      = Qt::UserRole + 2,
    66     AccountData_ProviderShortName = Qt::UserRole + 3,
    67     AccountData_ProfileName       = Qt::UserRole + 4
     67    AccountData_ProfileName = Qt::UserRole + 1
    6868};
    6969
     
    113113    /** Returns format. */
    114114    QString format() const;
     115    /** Returns whether format under certain @a iIndex is cloud one. */
     116    bool isFormatCloudOne(int iIndex = -1) const;
    115117
    116118    /** Defines @a strPath. */
     
    204206    Q_OBJECT;
    205207    Q_PROPERTY(QString format READ format WRITE setFormat);
     208    Q_PROPERTY(bool isFormatCloudOne READ isFormatCloudOne);
    206209    Q_PROPERTY(QString path READ path WRITE setPath);
    207210    Q_PROPERTY(MACAddressPolicy macAddressPolicy READ macAddressPolicy WRITE setMACAddressPolicy);
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp

    r74186 r74769  
    262262                if (comMachine.isOk() && comVsd.isNotNull())
    263263                {
    264                     if (fieldImp("format").toString() == "csp-1.0")
     264                    if (fieldImp("isFormatCloudOne").toBool())
    265265                    {
    266266                        /* Populate Cloud Client parameters: */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.cpp

    r74766 r74769  
    345345    registerField("machineIDs", this, "machineIDs");
    346346    registerField("format", this, "format");
     347    registerField("isFormatCloudOne", this, "isFormatCloudOne");
    347348    registerField("path", this, "path");
    348349    registerField("macAddressPolicy", this, "macAddressPolicy");
     
    396397    m_pFormatComboBox->setItemText(2, UIWizardExportApp::tr("Open Virtualization Format 2.0"));
    397398    m_pFormatComboBox->setItemText(3, UIWizardExportApp::tr("Oracle Public Cloud Format 1.0"));
    398     m_pFormatComboBox->setItemText(4, UIWizardExportApp::tr("Cloud Service Provider"));
    399399    m_pFormatComboBox->setItemData(0, UIWizardExportApp::tr("Write in legacy OVF 0.9 format for compatibility "
    400400                                                            "with other virtualization products."), Qt::ToolTipRole);
     
    402402    m_pFormatComboBox->setItemData(2, UIWizardExportApp::tr("Write in new OVF 2.0 format."), Qt::ToolTipRole);
    403403    m_pFormatComboBox->setItemData(3, UIWizardExportApp::tr("Write in Oracle Public Cloud 1.0 format."), Qt::ToolTipRole);
    404     m_pFormatComboBox->setItemData(4, UIWizardExportApp::tr("Export to Cloud Service Provider."), Qt::ToolTipRole);
     404    /* Translate received values of Format combo-box.
     405     * We are enumerating starting from 0 for simplicity: */
     406    for (int i = 0; i < m_pFormatComboBox->count(); ++i)
     407        if (isFormatCloudOne(i))
     408        {
     409            m_pFormatComboBox->setItemText(i, m_pFormatComboBox->itemData(i, FormatData_Name).toString());
     410            m_pFormatComboBox->setItemData(i, UIWizardExportApp::tr("Export to cloud service provider."), Qt::ToolTipRole);
     411        }
    405412
    406413    /* Translate MAC address policy combo-box: */
     
    431438    /* Translate Account combo-box: */
    432439    m_pAccountComboBoxLabel->setText(UIWizardExportApp::tr("&Account:"));
    433     for (int i = 0; i < m_pAccountComboBox->count(); ++i)
    434     {
    435         m_pAccountComboBox->setItemText(i, UIWizardExportApp::tr("%1: %2", "provider: profile")
    436             .arg(m_pAccountComboBox->itemData(i, AccountData_ProviderName).toString())
    437             .arg(m_pAccountComboBox->itemData(i, AccountData_ProfileName).toString()));
    438     }
    439440
    440441    /* Adjust label widths: */
     
    495496                          || field("format").toString() == "ovf-2.0";
    496497        const bool fOPC =    field("format").toString() == "opc-1.0";
    497         const bool fCSP =    field("format").toString() == "csp-1.0";
     498        const bool fCSP =    isFormatCloudOne();
    498499
    499500        fResult =    (   fOVF
     
    545546    refreshManifestCheckBoxAccess();
    546547    refreshIncludeISOsCheckBoxAccess();
     548    populateAccounts();
     549    populateAccountProperties();
    547550    refreshApplianceSettingsWidget();
    548551}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h

    r73728 r74769  
    3737    Q_PROPERTY(QStringList machineIDs READ machineIDs);
    3838    Q_PROPERTY(QString format READ format WRITE setFormat);
     39    Q_PROPERTY(bool isFormatCloudOne READ isFormatCloudOne);
    3940    Q_PROPERTY(QString path READ path WRITE setPath);
    4041    Q_PROPERTY(MACAddressPolicy macAddressPolicy READ macAddressPolicy WRITE setMACAddressPolicy);
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