Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 90060)
@@ -64,4 +64,7 @@
     , m_fStartHeadless(false)
     , m_fSkipUnattendedInstall(false)
+    , m_iCPUCount(1)
+    , m_iMemoryAmount(0)
+
 {
 #ifndef VBOX_WS_MAC
@@ -85,7 +88,7 @@
         {
             addPage(new UIWizardNewVMNameOSTypePageBasic);
-            addPage(new UIWizardNewVMUnattendedPageBasic);
-            addPage(new UIWizardNewVMHardwarePageBasic);
-            addPage(new UIWizardNewVMDiskPageBasic);
+            // addPage(new UIWizardNewVMUnattendedPageBasic);
+            // addPage(new UIWizardNewVMHardwarePageBasic);
+            // addPage(new UIWizardNewVMDiskPageBasic);
             break;
         }
@@ -758,4 +761,24 @@
 }
 
+int UIWizardNewVM::CPUCount() const
+{
+    return m_iCPUCount;
+}
+
+void UIWizardNewVM::setCPUCount(int iCPUCount)
+{
+    m_iCPUCount = iCPUCount;
+}
+
+int UIWizardNewVM::memoryAmount() const
+{
+    return m_iMemoryAmount;
+}
+
+void UIWizardNewVM::setMemoryCount(int iMemory)
+{
+    m_iMemoryAmount = iMemory;
+}
+
 const UIUnattendedInstallData &UIWizardNewVM::unattendedInstallData() const
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 90060)
@@ -29,4 +29,9 @@
 #include "CMachine.h"
 #include "CMedium.h"
+
+#define parentWizardSet(functionName, value)                         \
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard()); \
+    if (pWizard)                                                     \
+        pWizard->functionName(value);
 
 /** Container for unattended install related data. */
@@ -129,4 +134,10 @@
     void setProductKey(const QString &productKey);
 
+    int CPUCount() const;
+    void setCPUCount(int iCPUCount);
+
+    int memoryAmount() const;
+    void setMemoryCount(int iMemory);
+
 protected:
 
@@ -195,4 +206,7 @@
     QString m_strHostname;
     QString m_strProductKey;
+
+    int m_iCPUCount;
+    int m_iMemoryAmount;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMHardwarePageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMHardwarePageBasic.cpp	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMHardwarePageBasic.cpp	(revision 90060)
@@ -34,30 +34,4 @@
 #include "CGuestOSType.h"
 
-// UIWizardNewVMHardwarePage::UIWizardNewVMHardwarePage()
-// {
-// }
-
-// int UIWizardNewVMHardwarePage::baseMemory() const
-// {
-//     if (!m_pBaseMemoryEditor)
-//         return 0;
-//     return m_pBaseMemoryEditor->value();
-// }
-
-// int UIWizardNewVMHardwarePage::VCPUCount() const
-// {
-//     if (!m_pVirtualCPUEditor)
-//         return 1;
-//     return m_pVirtualCPUEditor->value();
-// }
-
-// bool UIWizardNewVMHardwarePage::EFIEnabled() const
-// {
-//     if (!m_pEFICheckBox)
-//         return false;
-//     return m_pEFICheckBox->isChecked();
-// }
-
-
 UIWizardNewVMHardwarePageBasic::UIWizardNewVMHardwarePageBasic()
     : m_pBaseMemoryEditor(0)
@@ -66,4 +40,5 @@
     , m_pLabel(0)
 {
+    m_pWizard = qobject_cast<UIWizardNewVM*>(wizard());
     prepare();
     qRegisterMetaType<CMedium>();
@@ -79,9 +54,13 @@
 
     pMainLayout->addStretch();
-    // createConnections();
+    createConnections();
 }
 
 void UIWizardNewVMHardwarePageBasic::createConnections()
 {
+    connect(m_pBaseMemoryEditor, &UIBaseMemoryEditor::sigValueChanged,
+            this, &UIWizardNewVMHardwarePageBasic::sltMemoryAmountChanged);
+
+
 }
 
@@ -145,2 +124,12 @@
     return pHardwareContainer;
 }
+
+void UIWizardNewVMHardwarePageBasic::sltMemoryAmountChanged(int iValue)
+{
+    Q_UNUSED(iValue);
+}
+
+void UIWizardNewVMHardwarePageBasic::sltCPUCountChanged(int iCount)
+{
+    Q_UNUSED(iCount);
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMHardwarePageBasic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMHardwarePageBasic.h	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMHardwarePageBasic.h	(revision 90060)
@@ -38,31 +38,14 @@
 class UIBaseMemoryEditor;
 class UIVirtualCPUEditor;
+class UIWizardNewVM;
 
-/** 3rd page of the New Virtual Machine wizard (base part). */
-// class UIWizardNewVMHardwarePage : public UIWizardPageBase
-// {
-
-// protected:
-
-//     /** Constructor. */
-//     UIWizardNewVMHardwarePage();
-
-
-//     /** @name Property getters/setters
-//      * @{ */
+namespace UIWizardNewVMHardwarePage
+{
+}
 //        int baseMemory() const;
 //        int VCPUCount() const;
 //        bool EFIEnabled() const;
-//     /** @} */
-
-//     QWidget *createHardwareWidgets();
-//     void retranslateWidgets();
 
 
-
-
-// };
-
-/** 3rd page of the New Virtual Machine wizard (basic extension). */
 class UIWizardNewVMHardwarePageBasic : public UINativeWizardPage
 {
@@ -71,5 +54,4 @@
 public:
 
-    /** Constructor. */
     UIWizardNewVMHardwarePageBasic();
 
@@ -79,7 +61,8 @@
 private slots:
 
+    void sltMemoryAmountChanged(int iValue);
+    void sltCPUCountChanged(int iCount);
 
 private:
-
 
     /** Prepare stuff. */
@@ -91,4 +74,6 @@
     QWidget *createHardwareWidgets();
     bool isComplete() const;
+
+    UIWizardNewVM *m_pWizard;
 
     /** @name Widgets
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp	(revision 90060)
@@ -38,4 +38,5 @@
 #include "CSystemProperties.h"
 #include "CUnattended.h"
+
 
 /* Defines some patterns to guess the right OS type. Should be in sync with
@@ -344,5 +345,4 @@
     , m_pNameOSTypeLabel(0)
 {
-    m_pWizard = qobject_cast<UIWizardNewVM*>(wizard());
     prepare();
 }
@@ -400,5 +400,6 @@
 {
     UIWizardNewVMNameOSTypePage::onNameChanged(m_pNameAndSystemEditor, strNewName);
-    UIWizardNewVMNameOSTypePage::composeMachineFilePath(m_pNameAndSystemEditor, m_pWizard);
+    UIWizardNewVMNameOSTypePage::composeMachineFilePath(m_pNameAndSystemEditor, qobject_cast<UIWizardNewVM*>(wizard()));
+    emit completeChanged();
 }
 
@@ -406,5 +407,5 @@
 {
     Q_UNUSED(strNewPath);
-    UIWizardNewVMNameOSTypePage::composeMachineFilePath(m_pNameAndSystemEditor, m_pWizard);
+    UIWizardNewVMNameOSTypePage::composeMachineFilePath(m_pNameAndSystemEditor, qobject_cast<UIWizardNewVM*>(wizard()));
 }
 
@@ -457,15 +458,16 @@
 {
     /* Try to create machine folder: */
-    return UIWizardNewVMNameOSTypePage::createMachineFolder(m_pNameAndSystemEditor, this, m_pWizard);
+    return UIWizardNewVMNameOSTypePage::createMachineFolder(m_pNameAndSystemEditor, this, qobject_cast<UIWizardNewVM*>(wizard()));
 }
 
 void UIWizardNewVMNameOSTypePageBasic::sltISOPathChanged(const QString &strPath)
 {
-    UIWizardNewVMNameOSTypePage::determineOSType(strPath, m_pWizard);
-    if (m_pWizard)
-    {
-        if (!m_pWizard->detectedOSTypeId().isEmpty())
-            UIWizardNewVMNameOSTypePage::onNameChanged(m_pNameAndSystemEditor, m_pWizard->detectedOSTypeId());
-        m_pWizard->setISOFilePath(strPath);
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(this->wizard());
+    UIWizardNewVMNameOSTypePage::determineOSType(strPath, pWizard);
+    if (pWizard)
+    {
+        if (!pWizard->detectedOSTypeId().isEmpty())
+            UIWizardNewVMNameOSTypePage::onNameChanged(m_pNameAndSystemEditor, pWizard->detectedOSTypeId());
+        pWizard->setISOFilePath(strPath);
     }
     /* Update the global recent ISO path: */
@@ -479,6 +481,5 @@
 void UIWizardNewVMNameOSTypePageBasic::sltGuestOSFamilChanged(const QString &strGuestOSFamilyId)
 {
-    if (m_pWizard)
-        m_pWizard->setGuestOSFamilyId(strGuestOSFamilyId);
+    parentWizardSet(setGuestOSFamilyId, strGuestOSFamilyId);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.h	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.h	(revision 90060)
@@ -101,6 +101,4 @@
     bool isUnattendedEnabled() const;
 
-    UIWizardNewVM *m_pWizard;
-
     /** @name Widgets
      * @{ */
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp	(revision 90060)
@@ -68,5 +68,4 @@
     , m_pProductKeyLabel(0)
 {
-    m_pWizard = qobject_cast<UIWizardNewVM*>(wizard());
     prepare();
 }
@@ -159,5 +158,6 @@
 {
     markWidgets();
-    if (m_pWizard && m_pWizard->installGuestAdditions() &&
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
+    if (pWizard && pWizard->installGuestAdditions() &&
         !UIWizardNewVMUnattendedPage::checkGAISOFile(m_pGAISOFilePathSelector))
         return false;
@@ -179,6 +179,5 @@
 {
     disableEnableGAWidgets(fEnabled);
-    if (m_pWizard)
-        m_pWizard->setInstallGuestAdditions(fEnabled);
+    parentWizardSet(setInstallGuestAdditions, fEnabled);
     emit completeChanged();
 }
@@ -186,6 +185,5 @@
 void UIWizardNewVMUnattendedPageBasic::sltGAISOPathChanged(const QString &strPath)
 {
-    if (m_pWizard)
-        m_pWizard->setGuestAdditionsISOPath(strPath);
+    parentWizardSet(setGuestAdditionsISOPath, strPath);
     emit completeChanged();
 }
@@ -193,6 +191,5 @@
 void UIWizardNewVMUnattendedPageBasic::sltPasswordChanged(const QString &strPassword)
 {
-    if (m_pWizard)
-        m_pWizard->setPassword(strPassword);
+    parentWizardSet(setPassword, strPassword);
     emit completeChanged();
 }
@@ -200,6 +197,5 @@
 void UIWizardNewVMUnattendedPageBasic::sltUserNameChanged(const QString &strUserName)
 {
-    if (m_pWizard)
-        m_pWizard->setUserName(strUserName);
+    parentWizardSet(setUserName, strUserName);
     emit completeChanged();
 }
@@ -207,5 +203,6 @@
 bool UIWizardNewVMUnattendedPageBasic::isProductKeyWidgetEnabled() const
 {
-    if (!m_pWizard || !m_pWizard->isUnattendedEnabled() || !m_pWizard->isGuestOSTypeWindows())
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
+    if (!pWizard || !pWizard->isUnattendedEnabled() || !pWizard->isGuestOSTypeWindows())
         return false;
     return true;
@@ -214,18 +211,15 @@
 void UIWizardNewVMUnattendedPageBasic::sltHostnameChanged(const QString &strHostname)
 {
-    if (m_pWizard)
-        m_pWizard->setHostname(strHostname);
+    parentWizardSet(setHostname, strHostname);
 }
 
 void UIWizardNewVMUnattendedPageBasic::sltProductKeyChanged(const QString &strProductKey)
 {
-    if (m_pWizard)
-        m_pWizard->setProductKey(strProductKey);
+    parentWizardSet(setProductKey, strProductKey);
 }
 
 void UIWizardNewVMUnattendedPageBasic::sltStartHeadlessChanged(bool fStartHeadless)
 {
-    if (m_pWizard)
-        m_pWizard->setStartHeadless(fStartHeadless);
+    parentWizardSet(setStartHeadless, fStartHeadless);
 }
 
@@ -355,5 +349,6 @@
 void UIWizardNewVMUnattendedPageBasic::markWidgets() const
 {
-    if (m_pWizard && m_pWizard->installGuestAdditions())
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
+    if (pWizard && pWizard->installGuestAdditions())
         m_pGAISOFilePathSelector->mark(!UIWizardNewVMUnattendedPage::checkGAISOFile(m_pGAISOFilePathSelector));
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.h	(revision 90045)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.h	(revision 90060)
@@ -35,5 +35,4 @@
 class UIFilePathSelector;
 class UIUserNamePasswordEditor;
-class UIWizardNewVM;
 struct UIUnattendedInstallData;
 
@@ -86,6 +85,4 @@
     void markWidgets() const;
 
-    UIWizardNewVM *m_pWizard;
-
     /** @name Widgets
       * @{ */
