Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp	(revision 90607)
@@ -180,7 +180,7 @@
         {
             addPage(new UIWizardCloneVMPageBasic1(m_machine.GetName(), strDefaultMachineFolder, m_strGroup));
-    //         setPage(Page2, new UIWizardCloneVMPageBasic2(m_snapshot.isNull()));
-    //         if (m_machine.GetSnapshotCount() > 0)
-    //             setPage(Page3, new UIWizardCloneVMPageBasic3(m_snapshot.isNull() ? false : m_snapshot.GetChildrenCount() > 0));
+            addPage(new UIWizardCloneVMPageBasic2(m_snapshot.isNull()));
+            if (m_machine.GetSnapshotCount() > 0)
+                addPage(new UIWizardCloneVMPageBasic3(m_snapshot.isNull() ? false : m_snapshot.GetChildrenCount() > 0));
             break;
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.cpp	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.cpp	(revision 90607)
@@ -18,6 +18,4 @@
 /* Qt includes: */
 #include <QVBoxLayout>
-#include <QRadioButton>
-#include <QButtonGroup>
 
 /* GUI includes: */
@@ -26,4 +24,5 @@
 #include "UIWizardCloneVM.h"
 #include "QIRichTextLabel.h"
+#include "UIWizardCloneVMEditors.h"
 
 /* COM includes: */
@@ -31,83 +30,48 @@
 
 
-UIWizardCloneVMPage2::UIWizardCloneVMPage2(bool fAdditionalInfo)
-    : m_fAdditionalInfo(fAdditionalInfo)
-    , m_pButtonGroup(0)
-    , m_pFullCloneRadio(0)
-    , m_pLinkedCloneRadio(0)
+// UIWizardCloneVMPage2::UIWizardCloneVMPage2(bool fAdditionalInfo)
+//     : m_fAdditionalInfo(fAdditionalInfo)
+//     , m_pButtonGroup(0)
+//     , m_pFullCloneRadio(0)
+//     , m_pLinkedCloneRadio(0)
+// {
+// }
+
+// bool UIWizardCloneVMPage2::linkedClone() const
+// {
+//     return m_pLinkedCloneRadio ? m_pLinkedCloneRadio->isChecked() : false;
+// }
+
+UIWizardCloneVMPageBasic2::UIWizardCloneVMPageBasic2(bool fAdditionalInfo)
+    : m_pLabel(0)
+    , m_fAdditionalInfo(fAdditionalInfo)
+    , m_pCloneTypeGroupBox(0)
 {
+    prepare();
 }
 
-bool UIWizardCloneVMPage2::linkedClone() const
+void UIWizardCloneVMPageBasic2::prepare()
 {
-    return m_pLinkedCloneRadio ? m_pLinkedCloneRadio->isChecked() : false;
+    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
+    AssertReturnVoid(pMainLayout);
+    m_pLabel = new QIRichTextLabel(this);
+    if (m_pLabel)
+        pMainLayout->addWidget(m_pLabel);
+
+    m_pCloneTypeGroupBox = new UICloneVMCloneTypeGroupBox;
+    if (m_pCloneTypeGroupBox)
+    {
+        m_pCloneTypeGroupBox->setFlat(true);
+        pMainLayout->addWidget(m_pCloneTypeGroupBox);
+    }
+
+    pMainLayout->addStretch();
+
+
 }
 
-UIWizardCloneVMPageBasic2::UIWizardCloneVMPageBasic2(bool fAdditionalInfo)
-    : UIWizardCloneVMPage2(fAdditionalInfo)
-    , m_pLabel(0)
+void UIWizardCloneVMPageBasic2::sltButtonClicked(QAbstractButton */*pButton*/)
 {
-    /* Prepare main layout: */
-    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
-    if (pMainLayout)
-    {
-        /* Prepare description label: */
-        m_pLabel = new QIRichTextLabel(this);
-        if (m_pLabel)
-            pMainLayout->addWidget(m_pLabel);
-
-        /* Prepare clone-type options layout: */
-        QVBoxLayout *pCloneTypeCntLayout = new QVBoxLayout;
-        if (pCloneTypeCntLayout)
-        {
-            /* Prepare clone-type options button-group: */
-            m_pButtonGroup = new QButtonGroup(this);
-            if (m_pButtonGroup)
-            {
-                /* Prepare full clone option radio-button: */
-                m_pFullCloneRadio = new QRadioButton(this);
-                if (m_pFullCloneRadio)
-                {
-                    m_pFullCloneRadio->setChecked(true);
-                    m_pButtonGroup->addButton(m_pFullCloneRadio);
-                    pCloneTypeCntLayout->addWidget(m_pFullCloneRadio);
-                }
-
-                /* Load currently supported clone options: */
-                CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
-                const QVector<KCloneOptions> supportedOptions = comProperties.GetSupportedCloneOptions();
-                /* Check whether we support linked clone option at all: */
-                const bool fSupportedLinkedClone = supportedOptions.contains(KCloneOptions_Link);
-
-                /* Prepare linked clone option radio-button: */
-                if (fSupportedLinkedClone)
-                {
-                    m_pLinkedCloneRadio = new QRadioButton(this);
-                    if (m_pLinkedCloneRadio)
-                    {
-                        m_pButtonGroup->addButton(m_pLinkedCloneRadio);
-                        pCloneTypeCntLayout->addWidget(m_pLinkedCloneRadio);
-                    }
-                }
-            }
-
-            pMainLayout->addLayout(pCloneTypeCntLayout);
-        }
-
-        /* Stretch under buttons: */
-        pMainLayout->addStretch();
-    }
-
-    /* Setup connections: */
-    connect(m_pButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked),
-            this, &UIWizardCloneVMPageBasic2::sltButtonClicked);
-
-    /* Register fields: */
-    registerField("linkedClone", this, "linkedClone");
-}
-
-void UIWizardCloneVMPageBasic2::sltButtonClicked(QAbstractButton *pButton)
-{
-    setFinalPage(pButton != m_pFullCloneRadio);
+    //setFinalPage(pButton != m_pFullCloneRadio);
 }
 
@@ -130,9 +94,6 @@
         strLabel += UIWizardCloneVM::tr("<p>If you create a <b>Linked clone</b> then a new snapshot will be created "
                                         "in the original virtual machine as part of the cloning process.</p>");
-    m_pLabel->setText(strLabel);
-
-    m_pFullCloneRadio->setText(UIWizardCloneVM::tr("&Full clone"));
-    if (m_pLinkedCloneRadio)
-        m_pLinkedCloneRadio->setText(UIWizardCloneVM::tr("&Linked clone"));
+    if (m_pLabel)
+        m_pLabel->setText(strLabel);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.h	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic2.h	(revision 90607)
@@ -23,36 +23,34 @@
 
 /* Local includes: */
-#include "UIWizardPage.h"
+#include "UINativeWizardPage.h"
 
 /* Forward declarations: */
+class QAbstractButton;
 class QButtonGroup;
 class QRadioButton;
 class QIRichTextLabel;
+class UICloneVMCloneTypeGroupBox;
 
-/* 2nd page of the Clone Virtual Machine wizard (base part): */
-class UIWizardCloneVMPage2 : public UIWizardPageBase
-{
-protected:
+// /* 2nd page of the Clone Virtual Machine wizard (base part): */
+// class UIWizardCloneVMPage2 : public UIWizardPageBase
+// {
+// protected:
 
-    /* Constructor: */
-    UIWizardCloneVMPage2(bool fAdditionalInfo);
+//     /* Constructor: */
+//     UIWizardCloneVMPage2(bool fAdditionalInfo);
 
-    /* Stuff for 'linkedClone' field: */
-    bool linkedClone() const;
+//     /* Stuff for 'linkedClone' field: */
+//     bool linkedClone() const;
 
-    /* Variables: */
-    bool m_fAdditionalInfo;
+//     /* Variables: */
 
-    /* Widgets: */
-    QButtonGroup *m_pButtonGroup;
-    QRadioButton *m_pFullCloneRadio;
-    QRadioButton *m_pLinkedCloneRadio;
-};
+//     /* Widgets: */
+// };
 
 /* 2nd page of the Clone Virtual Machine wizard (basic extension): */
-class UIWizardCloneVMPageBasic2 : public UIWizardPage, public UIWizardCloneVMPage2
+class UIWizardCloneVMPageBasic2 : public UINativeWizardPage
 {
     Q_OBJECT;
-    Q_PROPERTY(bool linkedClone READ linkedClone);
+    //Q_PROPERTY(bool linkedClone READ linkedClone);
 
 public:
@@ -73,4 +71,5 @@
     /* Prepare stuff: */
     void initializePage();
+    void prepare();
 
     /* Validation stuff: */
@@ -79,4 +78,6 @@
     /* Widgets: */
     QIRichTextLabel *m_pLabel;
+    bool m_fAdditionalInfo;
+    UICloneVMCloneTypeGroupBox *m_pCloneTypeGroupBox;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.cpp	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.cpp	(revision 90607)
@@ -21,66 +21,61 @@
 
 /* Local includes: */
+#include "UIWizardCloneVM.h"
+#include "UIWizardCloneVMEditors.h"
 #include "UIWizardCloneVMPageBasic3.h"
-#include "UIWizardCloneVM.h"
 #include "QIRichTextLabel.h"
 
 
-UIWizardCloneVMPage3::UIWizardCloneVMPage3(bool fShowChildsOption)
-    : m_fShowChildsOption(fShowChildsOption)
+// UIWizardCloneVMPage3::UIWizardCloneVMPage3(bool fShowChildsOption)
+//     : m_fShowChildsOption(fShowChildsOption)
+// {
+// }
+
+// KCloneMode UIWizardCloneVMPage3::cloneMode() const
+// {
+//     if (m_pMachineAndChildsRadio->isChecked())
+//         return KCloneMode_MachineAndChildStates;
+//     else if (m_pAllRadio->isChecked())
+//         return KCloneMode_AllStates;
+//     return KCloneMode_MachineState;
+// }
+
+// void UIWizardCloneVMPage3::setCloneMode(KCloneMode cloneMode)
+// {
+//     switch (cloneMode)
+//     {
+//         case KCloneMode_MachineState: m_pMachineRadio->setChecked(true); break;
+//         case KCloneMode_MachineAndChildStates: m_pMachineAndChildsRadio->setChecked(true); break;
+//         case KCloneMode_AllStates: m_pAllRadio->setChecked(true); break;
+//         case KCloneMode_Max: break; /* Shut up, MSC! */
+//     }
+// }
+
+UIWizardCloneVMPageBasic3::UIWizardCloneVMPageBasic3(bool fShowChildsOption)
+    : m_pLabel(0)
+    , m_pCloneModeGroupBox(0)
+    , m_fShowChildsOption(fShowChildsOption)
 {
+    prepare();
 }
 
-KCloneMode UIWizardCloneVMPage3::cloneMode() const
+void UIWizardCloneVMPageBasic3::prepare()
 {
-    if (m_pMachineAndChildsRadio->isChecked())
-        return KCloneMode_MachineAndChildStates;
-    else if (m_pAllRadio->isChecked())
-        return KCloneMode_AllStates;
-    return KCloneMode_MachineState;
-}
+    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
+    AssertReturnVoid(pMainLayout);
+    m_pLabel = new QIRichTextLabel(this);
 
-void UIWizardCloneVMPage3::setCloneMode(KCloneMode cloneMode)
-{
-    switch (cloneMode)
+    if (m_pLabel)
+        pMainLayout->addWidget(m_pLabel);
+
+    m_pCloneModeGroupBox = new UICloneVMCloneModeGroupBox(m_fShowChildsOption);
+    if (m_pCloneModeGroupBox)
     {
-        case KCloneMode_MachineState: m_pMachineRadio->setChecked(true); break;
-        case KCloneMode_MachineAndChildStates: m_pMachineAndChildsRadio->setChecked(true); break;
-        case KCloneMode_AllStates: m_pAllRadio->setChecked(true); break;
-        case KCloneMode_Max: break; /* Shut up, MSC! */
+        pMainLayout->addWidget(m_pCloneModeGroupBox);
+        m_pCloneModeGroupBox->setFlat(true);
     }
-}
+    pMainLayout->addStretch();
 
-UIWizardCloneVMPageBasic3::UIWizardCloneVMPageBasic3(bool fShowChildsOption)
-    : UIWizardCloneVMPage3(fShowChildsOption)
-{
-    /* Create widgets: */
-    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
-    {
-        m_pLabel = new QIRichTextLabel(this);
-        QVBoxLayout *pCloneModeCntLayout = new QVBoxLayout;
-        {
-            m_pMachineRadio = new QRadioButton(this);
-            {
-                m_pMachineRadio->setChecked(true);
-            }
-            m_pMachineAndChildsRadio = new QRadioButton(this);
-            {
-                if (!m_fShowChildsOption)
-                   m_pMachineAndChildsRadio->hide();
-            }
-            m_pAllRadio = new QRadioButton(this);
-            pCloneModeCntLayout->addWidget(m_pMachineRadio);
-            pCloneModeCntLayout->addWidget(m_pMachineAndChildsRadio);
-            pCloneModeCntLayout->addWidget(m_pAllRadio);
-        }
-        pMainLayout->addWidget(m_pLabel);
-        pMainLayout->addLayout(pCloneModeCntLayout);
-        pMainLayout->addStretch();
-    }
-
-    /* Register classes: */
-    qRegisterMetaType<KCloneMode>();
-    /* Register fields: */
-    registerField("cloneMode", this, "cloneMode");
+    retranslateUi();
 }
 
@@ -117,7 +112,7 @@
                           .arg(strOpt3));
 
-    m_pMachineRadio->setText(UIWizardCloneVM::tr("Current &machine state"));
-    m_pMachineAndChildsRadio->setText(UIWizardCloneVM::tr("Current &snapshot tree branch"));
-    m_pAllRadio->setText(UIWizardCloneVM::tr("&Everything"));
+    // m_pMachineRadio->setText(UIWizardCloneVM::tr("Current &machine state"));
+    // m_pMachineAndChildsRadio->setText(UIWizardCloneVM::tr("Current &snapshot tree branch"));
+    // m_pAllRadio->setText(UIWizardCloneVM::tr("&Everything"));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.h	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageBasic3.h	(revision 90607)
@@ -23,5 +23,5 @@
 
 /* GUI includes: */
-#include "UIWizardPage.h"
+#include "UINativeWizardPage.h"
 
 /* COM includes: */
@@ -31,31 +31,30 @@
 class QRadioButton;
 class QIRichTextLabel;
+class UICloneVMCloneModeGroupBox;
 
-/* 3rd page of the Clone Virtual Machine wizard (base part): */
-class UIWizardCloneVMPage3 : public UIWizardPageBase
-{
-protected:
+// /* 3rd page of the Clone Virtual Machine wizard (base part): */
+// class UIWizardCloneVMPage3 : public UIWizardPageBase
+// {
+// protected:
 
-    /* Constructor: */
-    UIWizardCloneVMPage3(bool fShowChildsOption);
+//     /* Constructor: */
+//     UIWizardCloneVMPage3(bool fShowChildsOption);
 
-    /* Stuff for 'cloneMode' field: */
-    KCloneMode cloneMode() const;
-    void setCloneMode(KCloneMode cloneMode);
+//     /* Stuff for 'cloneMode' field: */
+//     KCloneMode cloneMode() const;
+//     void setCloneMode(KCloneMode cloneMode);
 
-    /* Variables: */
-    bool m_fShowChildsOption;
+//     /* Variables: */
 
-    /* Widgets: */
-    QRadioButton *m_pMachineRadio;
-    QRadioButton *m_pMachineAndChildsRadio;
-    QRadioButton *m_pAllRadio;
-};
+//     /* Widgets: */
+//     QRadioButton *m_pMachineRadio;
+//     QRadioButton *m_pMachineAndChildsRadio;
+//     QRadioButton *m_pAllRadio;
+// };
 
 /* 3rd page of the Clone Virtual Machine wizard (basic extension): */
-class UIWizardCloneVMPageBasic3 : public UIWizardPage, public UIWizardCloneVMPage3
+class UIWizardCloneVMPageBasic3 : public UINativeWizardPage
 {
     Q_OBJECT;
-    Q_PROPERTY(KCloneMode cloneMode READ cloneMode WRITE setCloneMode);
 
 public:
@@ -71,4 +70,5 @@
     /* Prepare stuff: */
     void initializePage();
+    void prepare();
 
     /* Validation stuff: */
@@ -77,6 +77,9 @@
     /* Widgets: */
     QIRichTextLabel *m_pLabel;
+    UICloneVMCloneModeGroupBox *m_pCloneModeGroupBox;
+
+    bool m_fShowChildsOption;
+
 };
 
 #endif /* !FEQT_INCLUDED_SRC_wizards_clonevm_UIWizardCloneVMPageBasic3_h */
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp	(revision 90607)
@@ -36,7 +36,6 @@
 
 UIWizardCloneVMPageExpert::UIWizardCloneVMPageExpert(const QString &/*strOriginalName*/, const QString &/*strDefaultPath*/,
-                                                     bool fAdditionalInfo, bool fShowChildsOption, const QString &/*strGroup*/)
-    : UIWizardCloneVMPage2(fAdditionalInfo)
-    , UIWizardCloneVMPage3(fShowChildsOption)
+                                                     bool /*fAdditionalInfo*/, bool fShowChildsOption, const QString &/*strGroup*/)
+    : m_fShowChildsOption(fShowChildsOption)
 {
     /* Create widgets: */
@@ -217,16 +216,16 @@
 }
 
-void UIWizardCloneVMPageExpert::sltButtonToggled(QAbstractButton *pButton, bool fChecked)
-{
-    if (m_pLinkedCloneRadio && pButton == m_pLinkedCloneRadio && fChecked)
-    {
-        m_pCloneModeCnt->setEnabled(false);
-        m_pMachineRadio->setChecked(true);
-    }
-    else
-    {
-        m_pCloneModeCnt->setEnabled(true);
-    }
-}
+//void UIWizardCloneVMPageExpert::sltButtonToggled(QAbstractButton */*pButton*/, bool /*fChecked*/)
+//{
+    // if (m_pLinkedCloneRadio && pButton == m_pLinkedCloneRadio && fChecked)
+    // {
+    //     m_pCloneModeCnt->setEnabled(false);
+    //     m_pMachineRadio->setChecked(true);
+    // }
+    // else
+    // {
+    //     m_pCloneModeCnt->setEnabled(true);
+    // }
+//}
 
 void UIWizardCloneVMPageExpert::retranslateUi()
@@ -327,11 +326,11 @@
 }
 
-void UIWizardCloneVMPageExpert::sltNameChanged()
-{
+//void UIWizardCloneVMPageExpert::sltNameChanged()
+//{
     //composeCloneFilePath();
-}
-
-void UIWizardCloneVMPageExpert::sltPathChanged()
-{
+//}
+
+//void UIWizardCloneVMPageExpert::sltPathChanged()
+//{
     //composeCloneFilePath();
-}
+//}
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.h	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVMPageExpert.h	(revision 90607)
@@ -23,7 +23,5 @@
 
 /* Local includes: */
-#include "UIWizardCloneVMPageBasic1.h"
-#include "UIWizardCloneVMPageBasic2.h"
-#include "UIWizardCloneVMPageBasic3.h"
+#include "UINativeWizardPage.h"
 
 /* Forward declarations: */
@@ -32,7 +30,5 @@
 
 /* Expert page of the Clone Virtual Machine wizard: */
-class UIWizardCloneVMPageExpert : public UIWizardPage,
-                                  public UIWizardCloneVMPage2,
-                                  public UIWizardCloneVMPage3
+class UIWizardCloneVMPageExpert : public UINativeWizardPage
 {
     Q_OBJECT;
@@ -54,7 +50,7 @@
 
     /* Button toggle handler: */
-    void sltButtonToggled(QAbstractButton *pButton, bool fChecked);
-    void sltNameChanged();
-    void sltPathChanged();
+    // void sltButtonToggled(QAbstractButton *pButton, bool fChecked);
+    // void sltNameChanged();
+    // void sltPathChanged();
 
 private:
@@ -76,4 +72,6 @@
     QGroupBox   *m_pCloneOptionsCnt;
     QGridLayout *m_pCloneOptionsLayout;
+
+    bool m_fShowChildsOption;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.cpp	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.cpp	(revision 90607)
@@ -17,5 +17,5 @@
 
 /* Qt includes: */
-// #include <QButtonGroup>
+#include <QButtonGroup>
 #include <QCheckBox>
 #include <QComboBox>
@@ -23,5 +23,5 @@
 // #include <QFileInfo>
 #include <QLabel>
-// #include <QRadioButton>
+#include <QRadioButton>
 #include <QGridLayout>
 
@@ -50,6 +50,6 @@
 
 /*********************************************************************************************************************************
-*   UICloneVMNamePathEditor implementation.                                                                                      *
-*********************************************************************************************************************************/
+ *   UICloneVMNamePathEditor implementation.                                                                                      *
+ *********************************************************************************************************************************/
 
 UICloneVMNamePathEditor::UICloneVMNamePathEditor(const QString &strOriginalName, const QString &strDefaultPath, QWidget *pParent /* = 0 */)
@@ -130,8 +130,7 @@
 
 
-
 /*********************************************************************************************************************************
-*   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
-*********************************************************************************************************************************/
+ *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
+ *********************************************************************************************************************************/
 
 
@@ -237,21 +236,21 @@
         {
             case MACAddressClonePolicy_KeepAllMACs:
-            {
-                m_pMACComboBox->setItemText(i, tr("Include all network adapter MAC addresses"));
-                m_pMACComboBox->setItemData(i, tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole);
-                break;
-            }
+                {
+                    m_pMACComboBox->setItemText(i, tr("Include all network adapter MAC addresses"));
+                    m_pMACComboBox->setItemData(i, tr("Include all network adapter MAC addresses during cloning."), Qt::ToolTipRole);
+                    break;
+                }
             case MACAddressClonePolicy_KeepNATMACs:
-            {
-                m_pMACComboBox->setItemText(i, tr("Include only NAT network adapter MAC addresses"));
-                m_pMACComboBox->setItemData(i, tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole);
-                break;
-            }
+                {
+                    m_pMACComboBox->setItemText(i, tr("Include only NAT network adapter MAC addresses"));
+                    m_pMACComboBox->setItemData(i, tr("Include only NAT network adapter MAC addresses during cloning."), Qt::ToolTipRole);
+                    break;
+                }
             case MACAddressClonePolicy_StripAllMACs:
-            {
-                m_pMACComboBox->setItemText(i, tr("Generate new MAC addresses for all network adapters"));
-                m_pMACComboBox->setItemData(i, tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole);
-                break;
-            }
+                {
+                    m_pMACComboBox->setItemText(i, tr("Generate new MAC addresses for all network adapters"));
+                    m_pMACComboBox->setItemData(i, tr("Generate new MAC addresses for all network adapters during cloning."), Qt::ToolTipRole);
+                    break;
+                }
             default:
                 break;
@@ -306,2 +305,109 @@
         setMACAddressClonePolicy(MACAddressClonePolicy_StripAllMACs);
 }
+
+/*********************************************************************************************************************************
+ *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
+ *********************************************************************************************************************************/
+
+UICloneVMCloneTypeGroupBox::UICloneVMCloneTypeGroupBox(QWidget *pParent /* = 0 */)
+    :QIWithRetranslateUI<QGroupBox>(pParent)
+    , m_pButtonGroup(0)
+    , m_pFullCloneRadio(0)
+    , m_pLinkedCloneRadio(0)
+{
+    prepare();
+}
+
+void UICloneVMCloneTypeGroupBox::prepare()
+{
+    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
+    AssertReturnVoid(pMainLayout);
+    /* Prepare clone-type options button-group: */
+    m_pButtonGroup = new QButtonGroup(this);
+    if (m_pButtonGroup)
+    {
+        /* Prepare full clone option radio-button: */
+        m_pFullCloneRadio = new QRadioButton(this);
+        if (m_pFullCloneRadio)
+        {
+            m_pFullCloneRadio->setChecked(true);
+            m_pButtonGroup->addButton(m_pFullCloneRadio);
+            pMainLayout->addWidget(m_pFullCloneRadio);
+        }
+
+        /* Load currently supported clone options: */
+        CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
+        const QVector<KCloneOptions> supportedOptions = comProperties.GetSupportedCloneOptions();
+        /* Check whether we support linked clone option at all: */
+        const bool fSupportedLinkedClone = supportedOptions.contains(KCloneOptions_Link);
+
+        /* Prepare linked clone option radio-button: */
+        if (fSupportedLinkedClone)
+        {
+            m_pLinkedCloneRadio = new QRadioButton(this);
+            if (m_pLinkedCloneRadio)
+            {
+                m_pButtonGroup->addButton(m_pLinkedCloneRadio);
+                pMainLayout->addWidget(m_pLinkedCloneRadio);
+            }
+        }
+    }
+
+    retranslateUi();
+}
+
+void UICloneVMCloneTypeGroupBox::retranslateUi()
+{
+    if (m_pFullCloneRadio)
+        m_pFullCloneRadio->setText(tr("&Full clone"));
+    if (m_pLinkedCloneRadio)
+        m_pLinkedCloneRadio->setText(tr("&Linked clone"));
+
+}
+
+/*********************************************************************************************************************************
+ *   UICloneVMAdditionalOptionsEditor implementation.                                                                             *
+ *********************************************************************************************************************************/
+
+UICloneVMCloneModeGroupBox::UICloneVMCloneModeGroupBox(bool fShowChildsOption, QWidget *pParent /* = 0 */)
+    :QIWithRetranslateUI<QGroupBox>(pParent)
+    , m_fShowChildsOption(fShowChildsOption)
+    , m_pMachineRadio(0)
+    , m_pMachineAndChildsRadio(0)
+    , m_pAllRadio(0)
+{
+    prepare();
+}
+
+void UICloneVMCloneModeGroupBox::prepare()
+{
+    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
+    AssertReturnVoid(pMainLayout);
+
+    m_pMachineRadio = new QRadioButton(this);
+    {
+        m_pMachineRadio->setChecked(true);
+    }
+    m_pMachineAndChildsRadio = new QRadioButton(this);
+    {
+        if (!m_fShowChildsOption)
+            m_pMachineAndChildsRadio->hide();
+    }
+    m_pAllRadio = new QRadioButton(this);
+    pMainLayout->addWidget(m_pMachineRadio);
+    pMainLayout->addWidget(m_pMachineAndChildsRadio);
+    pMainLayout->addWidget(m_pAllRadio);
+    pMainLayout->addStretch();
+
+    retranslateUi();
+}
+
+void UICloneVMCloneModeGroupBox::retranslateUi()
+{
+    if (m_pMachineRadio)
+        m_pMachineRadio->setText(tr("Current &machine state"));
+    if (m_pMachineAndChildsRadio)
+        m_pMachineAndChildsRadio->setText(tr("Current &snapshot tree branch"));
+    if (m_pAllRadio)
+        m_pAllRadio->setText(tr("&Everything"));
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.h	(revision 90606)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardCloneVMEditors.h	(revision 90607)
@@ -32,9 +32,10 @@
 /* Forward declarations: */
 // class CMediumFormat;
-// class QButtonGroup;
+class QButtonGroup;
 class QCheckBox;
 class QGridLayout;
 class QComboBox;
 class QLabel;
+class QRadioButton;
 // class QVBoxLayout;
 // class QIRichTextLabel;
@@ -133,4 +134,48 @@
 };
 
+class UICloneVMCloneTypeGroupBox : public QIWithRetranslateUI<QGroupBox>
+{
+    Q_OBJECT;
+
+signals:
+
+public:
+
+    UICloneVMCloneTypeGroupBox(QWidget *pParent = 0);
+
+private:
+
+    void prepare();
+    virtual void retranslateUi() /* override final */;
+
+    QButtonGroup *m_pButtonGroup;
+    QRadioButton *m_pFullCloneRadio;
+    QRadioButton *m_pLinkedCloneRadio;
+};
+
+
+class UICloneVMCloneModeGroupBox : public QIWithRetranslateUI<QGroupBox>
+{
+    Q_OBJECT;
+
+signals:
+
+public:
+
+    UICloneVMCloneModeGroupBox(bool fShowChildsOption, QWidget *pParent = 0);
+
+private:
+
+    void prepare();
+    virtual void retranslateUi() /* override final */;
+
+    bool m_fShowChildsOption;
+    QRadioButton *m_pMachineRadio;
+    QRadioButton *m_pMachineAndChildsRadio;
+    QRadioButton *m_pAllRadio;
+
+};
+
+
 
 #endif /* !FEQT_INCLUDED_SRC_wizards_editors_UIWizardCloneVMEditors_h */
