Changeset 82545 in vbox
- Timestamp:
- Dec 11, 2019 1:10:51 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic1.cpp
r79365 r82545 32 32 33 33 /* COM includes: */ 34 #include "CSystemProperties.h" 34 35 #include "CVirtualBox.h" 35 36 … … 103 104 void UIWizardCloneVMPage1::updateMACAddressClonePolicyComboToolTip() 104 105 { 105 const int iCurrentIndex = m_pMACComboBox->currentIndex(); 106 const QString strCurrentToolTip = m_pMACComboBox->itemData(iCurrentIndex, Qt::ToolTipRole).toString(); 107 AssertMsg(!strCurrentToolTip.isEmpty(), ("Data not found!")); 106 const QString strCurrentToolTip = m_pMACComboBox->currentData(Qt::ToolTipRole).toString(); 107 AssertMsg(!strCurrentToolTip.isEmpty(), ("Tool-tip data not found!")); 108 108 m_pMACComboBox->setToolTip(strCurrentToolTip); 109 109 } … … 111 111 MACAddressClonePolicy UIWizardCloneVMPage1::macAddressClonePolicy() const 112 112 { 113 const int iIndex = m_pMACComboBox->currentIndex(); 114 return (MACAddressClonePolicy)m_pMACComboBox->itemData(iIndex).toInt(); 113 return m_pMACComboBox->currentData().value<MACAddressClonePolicy>(); 115 114 } 116 115 117 116 void UIWizardCloneVMPage1::setMACAddressClonePolicy(MACAddressClonePolicy enmMACAddressClonePolicy) 118 117 { 119 const int iIndex = m_pMACComboBox->findData( (int)enmMACAddressClonePolicy);118 const int iIndex = m_pMACComboBox->findData(enmMACAddressClonePolicy); 120 119 AssertMsg(iIndex != -1, ("Data not found!")); 121 120 m_pMACComboBox->setCurrentIndex(iIndex); … … 126 125 AssertReturnVoid(m_pMACComboBox->count() == 0); 127 126 128 /* Apply hardcoded policies list: */ 129 for (int i = 0; i < (int)MACAddressClonePolicy_MAX; ++i) 130 { 131 m_pMACComboBox->addItem(QString::number(i)); 132 m_pMACComboBox->setItemData(i, i); 133 } 127 /* Map known clone options to known MAC address export policies: */ 128 QMap<KCloneOptions, MACAddressClonePolicy> knownOptions; 129 knownOptions[KCloneOptions_KeepAllMACs] = MACAddressClonePolicy_KeepAllMACs; 130 knownOptions[KCloneOptions_KeepNATMACs] = MACAddressClonePolicy_KeepNATMACs; 131 132 /* Load currently supported clone options: */ 133 CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties(); 134 const QVector<KCloneOptions> supportedOptions = comProperties.GetSupportedCloneOptions(); 135 136 /* Check which of supported options/policies are known: */ 137 QList<MACAddressClonePolicy> supportedPolicies; 138 foreach (const KCloneOptions &enmOption, supportedOptions) 139 if (knownOptions.contains(enmOption)) 140 supportedPolicies << knownOptions.value(enmOption); 141 142 /* Add supported policies first: */ 143 foreach (const MACAddressClonePolicy &enmPolicy, supportedPolicies) 144 m_pMACComboBox->addItem(QString(), QVariant::fromValue(enmPolicy)); 145 146 /* Add hardcoded policy finally: */ 147 m_pMACComboBox->addItem(QString(), QVariant::fromValue(MACAddressClonePolicy_StripAllMACs)); 134 148 135 149 /* Set default: */ 136 setMACAddressClonePolicy(MACAddressClonePolicy_KeepNATMACs); 150 if (supportedPolicies.contains(MACAddressClonePolicy_KeepNATMACs)) 151 setMACAddressClonePolicy(MACAddressClonePolicy_KeepNATMACs); 152 else 153 setMACAddressClonePolicy(MACAddressClonePolicy_StripAllMACs); 137 154 } 138 155 … … 297 314 /* Translate MAC address policy combo-box: */ 298 315 m_pMACComboBoxLabel->setText(UIWizardCloneVM::tr("MAC Address &Policy:")); 299 m_pMACComboBox->setItemText(MACAddressClonePolicy_KeepAllMACs, 300 UIWizardCloneVM::tr("Include all network adapter MAC addresses")); 301 m_pMACComboBox->setItemText(MACAddressClonePolicy_KeepNATMACs, 302 UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses")); 303 m_pMACComboBox->setItemText(MACAddressClonePolicy_StripAllMACs, 304 UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters")); 305 m_pMACComboBox->setItemData(MACAddressClonePolicy_KeepAllMACs, 306 UIWizardCloneVM::tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole); 307 m_pMACComboBox->setItemData(MACAddressClonePolicy_KeepNATMACs, 308 UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole); 309 m_pMACComboBox->setItemData(MACAddressClonePolicy_StripAllMACs, 310 UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole); 316 for (int i = 0; i < m_pMACComboBox->count(); ++i) 317 { 318 const MACAddressClonePolicy enmPolicy = m_pMACComboBox->itemData(i).value<MACAddressClonePolicy>(); 319 switch (enmPolicy) 320 { 321 case MACAddressClonePolicy_KeepAllMACs: 322 { 323 m_pMACComboBox->setItemText(i, UIWizardCloneVM::tr("Include all network adapter MAC addresses")); 324 m_pMACComboBox->setItemData(i, UIWizardCloneVM::tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole); 325 break; 326 } 327 case MACAddressClonePolicy_KeepNATMACs: 328 { 329 m_pMACComboBox->setItemText(i, UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses")); 330 m_pMACComboBox->setItemData(i, UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole); 331 break; 332 } 333 case MACAddressClonePolicy_StripAllMACs: 334 { 335 m_pMACComboBox->setItemText(i, UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters")); 336 m_pMACComboBox->setItemData(i, UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole); 337 break; 338 } 339 default: 340 break; 341 } 342 } 311 343 312 344 m_pAdditionalOptionsLabel->setText(UIWizardCloneVM::tr("Additional Options:"));
Note:
See TracChangeset
for help on using the changeset viewer.