VirtualBox

Changeset 73146 in vbox


Ignore:
Timestamp:
Jul 16, 2018 9:54:57 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123736
Message:

FE/Qt: bugref:9209: Export Appliance wizard: MAC address export policy combo-box.

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

Legend:

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

    r73090 r73146  
    288288    /* Write the appliance: */
    289289    QVector<KExportOptions> options;
     290    switch (field("macAddressPolicy").value<MACAddressPolicy>())
     291    {
     292        case MACAddressPolicy_StripAllNonNATMACs:
     293            options.append(KExportOptions_StripAllNonNATMACs);
     294            break;
     295        case MACAddressPolicy_StripAllMACs:
     296            options.append(KExportOptions_StripAllMACs);
     297            break;
     298        default:
     299            break;
     300    }
    290301    if (field("manifestSelected").toBool())
    291302        options.append(KExportOptions_CreateManifest);
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp

    r73085 r73146  
    5353    , m_pFormatComboBoxLabel(0)
    5454    , m_pFormatComboBox(0)
     55    , m_pMACComboBoxLabel(0)
     56    , m_pMACComboBox(0)
    5557    , m_pAdditionalLabel(0)
    5658    , m_pManifestCheckbox(0)
     
    8284    /* Set default: */
    8385    setFormat("ovf-1.0");
     86}
     87
     88void UIWizardExportAppPage3::populateMACAddressPolicies()
     89{
     90    AssertReturnVoid(m_pMACComboBox->count() == 0);
     91
     92    /* Apply hardcoded policies list: */
     93    for (int i = 0; i < (int)MACAddressPolicy_MAX; ++i)
     94    {
     95        m_pMACComboBox->addItem(QString::number(i));
     96        m_pMACComboBox->setItemData(i, i);
     97    }
     98
     99    /* Set default: */
     100    setMACAddressPolicy(MACAddressPolicy_StripAllNonNATMACs);
    84101}
    85102
     
    259276}
    260277
     278void UIWizardExportAppPage3::updateMACAddressPolicyComboToolTip()
     279{
     280    const int iCurrentIndex = m_pMACComboBox->currentIndex();
     281    const QString strCurrentToolTip = m_pMACComboBox->itemData(iCurrentIndex, Qt::ToolTipRole).toString();
     282    AssertMsg(!strCurrentToolTip.isEmpty(), ("Data not found!"));
     283    m_pMACComboBox->setToolTip(strCurrentToolTip);
     284}
     285
    261286void UIWizardExportAppPage3::updateProviderComboToolTip()
    262287{
     
    305330    AssertMsg(iIndex != -1, ("Field not found!"));
    306331    m_pFormatComboBox->setCurrentIndex(iIndex);
     332}
     333
     334MACAddressPolicy UIWizardExportAppPage3::macAddressPolicy() const
     335{
     336    const int iIndex = m_pMACComboBox->currentIndex();
     337    return (MACAddressPolicy)m_pMACComboBox->itemData(iIndex).toInt();
     338}
     339
     340void UIWizardExportAppPage3::setMACAddressPolicy(MACAddressPolicy enmMACAddressPolicy)
     341{
     342    const int iIndex = m_pMACComboBox->findData((int)enmMACAddressPolicy);
     343    AssertMsg(iIndex != -1, ("Field not found!"));
     344    m_pMACComboBox->setCurrentIndex(iIndex);
    307345}
    308346
     
    429467                    }
    430468
     469                    /* Create MAC policy combo-box: */
     470                    m_pMACComboBox = new QComboBox;
     471                    if (m_pMACComboBox)
     472                    {
     473                        /* Add into layout: */
     474                        pSettingsLayout1->addWidget(m_pMACComboBox, 2, 1);
     475                    }
     476                    /* Create format combo-box label: */
     477                    m_pMACComboBoxLabel = new QLabel;
     478                    if (m_pMACComboBoxLabel)
     479                    {
     480                        m_pMACComboBoxLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
     481                        m_pMACComboBoxLabel->setBuddy(m_pMACComboBox);
     482
     483                        /* Add into layout: */
     484                        pSettingsLayout1->addWidget(m_pMACComboBoxLabel, 2, 0);
     485                    }
     486
    431487                    /* Create advanced label: */
    432488                    m_pAdditionalLabel = new QLabel;
     
    436492
    437493                        /* Add into layout: */
    438                         pSettingsLayout1->addWidget(m_pAdditionalLabel, 2, 0);
     494                        pSettingsLayout1->addWidget(m_pAdditionalLabel, 3, 0);
    439495                    }
    440496                    /* Create manifest check-box: */
     
    443499                    {
    444500                        /* Add into layout: */
    445                         pSettingsLayout1->addWidget(m_pManifestCheckbox, 2, 1);
     501                        pSettingsLayout1->addWidget(m_pManifestCheckbox, 3, 1);
    446502                    }
    447503                    /* Create include ISOs check-box: */
     
    450506                    {
    451507                        /* Add into layout: */
    452                         pSettingsLayout1->addWidget(m_pIncludeISOsCheckbox, 3, 1);
     508                        pSettingsLayout1->addWidget(m_pIncludeISOsCheckbox, 4, 1);
    453509                    }
    454510
     
    458514                    {
    459515                        /* Add into layout: */
    460                         pSettingsLayout1->addWidget(pPlaceholder, 4, 0, 1, 2);
     516                        pSettingsLayout1->addWidget(pPlaceholder, 5, 0, 1, 2);
    461517                    }
    462518                }
     
    545601    /* Populate formats: */
    546602    populateFormats();
     603    /* Populate MAC address policies: */
     604    populateMACAddressPolicies();
    547605    /* Populate providers: */
    548606    populateProviders();
     
    556614    connect(m_pFormatComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
    557615            this, &UIWizardExportAppPageBasic3::sltHandleFormatComboChange);
     616    connect(m_pMACComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
     617            this, &UIWizardExportAppPageBasic3::sltHandleMACAddressPolicyComboChange);
    558618    connect(m_pProviderComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
    559619            this, &UIWizardExportAppPageBasic3::sltHandleProviderComboChange);
     
    564624    registerField("path", this, "path");
    565625    registerField("format", this, "format");
     626    registerField("macAddressPolicy", this, "macAddressPolicy");
    566627    registerField("manifestSelected", this, "manifestSelected");
    567628    registerField("includeISOsSelected", this, "includeISOsSelected");
     
    613674    m_pFormatComboBox->setItemData(3, UIWizardExportApp::tr("Write in Oracle Public Cloud 1.0 format."), Qt::ToolTipRole);
    614675
     676    /* Translate MAC address policy combo-box: */
     677    m_pMACComboBoxLabel->setText(UIWizardExportApp::tr("MAC Address &Policy:"));
     678    m_pMACComboBox->setItemText(MACAddressPolicy_KeepAllMACs,
     679                                UIWizardExportApp::tr("Include all network adapter MAC addresses"));
     680    m_pMACComboBox->setItemText(MACAddressPolicy_StripAllNonNATMACs,
     681                                UIWizardExportApp::tr("Include only NAT network adapter MAC addresses"));
     682    m_pMACComboBox->setItemText(MACAddressPolicy_StripAllMACs,
     683                                UIWizardExportApp::tr("Strip all network adapter MAC addresses"));
     684    m_pMACComboBox->setItemData(MACAddressPolicy_KeepAllMACs,
     685                                UIWizardExportApp::tr("Include all network adapter MAC addresses to exported "
     686                                                      "appliance archive."), Qt::ToolTipRole);
     687    m_pMACComboBox->setItemData(MACAddressPolicy_StripAllNonNATMACs,
     688                                UIWizardExportApp::tr("Include only NAT network adapter MAC addresses to "
     689                                                      "exported appliance archive."), Qt::ToolTipRole);
     690    m_pMACComboBox->setItemData(MACAddressPolicy_StripAllMACs,
     691                                UIWizardExportApp::tr("Strip all network adapter MAC addresses from exported "
     692                                                      "appliance archive."), Qt::ToolTipRole);
     693
    615694    /* Translate addtional stuff: */
    616695    m_pAdditionalLabel->setText(UIWizardExportApp::tr("Additionally:"));
     
    646725    /* Update tool-tips: */
    647726    updateFormatComboToolTip();
     727    updateMACAddressPolicyComboToolTip();
    648728    updateProviderComboToolTip();
    649729}
     
    743823}
    744824
     825void UIWizardExportAppPageBasic3::sltHandleMACAddressPolicyComboChange()
     826{
     827    /* Update tool-tip: */
     828    updateMACAddressPolicyComboToolTip();
     829}
     830
    745831void UIWizardExportAppPageBasic3::sltHandleProviderComboChange()
    746832{
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.h

    r73085 r73146  
    3636
    3737
     38/** MAC address policies. */
     39enum MACAddressPolicy
     40{
     41    MACAddressPolicy_KeepAllMACs,
     42    MACAddressPolicy_StripAllNonNATMACs,
     43    MACAddressPolicy_StripAllMACs,
     44    MACAddressPolicy_MAX
     45};
     46Q_DECLARE_METATYPE(MACAddressPolicy);
     47
     48
    3849/** UIWizardPageBase extension for 3rd page of the Export Appliance wizard. */
    3950class UIWizardExportAppPage3 : public UIWizardPageBase
     
    4657    /** Populates formats. */
    4758    void populateFormats();
     59    /** Populates MAC address policies. */
     60    void populateMACAddressPolicies();
    4861    /** Populates providers. */
    4962    void populateProviders();
     
    6982    /** Updates format combo tool-tips. */
    7083    void updateFormatComboToolTip();
     84    /** Updates MAC address policy combo tool-tips. */
     85    void updateMACAddressPolicyComboToolTip();
    7186    /** Updates provider combo tool-tips. */
    7287    void updateProviderComboToolTip();
     
    85100    void setFormat(const QString &strFormat);
    86101
     102    /** Returns MAC address policy. */
     103    MACAddressPolicy macAddressPolicy() const;
     104    /** Defines @a enmMACAddressPolicy. */
     105    void setMACAddressPolicy(MACAddressPolicy enmMACAddressPolicy);
     106
    87107    /** Returns whether manifest selected. */
    88108    bool isManifestSelected() const;
     
    125145    /** Holds the format combo-box instance. */
    126146    QComboBox *m_pFormatComboBox;
     147
     148    /** Holds the MAC address policy combo-box label instance. */
     149    QLabel    *m_pMACComboBoxLabel;
     150    /** Holds the MAC address policy check-box instance. */
     151    QComboBox *m_pMACComboBox;
    127152
    128153    /** Holds the additional label instance. */
     
    153178    Q_PROPERTY(QString path READ path WRITE setPath);
    154179    Q_PROPERTY(QString format READ format WRITE setFormat);
     180    Q_PROPERTY(MACAddressPolicy macAddressPolicy READ macAddressPolicy WRITE setMACAddressPolicy);
    155181    Q_PROPERTY(bool manifestSelected READ isManifestSelected WRITE setManifestSelected);
    156182    Q_PROPERTY(bool includeISOsSelected READ isIncludeISOsSelected WRITE setIncludeISOsSelected);
     
    187213    void sltHandleFormatComboChange();
    188214
     215    /** Handles change in MAC address policy combo-box. */
     216    void sltHandleMACAddressPolicyComboChange();
     217
    189218    /** Handles change in provider combo-box. */
    190219    void sltHandleProviderComboChange();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.cpp

    r73085 r73146  
    205205                            }
    206206
     207                            /* Create MAC policy combo-box: */
     208                            m_pMACComboBox = new QComboBox;
     209                            if (m_pMACComboBox)
     210                            {
     211                                /* Add into layout: */
     212                                pSettingsLayout1->addWidget(m_pMACComboBox, 2, 1);
     213                            }
     214                            /* Create format combo-box label: */
     215                            m_pMACComboBoxLabel = new QLabel;
     216                            if (m_pMACComboBoxLabel)
     217                            {
     218                                m_pMACComboBoxLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
     219                                m_pMACComboBoxLabel->setBuddy(m_pMACComboBox);
     220
     221                                /* Add into layout: */
     222                                pSettingsLayout1->addWidget(m_pMACComboBoxLabel, 2, 0);
     223                            }
     224
    207225                            /* Create advanced label: */
    208226                            m_pAdditionalLabel = new QLabel;
     
    212230
    213231                                /* Add into layout: */
    214                                 pSettingsLayout1->addWidget(m_pAdditionalLabel, 2, 0);
     232                                pSettingsLayout1->addWidget(m_pAdditionalLabel, 3, 0);
    215233                            }
    216234                            /* Create manifest check-box editor: */
     
    219237                            {
    220238                                /* Add into layout: */
    221                                 pSettingsLayout1->addWidget(m_pManifestCheckbox, 2, 1);
     239                                pSettingsLayout1->addWidget(m_pManifestCheckbox, 3, 1);
    222240                            }
    223241                            /* Create include ISOs check-box: */
     
    226244                            {
    227245                                /* Add into layout: */
    228                                 pSettingsLayout1->addWidget(m_pIncludeISOsCheckbox, 3, 1);
     246                                pSettingsLayout1->addWidget(m_pIncludeISOsCheckbox, 4, 1);
    229247                            }
    230248
     
    234252                            {
    235253                                /* Add into layout: */
    236                                 pSettingsLayout1->addWidget(pPlaceholder, 4, 0, 1, 2);
     254                                pSettingsLayout1->addWidget(pPlaceholder, 5, 0, 1, 2);
    237255                            }
    238256                        }
     
    335353    /* Populate formats: */
    336354    populateFormats();
     355    /* Populate MAC address policies: */
     356    populateMACAddressPolicies();
    337357    /* Populate providers: */
    338358    populateProviders();
     
    349369    connect(m_pFormatComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
    350370            this, &UIWizardExportAppPageExpert::sltHandleFormatComboChange);
     371    connect(m_pMACComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
     372            this, &UIWizardExportAppPageExpert::sltHandleMACAddressPolicyComboChange);
    351373    connect(m_pProviderComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
    352374            this, &UIWizardExportAppPageExpert::sltHandleProviderComboChange);
     
    364386    registerField("path", this, "path");
    365387    registerField("format", this, "format");
     388    registerField("macAddressPolicy", this, "macAddressPolicy");
    366389    registerField("manifestSelected", this, "manifestSelected");
    367390    registerField("includeISOsSelected", this, "includeISOsSelected");
     
    421444    m_pFormatComboBox->setItemData(3, UIWizardExportApp::tr("Write in Oracle Public Cloud 1.0 format."), Qt::ToolTipRole);
    422445
     446    /* Translate MAC address policy combo-box: */
     447    m_pMACComboBoxLabel->setText(UIWizardExportApp::tr("MAC Address &Policy:"));
     448    m_pMACComboBox->setItemText(MACAddressPolicy_KeepAllMACs,
     449                                UIWizardExportApp::tr("Include all network adapter MAC addresses"));
     450    m_pMACComboBox->setItemText(MACAddressPolicy_StripAllNonNATMACs,
     451                                UIWizardExportApp::tr("Include only NAT network adapter MAC addresses"));
     452    m_pMACComboBox->setItemText(MACAddressPolicy_StripAllMACs,
     453                                UIWizardExportApp::tr("Strip all network adapter MAC addresses"));
     454    m_pMACComboBox->setItemData(MACAddressPolicy_KeepAllMACs,
     455                                UIWizardExportApp::tr("Include all network adapter MAC addresses to exported "
     456                                                      "appliance archive."), Qt::ToolTipRole);
     457    m_pMACComboBox->setItemData(MACAddressPolicy_StripAllNonNATMACs,
     458                                UIWizardExportApp::tr("Include only NAT network adapter MAC addresses to "
     459                                                      "exported appliance archive."), Qt::ToolTipRole);
     460    m_pMACComboBox->setItemData(MACAddressPolicy_StripAllMACs,
     461                                UIWizardExportApp::tr("Strip all network adapter MAC addresses from exported "
     462                                                      "appliance archive."), Qt::ToolTipRole);
     463
    423464    /* Translate addtional stuff: */
    424465    m_pAdditionalLabel->setText(UIWizardExportApp::tr("Additionally:"));
     
    451492    /* Update tool-tips: */
    452493    updateFormatComboToolTip();
     494    updateMACAddressPolicyComboToolTip();
    453495    updateProviderComboToolTip();
    454496}
     
    558600}
    559601
     602void UIWizardExportAppPageExpert::sltHandleMACAddressPolicyComboChange()
     603{
     604    /* Update tool-tip: */
     605    updateMACAddressPolicyComboToolTip();
     606}
     607
    560608void UIWizardExportAppPageExpert::sltHandleProviderComboChange()
    561609{
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h

    r73085 r73146  
    4343    Q_PROPERTY(QString path READ path WRITE setPath);
    4444    Q_PROPERTY(QString format READ format WRITE setFormat);
     45    Q_PROPERTY(MACAddressPolicy macAddressPolicy READ macAddressPolicy WRITE setMACAddressPolicy);
    4546    Q_PROPERTY(bool manifestSelected READ isManifestSelected WRITE setManifestSelected);
    4647    Q_PROPERTY(bool includeISOsSelected READ isIncludeISOsSelected WRITE setIncludeISOsSelected);
     
    8889    void sltHandleFormatComboChange();
    8990
     91    /** Handles change in MAC address policy combo-box. */
     92    void sltHandleMACAddressPolicyComboChange();
     93
    9094    /** Handles change in provider combo-box. */
    9195    void sltHandleProviderComboChange();
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