Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp	(revision 82548)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp	(revision 82549)
@@ -16,5 +16,5 @@
  */
 
-/* Global includes: */
+/* Qt includes: */
 #include <QButtonGroup>
 #include <QCheckBox>
@@ -24,9 +24,13 @@
 #include <QRadioButton>
 
-/* Local includes: */
+/* GUI includes: */
 #include "QILineEdit.h"
+#include "UICommon.h"
 #include "UIFilePathSelector.h"
 #include "UIWizardCloneVMPageExpert.h"
 #include "UIWizardCloneVM.h"
+
+/* COM includes: */
+#include "CSystemProperties.h"
 
 
@@ -134,17 +138,33 @@
                 m_pCloneOptionsLayout->addWidget(m_pMACComboBoxLabel, 0, 0, 1, 1);
             }
-            m_pAdditionalOptionsLabel = new QLabel;
-            if (m_pAdditionalOptionsLabel)
-            {
-                m_pAdditionalOptionsLabel->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
-                m_pCloneOptionsLayout->addWidget(m_pAdditionalOptionsLabel, 3, 0, 1, 1);
-            }
-            m_pKeepDiskNamesCheckBox = new QCheckBox;
-            if (m_pKeepDiskNamesCheckBox)
-                m_pCloneOptionsLayout->addWidget(m_pKeepDiskNamesCheckBox, 3, 1, 1, 1);
-            m_pKeepHWUUIDsCheckBox = new QCheckBox;
-            if (m_pKeepHWUUIDsCheckBox)
-                m_pCloneOptionsLayout->addWidget(m_pKeepHWUUIDsCheckBox, 4, 1, 1, 1);
-
+
+            /* Load currently supported clone options: */
+            CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
+            const QVector<KCloneOptions> supportedOptions = comProperties.GetSupportedCloneOptions();
+            /* Check whether we support additional clone options at all: */
+            int iVerticalPosition = 3;
+            const bool fSupportedKeepDiskNames = supportedOptions.contains(KCloneOptions_KeepDiskNames);
+            const bool fSupportedKeepHWUUIDs = supportedOptions.contains(KCloneOptions_KeepHwUUIDs);
+            if (fSupportedKeepDiskNames || fSupportedKeepHWUUIDs)
+            {
+                m_pAdditionalOptionsLabel = new QLabel;
+                if (m_pAdditionalOptionsLabel)
+                {
+                    m_pAdditionalOptionsLabel->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+                    m_pCloneOptionsLayout->addWidget(m_pAdditionalOptionsLabel, iVerticalPosition, 0, 1, 1);
+                }
+            }
+            if (fSupportedKeepDiskNames)
+            {
+                m_pKeepDiskNamesCheckBox = new QCheckBox;
+                if (m_pKeepDiskNamesCheckBox)
+                    m_pCloneOptionsLayout->addWidget(m_pKeepDiskNamesCheckBox, iVerticalPosition++, 1, 1, 1);
+            }
+            if (fSupportedKeepHWUUIDs)
+            {
+                m_pKeepHWUUIDsCheckBox = new QCheckBox;
+                if (m_pKeepHWUUIDsCheckBox)
+                    m_pCloneOptionsLayout->addWidget(m_pKeepHWUUIDsCheckBox, iVerticalPosition++, 1, 1, 1);
+            }
         }
 
@@ -216,16 +236,31 @@
     /* Translate MAC address policy combo-box: */
     m_pMACComboBoxLabel->setText(UIWizardCloneVM::tr("MAC Address &Policy:"));
-    m_pMACComboBox->setItemText(MACAddressClonePolicy_KeepAllMACs,
-                                UIWizardCloneVM::tr("Include all network adapter MAC addresses"));
-    m_pMACComboBox->setItemText(MACAddressClonePolicy_KeepNATMACs,
-                                UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses"));
-    m_pMACComboBox->setItemText(MACAddressClonePolicy_StripAllMACs,
-                                UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters"));
-    m_pMACComboBox->setItemData(MACAddressClonePolicy_KeepAllMACs,
-                                UIWizardCloneVM::tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole);
-    m_pMACComboBox->setItemData(MACAddressClonePolicy_KeepNATMACs,
-                                UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole);
-    m_pMACComboBox->setItemData(MACAddressClonePolicy_StripAllMACs,
-                                UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole);
+    for (int i = 0; i < m_pMACComboBox->count(); ++i)
+    {
+        const MACAddressClonePolicy enmPolicy = m_pMACComboBox->itemData(i).value<MACAddressClonePolicy>();
+        switch (enmPolicy)
+        {
+            case MACAddressClonePolicy_KeepAllMACs:
+            {
+                m_pMACComboBox->setItemText(i, UIWizardCloneVM::tr("Include all network adapter MAC addresses"));
+                m_pMACComboBox->setItemData(i, UIWizardCloneVM::tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole);
+                break;
+            }
+            case MACAddressClonePolicy_KeepNATMACs:
+            {
+                m_pMACComboBox->setItemText(i, UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses"));
+                m_pMACComboBox->setItemData(i, UIWizardCloneVM::tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole);
+                break;
+            }
+            case MACAddressClonePolicy_StripAllMACs:
+            {
+                m_pMACComboBox->setItemText(i, UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters"));
+                m_pMACComboBox->setItemData(i, UIWizardCloneVM::tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole);
+                break;
+            }
+            default:
+                break;
+        }
+    }
 
     m_pAdditionalOptionsLabel->setText(UIWizardCloneVM::tr("Additional Options:"));
