Index: trunk/src/VBox/Frontends/VirtualBox/include/VBoxGuestRAMSlider.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/VBoxGuestRAMSlider.h	(revision 21305)
+++ trunk/src/VBox/Frontends/VirtualBox/include/VBoxGuestRAMSlider.h	(revision 21305)
@@ -0,0 +1,54 @@
+/** @file
+ *
+ * VBox frontends: Qt4 GUI ("VirtualBox"):
+ * VBoxGuestRAMSlider class declaration
+ */
+
+/*
+ * Copyright (C) 2009 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+
+#ifndef __VBoxGuestRAMSlider_h__
+#define __VBoxGuestRAMSlider_h__
+
+/* VBox includes */
+#include "QIAdvancedSlider.h"
+
+class VBoxGuestRAMSlider: public QIAdvancedSlider
+{
+public:
+    VBoxGuestRAMSlider (QWidget *aParent = 0);
+    VBoxGuestRAMSlider (Qt::Orientation aOrientation, QWidget *aParent = 0);
+
+    uint minRAM() const;
+    uint maxRAMOpt() const;
+    uint maxRAMAlw() const;
+    uint maxRAM() const;
+
+private:
+    /* Private methods */
+    void init();
+    int calcPageStep (int aMax) const;
+
+    /* Private member vars */
+    uint mMinRAM;
+    uint mMaxRAMOpt;
+    uint mMaxRAMAlw;
+    uint mMaxRAM;
+};
+
+#endif /* __VBoxGuestRAMSlider_h__ */
+
Index: trunk/src/VBox/Frontends/VirtualBox/include/VBoxVMSettingsSystem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/VBoxVMSettingsSystem.h	(revision 21304)
+++ trunk/src/VBox/Frontends/VirtualBox/include/VBoxVMSettingsSystem.h	(revision 21305)
@@ -78,11 +78,6 @@
     QIWidgetValidator *mValidator;
 
-    uint mMinGuestRAM;
-    uint mMaxGuestRAM;
     uint mMinGuestCPU;
     uint mMaxGuestCPU;
-
-    int mMaxRAMAllowed;
-    int mMaxRAMOptimum;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxGuestRAMSlider.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxGuestRAMSlider.cpp	(revision 21305)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxGuestRAMSlider.cpp	(revision 21305)
@@ -0,0 +1,176 @@
+/** @file
+ *
+ * VBox frontends: Qt GUI ("VirtualBox"):
+ * VirtualBox Qt extensions: VBoxGuestRAMSlider class implementation
+ */
+
+/*
+ * Copyright (C) 2009 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+/* VBox includes */
+#include "VBoxGuestRAMSlider.h"
+#include "VBoxGlobal.h"
+
+VBoxGuestRAMSlider::VBoxGuestRAMSlider (QWidget *aParent /* = 0 */)
+  : QIAdvancedSlider (aParent)
+  , mMinRAM (0)
+  , mMaxRAMOpt (0)
+  , mMaxRAMAlw (0)
+  , mMaxRAM (0)
+{
+    init();
+}
+
+VBoxGuestRAMSlider::VBoxGuestRAMSlider (Qt::Orientation aOrientation, QWidget *aParent /* = 0 */)
+  : QIAdvancedSlider (aOrientation, aParent)
+  , mMinRAM (0)
+  , mMaxRAMOpt (0)
+  , mMaxRAMAlw (0)
+  , mMaxRAM (0)
+{
+    init();
+}
+
+uint VBoxGuestRAMSlider::minRAM() const
+{
+    return mMinRAM;
+}
+
+uint VBoxGuestRAMSlider::maxRAMOpt() const
+{
+    return mMaxRAMOpt;
+}
+
+uint VBoxGuestRAMSlider::maxRAMAlw() const
+{
+    return mMaxRAMAlw;
+}
+
+uint VBoxGuestRAMSlider::maxRAM() const
+{
+    return mMaxRAM;
+}
+
+void VBoxGuestRAMSlider::init()
+{
+    ulong fullSize = vboxGlobal().virtualBox().GetHost().GetMemorySize();
+    CSystemProperties sys = vboxGlobal().virtualBox().GetSystemProperties();
+    mMinRAM = sys.GetMinGuestRAM();
+    mMaxRAM = RT_MIN (RT_ALIGN (fullSize, _1G / _1M), sys.GetMaxGuestRAM());
+
+    /* Come up with some nice round percent boundraries relative to
+     * the system memory. A max of 75% on a 256GB config is ridiculous,
+     * even on an 8GB rig reserving 2GB for the OS is way to conservative.
+     * The max numbers can be estimated using the following program:
+     *
+     *      double calcMaxPct(uint64_t cbRam)
+     *      {
+     *          double cbRamOverhead = cbRam * 0.0390625; // 160 bytes per page.
+     *          double cbRamForTheOS = RT_MAX(RT_MIN(_512M, cbRam * 0.25), _64M);
+     *          double OSPct  = (cbRamOverhead + cbRamForTheOS) * 100.0 / cbRam;
+     *          double MaxPct = 100 - OSPct;
+     *          return MaxPct;
+     *      }
+     *
+     *      int main()
+     *      {
+     *          uint64_t cbRam = _1G;
+     *          for (; !(cbRam >> 33); cbRam += _1G)
+     *              printf("%8lluGB %.1f%% %8lluKB\n", cbRam >> 30, calcMaxPct(cbRam),
+     *                     (uint64_t)(cbRam * calcMaxPct(cbRam) / 100.0) >> 20);
+     *          for (; !(cbRam >> 51); cbRam <<= 1)
+     *              printf("%8lluGB %.1f%% %8lluKB\n", cbRam >> 30, calcMaxPct(cbRam),
+     *                     (uint64_t)(cbRam * calcMaxPct(cbRam) / 100.0) >> 20);
+     *          return 0;
+     *      }
+     *
+     * Note. We might wanna put these calculations somewhere global later. */
+
+    /* System RAM amount test */
+    mMaxRAMAlw  = 0.75 * fullSize;
+    mMaxRAMOpt  = 0.50 * fullSize;
+    if (fullSize < 3072)
+        /* done */;
+    else if (fullSize < 4096)   /* 3GB */
+        mMaxRAMAlw = 0.80 * fullSize;
+    else if (fullSize < 6144)   /* 4-5GB */
+    {
+        mMaxRAMAlw = 0.84 * fullSize;
+        mMaxRAMOpt = 0.60 * fullSize;
+    }
+    else if (fullSize < 8192)   /* 6-7GB */
+    {
+        mMaxRAMAlw = 0.88 * fullSize;
+        mMaxRAMOpt = 0.65 * fullSize;
+    }
+    else if (fullSize < 16384)  /* 8-15GB */
+    {
+        mMaxRAMAlw = 0.90 * fullSize;
+        mMaxRAMOpt = 0.70 * fullSize;
+    }
+    else if (fullSize < 32768)  /* 16-31GB */
+    {
+        mMaxRAMAlw = 0.93 * fullSize;
+        mMaxRAMOpt = 0.75 * fullSize;
+    }
+    else if (fullSize < 65536)  /* 32-63GB */
+    {
+        mMaxRAMAlw = 0.94 * fullSize;
+        mMaxRAMOpt = 0.80 * fullSize;
+    }
+    else if (fullSize < 131072) /* 64-127GB */
+    {
+        mMaxRAMAlw = 0.95 * fullSize;
+        mMaxRAMOpt = 0.85 * fullSize;
+    }
+    else                        /* 128GB- */
+    {
+        mMaxRAMAlw = 0.96 * fullSize;
+        mMaxRAMOpt = 0.90 * fullSize;
+    }
+
+    setPageStep (calcPageStep (mMaxRAM));
+    setSingleStep (pageStep() / 4);
+    setTickInterval (pageStep());
+    /* Setup the scale so that ticks are at page step boundaries */
+    setMinimum ((mMinRAM / pageStep()) * pageStep());
+    setMaximum (mMaxRAM);
+    setSnappingEnabled (true);
+    setOptimalHint (1, mMaxRAMOpt);
+    setWarningHint (mMaxRAMOpt, mMaxRAMAlw);
+    setErrorHint (mMaxRAMAlw, mMaxRAM);
+}
+
+/**
+ *  Calculates a suitable page step size for the given max value. The returned
+ *  size is so that there will be no more than 32 pages. The minimum returned
+ *  page size is 4.
+ */
+int VBoxGuestRAMSlider::calcPageStep (int aMax) const
+{
+    /* reasonable max. number of page steps is 32 */
+    uint page = ((uint) aMax + 31) / 32;
+    /* make it a power of 2 */
+    uint p = page, p2 = 0x1;
+    while ((p >>= 1))
+        p2 <<= 1;
+    if (page != p2)
+        p2 <<= 1;
+    if (p2 < 4)
+        p2 = 4;
+    return (int) p2;
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxNewVMWzd.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxNewVMWzd.cpp	(revision 21304)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxNewVMWzd.cpp	(revision 21305)
@@ -28,25 +28,4 @@
 #include "VBoxMediaManagerDlg.h"
 
-/**
- * Calculates a suitable page step size for the given max value.
- * The returned size is so that there will be no more than 32 pages.
- * The minimum returned page size is 4.
- */
-static int calcPageStep (int aMax)
-{
-    /* Reasonable max. number of page steps is 32 */
-    uint page = ((uint) aMax + 31) / 32;
-    /* Make it a power of 2 */
-    uint p = page, p2 = 0x1;
-    while ((p >>= 1))
-        p2 <<= 1;
-    if (page != p2)
-        p2 <<= 1;
-    if (p2 < 4)
-        p2 = 4;
-    return (int) p2;
-}
-
-
 VBoxNewVMWzd::VBoxNewVMWzd (QWidget *aParent)
     : QIWithRetranslateUI<QIAbstractWizard> (aParent)
@@ -67,13 +46,6 @@
 
     /* Memory page */
-    CSystemProperties sysProps = vboxGlobal().virtualBox().GetSystemProperties();
-    const uint MinRAM = sysProps.GetMinGuestRAM();
-    const uint MaxRAM = sysProps.GetMaxGuestRAM();
-    mSlRAM->setPageStep (calcPageStep (MaxRAM));
-    mSlRAM->setSingleStep (mSlRAM->pageStep() / 4);
-    mSlRAM->setTickInterval (mSlRAM->pageStep());
-    mSlRAM->setRange ((MinRAM / mSlRAM->pageStep()) * mSlRAM->pageStep(), MaxRAM);
     mLeRAM->setFixedWidthByText ("99999");
-    mLeRAM->setValidator (new QIntValidator (MinRAM, MaxRAM, this));
+    mLeRAM->setValidator (new QIntValidator (mSlRAM->minRAM(), mSlRAM->maxRAM(), this));
 
     mWvalMemory = new QIWidgetValidator (mPageMemory, this);
@@ -157,12 +129,8 @@
             .arg (type.GetRecommendedHDD()));
 
-    CSystemProperties sysProps = vboxGlobal().virtualBox().GetSystemProperties();
-    const uint MinRAM = sysProps.GetMinGuestRAM();
-    const uint MaxRAM = sysProps.GetMaxGuestRAM();
-
     mTxRAMMin->setText (QString ("<qt>%1&nbsp;%2</qt>")
-                        .arg (MinRAM).arg (tr ("MB", "megabytes")));
+                        .arg (mSlRAM->minRAM()).arg (tr ("MB", "megabytes")));
     mTxRAMMax->setText (QString ("<qt>%1&nbsp;%2</qt>")
-                        .arg (MaxRAM).arg (tr ("MB", "megabytes")));
+                        .arg (mSlRAM->maxRAM()).arg (tr ("MB", "megabytes")));
 
     QWidget *page = mPageStack->currentWidget();
@@ -236,5 +204,5 @@
     if (mExistRadio->isChecked())
         mHDCombo->setFocus();
-    
+
     mWvalHDD->revalidate();
 }
@@ -246,11 +214,8 @@
 
     /* Do individual validations for pages */
-    ulong memorySize = vboxGlobal().virtualBox().GetHost().GetMemorySize();
-    ulong summarySize = (ulong)(mSlRAM->value()) +
-                        (ulong)(VBoxGlobal::requiredVideoMemory() / _1M);
     if (aWval->widget() == mPageMemory)
     {
         valid = true;
-        if (summarySize > 0.75 * memorySize)
+        if (mSlRAM->value() > (int)mSlRAM->maxRAMAlw())
             valid = false;
     }
@@ -258,5 +223,5 @@
     {
         valid = true;
-        if (    (mGbHDA->isChecked()) 
+        if (    (mGbHDA->isChecked())
             &&  (mHDCombo->id().isNull())
             &&  (mExistRadio->isChecked()))
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsSystem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsSystem.cpp	(revision 21304)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsSystem.cpp	(revision 21305)
@@ -28,24 +28,4 @@
 #define ITEM_TYPE_ROLE Qt::UserRole + 1
 
-/**
- *  Calculates a suitable page step size for the given max value. The returned
- *  size is so that there will be no more than 32 pages. The minimum returned
- *  page size is 4.
- */
-static int calcPageStep (int aMax)
-{
-    /* reasonable max. number of page steps is 32 */
-    uint page = ((uint) aMax + 31) / 32;
-    /* make it a power of 2 */
-    uint p = page, p2 = 0x1;
-    while ((p >>= 1))
-        p2 <<= 1;
-    if (page != p2)
-        p2 <<= 1;
-    if (p2 < 4)
-        p2 = 4;
-    return (int) p2;
-}
-
 VBoxVMSettingsSystem::VBoxVMSettingsSystem()
 {
@@ -55,84 +35,10 @@
     /* Setup constants */
     CSystemProperties sys = vboxGlobal().virtualBox().GetSystemProperties();
-    mMinGuestRAM = sys.GetMinGuestRAM();
-    mMaxGuestRAM = RT_MIN (RT_ALIGN (vboxGlobal().virtualBox().GetHost().GetMemorySize(), _1G / _1M), sys.GetMaxGuestRAM());
     uint hostCPUs = vboxGlobal().virtualBox().GetHost().GetProcessorCount();
     mMinGuestCPU = sys.GetMinGuestCPUCount();
     mMaxGuestCPU = RT_MIN (2 * hostCPUs, sys.GetMaxGuestCPUCount());
 
-    /* Come up with some nice round percent boundraries relative to
-     * the system memory. A max of 75% on a 256GB config is ridiculous,
-     * even on an 8GB rig reserving 2GB for the OS is way to conservative.
-     * The max numbers can be estimated using the following program:
-     *
-     *      double calcMaxPct(uint64_t cbRam)
-     *      {
-     *          double cbRamOverhead = cbRam * 0.0390625; // 160 bytes per page.
-     *          double cbRamForTheOS = RT_MAX(RT_MIN(_512M, cbRam * 0.25), _64M);
-     *          double OSPct  = (cbRamOverhead + cbRamForTheOS) * 100.0 / cbRam;
-     *          double MaxPct = 100 - OSPct;
-     *          return MaxPct;
-     *      }
-     *
-     *      int main()
-     *      {
-     *          uint64_t cbRam = _1G;
-     *          for (; !(cbRam >> 33); cbRam += _1G)
-     *              printf("%8lluGB %.1f%% %8lluKB\n", cbRam >> 30, calcMaxPct(cbRam),
-     *                     (uint64_t)(cbRam * calcMaxPct(cbRam) / 100.0) >> 20);
-     *          for (; !(cbRam >> 51); cbRam <<= 1)
-     *              printf("%8lluGB %.1f%% %8lluKB\n", cbRam >> 30, calcMaxPct(cbRam),
-     *                     (uint64_t)(cbRam * calcMaxPct(cbRam) / 100.0) >> 20);
-     *          return 0;
-     *      }
-     *
-     * Note. We might wanna put these calculations somewhere global later. */
-
-    /* System RAM amount test */
-    ulong fullSize = vboxGlobal().virtualBox().GetHost().GetMemorySize();
-    mMaxRAMAllowed  = 0.75 * fullSize;
-    mMaxRAMOptimum  = 0.50 * fullSize;
-    if (fullSize < 3072)
-        /* done */;
-    else if (fullSize < 4096)   /* 3GB */
-        mMaxRAMAllowed = 0.80 * fullSize;
-    else if (fullSize < 6144)   /* 4-5GB */
-    {
-        mMaxRAMAllowed = 0.84 * fullSize;
-        mMaxRAMOptimum = 0.60 * fullSize;
-    }
-    else if (fullSize < 8192)   /* 6-7GB */
-    {
-        mMaxRAMAllowed = 0.88 * fullSize;
-        mMaxRAMOptimum = 0.65 * fullSize;
-    }
-    else if (fullSize < 16384)  /* 8-15GB */
-    {
-        mMaxRAMAllowed = 0.90 * fullSize;
-        mMaxRAMOptimum = 0.70 * fullSize;
-    }
-    else if (fullSize < 32768)  /* 16-31GB */
-    {
-        mMaxRAMAllowed = 0.93 * fullSize;
-        mMaxRAMOptimum = 0.75 * fullSize;
-    }
-    else if (fullSize < 65536)  /* 32-63GB */
-    {
-        mMaxRAMAllowed = 0.94 * fullSize;
-        mMaxRAMOptimum = 0.80 * fullSize;
-    }
-    else if (fullSize < 131072) /* 64-127GB */
-    {
-        mMaxRAMAllowed = 0.95 * fullSize;
-        mMaxRAMOptimum = 0.85 * fullSize;
-    }
-    else                        /* 128GB- */
-    {
-        mMaxRAMAllowed = 0.96 * fullSize;
-        mMaxRAMOptimum = 0.90 * fullSize;
-    }
-
     /* Setup validators */
-    mLeMemory->setValidator (new QIntValidator (mMinGuestRAM, mMaxGuestRAM, this));
+    mLeMemory->setValidator (new QIntValidator (mSlMemory->minRAM(), mSlMemory->maxRAM(), this));
     mLeCPU->setValidator (new QIntValidator (mMinGuestCPU, mMaxGuestCPU, this));
 
@@ -169,15 +75,4 @@
                                                    ":/list_movedown_disabled_16px.png"));
 
-    /* Setup memory slider */
-    mSlMemory->setPageStep (calcPageStep (mMaxGuestRAM));
-    mSlMemory->setSingleStep (mSlMemory->pageStep() / 4);
-    mSlMemory->setTickInterval (mSlMemory->pageStep());
-    /* Setup the scale so that ticks are at page step boundaries */
-    mSlMemory->setMinimum ((mMinGuestRAM / mSlMemory->pageStep()) * mSlMemory->pageStep());
-    mSlMemory->setMaximum (mMaxGuestRAM);
-    mSlMemory->setSnappingEnabled (true);
-    mSlMemory->setOptimalHint (1, mMaxRAMOptimum);
-    mSlMemory->setWarningHint (mMaxRAMOptimum, mMaxRAMAllowed);
-    mSlMemory->setErrorHint (mMaxRAMAllowed, mMaxGuestRAM);
     /* Limit min/max. size of QLineEdit */
     mLeMemory->setFixedWidthByText (QString().fill ('8', 5));
@@ -354,5 +249,5 @@
 {
     ulong fullSize = vboxGlobal().virtualBox().GetHost().GetMemorySize();
-    if (mSlMemory->value() > mMaxRAMAllowed)
+    if (mSlMemory->value() > (int)mSlMemory->maxRAMAlw())
     {
         aWarning = tr (
@@ -360,9 +255,9 @@
             "(<b>%2</b>) to the virtual machine. Not enough memory is left "
             "for your host operating system. Please select a smaller amount.")
-            .arg ((unsigned)qRound ((double)mMaxRAMAllowed / fullSize * 100.0))
+            .arg ((unsigned)qRound ((double)mSlMemory->maxRAMAlw() / fullSize * 100.0))
             .arg (vboxGlobal().formatSize ((uint64_t)fullSize * _1M));
         return false;
     }
-    if (mSlMemory->value() > mMaxRAMOptimum)
+    if (mSlMemory->value() > (int)mSlMemory->maxRAMOpt())
     {
         aWarning = tr (
@@ -370,5 +265,5 @@
             "(<b>%2</b>) to the virtual machine. Not enough memory might be "
             "left for your host operating system. Continue at your own risk.")
-            .arg ((unsigned)qRound ((double)mMaxRAMOptimum / fullSize * 100.0))
+            .arg ((unsigned)qRound ((double)mSlMemory->maxRAMOpt() / fullSize * 100.0))
             .arg (vboxGlobal().formatSize ((uint64_t)fullSize * _1M));
         return true;
@@ -465,6 +360,6 @@
 
     /* Retranslate the memory slider legend */
-    mLbMemoryMin->setText (tr ("<qt>%1&nbsp;MB</qt>").arg (mMinGuestRAM));
-    mLbMemoryMax->setText (tr ("<qt>%1&nbsp;MB</qt>").arg (mMaxGuestRAM));
+    mLbMemoryMin->setText (tr ("<qt>%1&nbsp;MB</qt>").arg (mSlMemory->minRAM()));
+    mLbMemoryMax->setText (tr ("<qt>%1&nbsp;MB</qt>").arg (mSlMemory->maxRAM()));
 
     /* Retranslate the cpu slider legend */
Index: trunk/src/VBox/Frontends/VirtualBox/ui/VBoxNewVMWzd.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/ui/VBoxNewVMWzd.ui	(revision 21304)
+++ trunk/src/VBox/Frontends/VirtualBox/ui/VBoxNewVMWzd.ui	(revision 21305)
@@ -1,5 +1,6 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <comment>
- VBox frontends: Qt4 GUI ("VirtualBox"):
+ VBox frontends: Qt4 GUI (&quot;VirtualBox&quot;):
 
  Copyright (C) 2008 Sun Microsystems, Inc.
@@ -9,5 +10,5 @@
  you can redistribute it and/or modify it under the terms of the GNU
  General Public License (GPL) as published by the Free Software
- Foundation, in version 2 as it comes in the "COPYING" file of the
+ Foundation, in version 2 as it comes in the &quot;COPYING&quot; file of the
  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
@@ -18,39 +19,30 @@
  </comment>
  <class>VBoxNewVMWzd</class>
- <widget class="QDialog" name="VBoxNewVMWzd" >
-  <property name="geometry" >
+ <widget class="QDialog" name="VBoxNewVMWzd">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>516</width>
-    <height>417</height>
+    <height>498</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Create New Virtual Machine</string>
   </property>
-  <layout class="QVBoxLayout" >
-   <property name="leftMargin" >
-    <number>0</number>
-   </property>
-   <property name="topMargin" >
-    <number>0</number>
-   </property>
-   <property name="rightMargin" >
-    <number>0</number>
-   </property>
-   <property name="bottomMargin" >
+  <layout class="QVBoxLayout">
+   <property name="margin">
     <number>0</number>
    </property>
    <item>
-    <widget class="QStackedWidget" name="mPageStack" >
-     <property name="currentIndex" >
-      <number>0</number>
+    <widget class="QStackedWidget" name="mPageStack">
+     <property name="currentIndex">
+      <number>2</number>
      </property>
-     <widget class="QWidget" name="mPageWelcome" >
-      <layout class="QVBoxLayout" >
-       <item>
-        <widget class="QLabel" name="mPageWelcomeHdr" >
-         <property name="font" >
+     <widget class="QWidget" name="mPageWelcome">
+      <layout class="QVBoxLayout">
+       <item>
+        <widget class="QLabel" name="mPageWelcomeHdr">
+         <property name="font">
           <font>
            <family>Arial</family>
@@ -60,5 +52,5 @@
           </font>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Welcome to the New Virtual Machine Wizard!</string>
          </property>
@@ -66,6 +58,6 @@
        </item>
        <item>
-        <widget class="Line" name="line11" >
-         <property name="orientation" >
+        <widget class="Line" name="line11">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -73,26 +65,26 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
-         <property name="spacing" >
+        <layout class="QHBoxLayout">
+         <property name="spacing">
           <number>10</number>
          </property>
          <item>
-          <widget class="QLabel" name="mLogoWelcome" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Maximum" >
+          <widget class="QLabel" name="mLogoWelcome">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="autoFillBackground" >
+           <property name="autoFillBackground">
             <bool>true</bool>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="pixmap" >
-            <pixmap resource="../VirtualBox.qrc" >:/vmw_new_welcome.png</pixmap>
-           </property>
-           <property name="alignment" >
+           <property name="pixmap">
+            <pixmap resource="../VirtualBox.qrc">:/vmw_new_welcome.png</pixmap>
+           </property>
+           <property name="alignment">
             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
            </property>
@@ -100,17 +92,17 @@
          </item>
          <item>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
+          <layout class="QVBoxLayout">
+           <property name="spacing">
             <number>10</number>
            </property>
            <item>
-            <widget class="QILabel" name="mTextWelcome" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextWelcome">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -118,8 +110,8 @@
               </size>
              </property>
-             <property name="text" >
-              <string>&lt;p>This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.&lt;/p>&lt;p>Use the &lt;b>Next&lt;/b> button to go the next page of the wizard and the &lt;b>Back&lt;/b> button to return to the previous page.&lt;/p></string>
-             </property>
-             <property name="wordWrap" >
+             <property name="text">
+              <string>&lt;p&gt;This wizard will guide you through the steps that are necessary to create a new virtual machine for VirtualBox.&lt;/p&gt;&lt;p&gt;Use the &lt;b&gt;Next&lt;/b&gt; button to go the next page of the wizard and the &lt;b&gt;Back&lt;/b&gt; button to return to the previous page.&lt;/p&gt;</string>
+             </property>
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -128,8 +120,8 @@
            <item>
             <spacer>
-             <property name="orientation" >
+             <property name="orientation">
               <enum>Qt::Vertical</enum>
              </property>
-             <property name="sizeHint" >
+             <property name="sizeHint" stdset="0">
               <size>
                <width>0</width>
@@ -144,6 +136,6 @@
        </item>
        <item>
-        <widget class="Line" name="line12" >
-         <property name="orientation" >
+        <widget class="Line" name="line12">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -151,11 +143,11 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
+        <layout class="QHBoxLayout">
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>0</width>
@@ -166,9 +158,9 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnBack1" >
-           <property name="enabled" >
+          <widget class="QPushButton" name="mBtnBack1">
+           <property name="enabled">
             <bool>false</bool>
            </property>
-           <property name="text" >
+           <property name="text">
             <string>&lt; &amp;Back</string>
            </property>
@@ -176,7 +168,7 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnNext1" >
-           <property name="text" >
-            <string>&amp;Next ></string>
+          <widget class="QPushButton" name="mBtnNext1">
+           <property name="text">
+            <string>&amp;Next &gt;</string>
            </property>
           </widget>
@@ -184,11 +176,11 @@
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeType" >
+           <property name="sizeType">
             <enum>QSizePolicy::Fixed</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>5</width>
@@ -199,6 +191,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnCancel1" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnCancel1">
+           <property name="text">
             <string>Cancel</string>
            </property>
@@ -209,9 +201,9 @@
       </layout>
      </widget>
-     <widget class="QWidget" name="mPageNameAndOS" >
-      <layout class="QVBoxLayout" >
-       <item>
-        <widget class="QLabel" name="mPageNameAndOSHdr" >
-         <property name="font" >
+     <widget class="QWidget" name="mPageNameAndOS">
+      <layout class="QVBoxLayout">
+       <item>
+        <widget class="QLabel" name="mPageNameAndOSHdr">
+         <property name="font">
           <font>
            <family>Arial</family>
@@ -221,5 +213,5 @@
           </font>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>VM Name and OS Type</string>
          </property>
@@ -227,6 +219,6 @@
        </item>
        <item>
-        <widget class="Line" name="line21" >
-         <property name="orientation" >
+        <widget class="Line" name="line21">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -234,26 +226,26 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
-         <property name="spacing" >
+        <layout class="QHBoxLayout">
+         <property name="spacing">
           <number>10</number>
          </property>
          <item>
-          <widget class="QLabel" name="mLogoNameAndOS" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Maximum" >
+          <widget class="QLabel" name="mLogoNameAndOS">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="autoFillBackground" >
+           <property name="autoFillBackground">
             <bool>true</bool>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="pixmap" >
-            <pixmap resource="../VirtualBox.qrc" >:/vmw_new_welcome.png</pixmap>
-           </property>
-           <property name="alignment" >
+           <property name="pixmap">
+            <pixmap resource="../VirtualBox.qrc">:/vmw_new_welcome.png</pixmap>
+           </property>
+           <property name="alignment">
             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
            </property>
@@ -261,17 +253,17 @@
          </item>
          <item>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
+          <layout class="QVBoxLayout">
+           <property name="spacing">
             <number>10</number>
            </property>
            <item>
-            <widget class="QILabel" name="mTextNameAndOS" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextNameAndOS">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -279,8 +271,8 @@
               </size>
              </property>
-             <property name="text" >
-              <string>&lt;p>Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.&lt;/p>&lt;p>The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.&lt;/p></string>
-             </property>
-             <property name="wordWrap" >
+             <property name="text">
+              <string>&lt;p&gt;Enter a name for the new virtual machine and select the type of the guest operating system you plan to install onto the virtual machine.&lt;/p&gt;&lt;p&gt;The name of the virtual machine usually indicates its software and hardware configuration. It will be used by all VirtualBox components to identify your virtual machine.&lt;/p&gt;</string>
+             </property>
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -288,32 +280,32 @@
            </item>
            <item>
-            <widget class="QGroupBox" name="gbName" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <widget class="QGroupBox" name="gbName">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="title" >
+             <property name="title">
               <string>N&amp;ame</string>
              </property>
-             <layout class="QHBoxLayout" >
-              <property name="spacing" >
+             <layout class="QHBoxLayout">
+              <property name="spacing">
                <number>0</number>
               </property>
-              <property name="leftMargin" >
+              <property name="leftMargin">
                <number>9</number>
               </property>
-              <property name="topMargin" >
+              <property name="topMargin">
                <number>4</number>
               </property>
-              <property name="rightMargin" >
+              <property name="rightMargin">
                <number>9</number>
               </property>
-              <property name="bottomMargin" >
+              <property name="bottomMargin">
                <number>9</number>
               </property>
               <item>
-               <widget class="QLineEdit" name="mLeName" />
+               <widget class="QLineEdit" name="mLeName"/>
               </item>
              </layout>
@@ -321,20 +313,20 @@
            </item>
            <item>
-            <widget class="QGroupBox" name="gbOSType" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <widget class="QGroupBox" name="gbOSType">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="title" >
+             <property name="title">
               <string>OS &amp;Type</string>
              </property>
-             <layout class="QHBoxLayout" >
-              <property name="topMargin" >
+             <layout class="QHBoxLayout">
+              <property name="topMargin">
                <number>4</number>
               </property>
               <item>
-               <widget class="VBoxOSTypeSelectorWidget" name="mOSTypeSelector" />
+               <widget class="VBoxOSTypeSelectorWidget" name="mOSTypeSelector" native="true"/>
               </item>
              </layout>
@@ -343,8 +335,8 @@
            <item>
             <spacer>
-             <property name="orientation" >
+             <property name="orientation">
               <enum>Qt::Vertical</enum>
              </property>
-             <property name="sizeHint" >
+             <property name="sizeHint" stdset="0">
               <size>
                <width>0</width>
@@ -359,6 +351,6 @@
        </item>
        <item>
-        <widget class="Line" name="line22" >
-         <property name="orientation" >
+        <widget class="Line" name="line22">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -366,11 +358,11 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
+        <layout class="QHBoxLayout">
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>0</width>
@@ -381,6 +373,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnBack2" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnBack2">
+           <property name="text">
             <string>&lt; &amp;Back</string>
            </property>
@@ -388,7 +380,7 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnNext2" >
-           <property name="text" >
-            <string>&amp;Next ></string>
+          <widget class="QPushButton" name="mBtnNext2">
+           <property name="text">
+            <string>&amp;Next &gt;</string>
            </property>
           </widget>
@@ -396,11 +388,11 @@
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeType" >
+           <property name="sizeType">
             <enum>QSizePolicy::Fixed</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>5</width>
@@ -411,6 +403,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnCancel2" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnCancel2">
+           <property name="text">
             <string>Cancel</string>
            </property>
@@ -421,9 +413,9 @@
       </layout>
      </widget>
-     <widget class="QWidget" name="mPageMemory" >
-      <layout class="QVBoxLayout" >
-       <item>
-        <widget class="QLabel" name="mPageMemoryHdr" >
-         <property name="font" >
+     <widget class="QWidget" name="mPageMemory">
+      <layout class="QVBoxLayout">
+       <item>
+        <widget class="QLabel" name="mPageMemoryHdr">
+         <property name="font">
           <font>
            <family>Arial</family>
@@ -433,5 +425,5 @@
           </font>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Memory</string>
          </property>
@@ -439,6 +431,6 @@
        </item>
        <item>
-        <widget class="Line" name="line31" >
-         <property name="orientation" >
+        <widget class="Line" name="line31">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -446,26 +438,26 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
-         <property name="spacing" >
+        <layout class="QHBoxLayout">
+         <property name="spacing">
           <number>10</number>
          </property>
          <item>
-          <widget class="QLabel" name="mLogoMemory" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Maximum" >
+          <widget class="QLabel" name="mLogoMemory">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="autoFillBackground" >
+           <property name="autoFillBackground">
             <bool>true</bool>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="pixmap" >
-            <pixmap resource="../VirtualBox.qrc" >:/vmw_new_welcome.png</pixmap>
-           </property>
-           <property name="alignment" >
+           <property name="pixmap">
+            <pixmap resource="../VirtualBox.qrc">:/vmw_new_welcome.png</pixmap>
+           </property>
+           <property name="alignment">
             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
            </property>
@@ -473,17 +465,17 @@
          </item>
          <item>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
+          <layout class="QVBoxLayout">
+           <property name="spacing">
             <number>10</number>
            </property>
            <item>
-            <widget class="QILabel" name="mTextMemory" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextMemory">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -491,8 +483,8 @@
               </size>
              </property>
-             <property name="text" >
-              <string>&lt;p>Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.&lt;/p></string>
-             </property>
-             <property name="wordWrap" >
+             <property name="text">
+              <string>&lt;p&gt;Select the amount of base memory (RAM) in megabytes to be allocated to the virtual machine.&lt;/p&gt;</string>
+             </property>
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -500,12 +492,12 @@
            </item>
            <item>
-            <widget class="QILabel" name="mTextRAMBest" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextRAMBest">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -513,8 +505,8 @@
               </size>
              </property>
-             <property name="text" >
+             <property name="text">
               <string/>
              </property>
-             <property name="wordWrap" >
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -522,27 +514,27 @@
            </item>
            <item>
-            <widget class="QGroupBox" name="gbMemory" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <widget class="QGroupBox" name="gbMemory">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="title" >
+             <property name="title">
               <string>Base &amp;Memory Size</string>
              </property>
-             <layout class="QGridLayout" >
-              <property name="topMargin" >
+             <layout class="QGridLayout">
+              <property name="topMargin">
                <number>4</number>
               </property>
-              <item row="0" column="0" colspan="3" >
-               <widget class="QSlider" name="mSlRAM" >
-                <property name="sizePolicy" >
-                 <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+              <item row="0" column="0" colspan="3">
+               <widget class="VBoxGuestRAMSlider" name="mSlRAM">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
                  </sizepolicy>
                 </property>
-                <property name="minimumSize" >
+                <property name="minimumSize">
                  <size>
                   <width>0</width>
@@ -550,16 +542,16 @@
                  </size>
                 </property>
-                <property name="orientation" >
+                <property name="orientation">
                  <enum>Qt::Horizontal</enum>
                 </property>
-                <property name="tickPosition" >
+                <property name="tickPosition">
                  <enum>QSlider::TicksBelow</enum>
                 </property>
                </widget>
               </item>
-              <item row="0" column="3" >
-               <widget class="QILineEdit" name="mLeRAM" >
-                <property name="sizePolicy" >
-                 <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+              <item row="0" column="3">
+               <widget class="QILineEdit" name="mLeRAM">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
@@ -568,55 +560,55 @@
                </widget>
               </item>
-              <item row="0" column="4" >
-               <widget class="QLabel" name="txRAM" >
-                <property name="sizePolicy" >
-                 <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+              <item row="0" column="4">
+               <widget class="QLabel" name="txRAM">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
                  </sizepolicy>
                 </property>
-                <property name="text" >
+                <property name="text">
                  <string>MB</string>
                 </property>
                </widget>
               </item>
-              <item row="1" column="0" >
-               <widget class="QLabel" name="mTxRAMMin" >
-                <property name="sizePolicy" >
-                 <sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
+              <item row="1" column="0">
+               <widget class="QLabel" name="mTxRAMMin">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
                  </sizepolicy>
                 </property>
-                <property name="text" >
+                <property name="text">
                  <string/>
                 </property>
-                <property name="alignment" >
+                <property name="alignment">
                  <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
                 </property>
                </widget>
               </item>
-              <item row="1" column="2" >
-               <widget class="QLabel" name="mTxRAMMax" >
-                <property name="sizePolicy" >
-                 <sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
+              <item row="1" column="2">
+               <widget class="QLabel" name="mTxRAMMax">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
                  </sizepolicy>
                 </property>
-                <property name="text" >
+                <property name="text">
                  <string/>
                 </property>
-                <property name="alignment" >
+                <property name="alignment">
                  <set>Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing</set>
                 </property>
                </widget>
               </item>
-              <item row="1" column="1" >
+              <item row="1" column="1">
                <spacer>
-                <property name="orientation" >
+                <property name="orientation">
                  <enum>Qt::Horizontal</enum>
                 </property>
-                <property name="sizeHint" >
+                <property name="sizeHint" stdset="0">
                  <size>
                   <width>40</width>
@@ -631,8 +623,8 @@
            <item>
             <spacer>
-             <property name="orientation" >
+             <property name="orientation">
               <enum>Qt::Vertical</enum>
              </property>
-             <property name="sizeHint" >
+             <property name="sizeHint" stdset="0">
               <size>
                <width>0</width>
@@ -647,6 +639,6 @@
        </item>
        <item>
-        <widget class="Line" name="line32" >
-         <property name="orientation" >
+        <widget class="Line" name="line32">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -654,11 +646,11 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
+        <layout class="QHBoxLayout">
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>0</width>
@@ -669,6 +661,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnBack3" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnBack3">
+           <property name="text">
             <string>&lt; &amp;Back</string>
            </property>
@@ -676,7 +668,7 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnNext3" >
-           <property name="text" >
-            <string>&amp;Next ></string>
+          <widget class="QPushButton" name="mBtnNext3">
+           <property name="text">
+            <string>&amp;Next &gt;</string>
            </property>
           </widget>
@@ -684,11 +676,11 @@
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeType" >
+           <property name="sizeType">
             <enum>QSizePolicy::Fixed</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>5</width>
@@ -699,6 +691,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnCancel3" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnCancel3">
+           <property name="text">
             <string>Cancel</string>
            </property>
@@ -709,9 +701,9 @@
       </layout>
      </widget>
-     <widget class="QWidget" name="mPageHDD" >
-      <layout class="QVBoxLayout" >
-       <item>
-        <widget class="QLabel" name="mPageHDDHdr" >
-         <property name="font" >
+     <widget class="QWidget" name="mPageHDD">
+      <layout class="QVBoxLayout">
+       <item>
+        <widget class="QLabel" name="mPageHDDHdr">
+         <property name="font">
           <font>
            <family>Arial</family>
@@ -721,5 +713,5 @@
           </font>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Virtual Hard Disk</string>
          </property>
@@ -727,6 +719,6 @@
        </item>
        <item>
-        <widget class="Line" name="line41" >
-         <property name="orientation" >
+        <widget class="Line" name="line41">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -734,26 +726,26 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
-         <property name="spacing" >
+        <layout class="QHBoxLayout">
+         <property name="spacing">
           <number>10</number>
          </property>
          <item>
-          <widget class="QLabel" name="mLogoHDD" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Maximum" >
+          <widget class="QLabel" name="mLogoHDD">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="autoFillBackground" >
+           <property name="autoFillBackground">
             <bool>true</bool>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="pixmap" >
-            <pixmap resource="../VirtualBox.qrc" >:/vmw_new_welcome.png</pixmap>
-           </property>
-           <property name="alignment" >
+           <property name="pixmap">
+            <pixmap resource="../VirtualBox.qrc">:/vmw_new_welcome.png</pixmap>
+           </property>
+           <property name="alignment">
             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
            </property>
@@ -761,17 +753,17 @@
          </item>
          <item>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
+          <layout class="QVBoxLayout">
+           <property name="spacing">
             <number>10</number>
            </property>
            <item>
-            <widget class="QILabel" name="mTextVDI" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextVDI">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -779,8 +771,8 @@
               </size>
              </property>
-             <property name="text" >
-              <string>&lt;p>Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the &lt;b>New&lt;/b> button or select an existing hard disk image from the drop-down list or by pressing the &lt;b>Existing&lt;/b> button (to invoke the Virtual Media Manager dialog).&lt;/p>&lt;p>If you need a more complicated hard disk setup, you can also skip this step and attach hard disks later using the VM Settings dialog.&lt;/p></string>
-             </property>
-             <property name="wordWrap" >
+             <property name="text">
+              <string>&lt;p&gt;Select a hard disk image to be used as the boot hard disk of the virtual machine. You can either create a new hard disk using the &lt;b&gt;New&lt;/b&gt; button or select an existing hard disk image from the drop-down list or by pressing the &lt;b&gt;Existing&lt;/b&gt; button (to invoke the Virtual Media Manager dialog).&lt;/p&gt;&lt;p&gt;If you need a more complicated hard disk setup, you can also skip this step and attach hard disks later using the VM Settings dialog.&lt;/p&gt;</string>
+             </property>
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -788,12 +780,12 @@
            </item>
            <item>
-            <widget class="QILabel" name="mTextVDIBest" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextVDIBest">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -801,8 +793,8 @@
               </size>
              </property>
-             <property name="text" >
+             <property name="text">
               <string/>
              </property>
-             <property name="wordWrap" >
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -810,12 +802,12 @@
            </item>
            <item>
-            <widget class="QGroupBox" name="mGbHDA" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <widget class="QGroupBox" name="mGbHDA">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="title" >
+             <property name="title">
               <string>Boot Hard &amp;Disk (Primary Master)</string>
              </property>
@@ -823,8 +815,8 @@
               <bool>true</bool>
              </property>
-             <layout class="QGridLayout" >
-              <item row="0" column="0" colspan="3" >
-               <widget class="QRadioButton" name="mNewVDIRadio" >
-                <property name="text" >
+             <layout class="QGridLayout">
+              <item row="0" column="0" colspan="3">
+               <widget class="QRadioButton" name="mNewVDIRadio">
+                <property name="text">
                  <string>&amp;Create new hard disk</string>
                 </property>
@@ -834,15 +826,15 @@
                </widget>
               </item>
-              <item row="1" column="0" colspan="3" >
-               <widget class="QRadioButton" name="mExistRadio" >
-                <property name="text" >
+              <item row="1" column="0" colspan="3">
+               <widget class="QRadioButton" name="mExistRadio">
+                <property name="text">
                  <string>&amp;Use existing hard disk</string>
                 </property>
                </widget>
               </item>
-              <item row="2" column="1" >
-               <widget class="VBoxMediaComboBox" name="mHDCombo" >
-                <property name="sizePolicy" >
-                 <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+              <item row="2" column="1">
+               <widget class="VBoxMediaComboBox" name="mHDCombo">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
@@ -851,7 +843,7 @@
                </widget>
               </item>
-              <item row="2" column="2" >
-               <widget class="QToolButton" name="mTbVmm" >
-                <property name="autoRaise" >
+              <item row="2" column="2">
+               <widget class="QToolButton" name="mTbVmm">
+                <property name="autoRaise">
                  <bool>true</bool>
                 </property>
@@ -863,8 +855,8 @@
            <item>
             <spacer>
-             <property name="orientation" >
+             <property name="orientation">
               <enum>Qt::Vertical</enum>
              </property>
-             <property name="sizeHint" >
+             <property name="sizeHint" stdset="0">
               <size>
                <width>0</width>
@@ -879,6 +871,6 @@
        </item>
        <item>
-        <widget class="Line" name="line42" >
-         <property name="orientation" >
+        <widget class="Line" name="line42">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -886,11 +878,11 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
+        <layout class="QHBoxLayout">
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>0</width>
@@ -901,6 +893,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnBack4" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnBack4">
+           <property name="text">
             <string>&lt; &amp;Back</string>
            </property>
@@ -908,7 +900,7 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnNext4" >
-           <property name="text" >
-            <string>&amp;Next ></string>
+          <widget class="QPushButton" name="mBtnNext4">
+           <property name="text">
+            <string>&amp;Next &gt;</string>
            </property>
           </widget>
@@ -916,11 +908,11 @@
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeType" >
+           <property name="sizeType">
             <enum>QSizePolicy::Fixed</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>5</width>
@@ -931,6 +923,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnCancel4" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnCancel4">
+           <property name="text">
             <string>Cancel</string>
            </property>
@@ -941,9 +933,9 @@
       </layout>
      </widget>
-     <widget class="QWidget" name="mPageSummary" >
-      <layout class="QVBoxLayout" >
-       <item>
-        <widget class="QLabel" name="mPageSummaryHdr" >
-         <property name="font" >
+     <widget class="QWidget" name="mPageSummary">
+      <layout class="QVBoxLayout">
+       <item>
+        <widget class="QLabel" name="mPageSummaryHdr">
+         <property name="font">
           <font>
            <family>Arial</family>
@@ -953,5 +945,5 @@
           </font>
          </property>
-         <property name="text" >
+         <property name="text">
           <string>Summary</string>
          </property>
@@ -959,6 +951,6 @@
        </item>
        <item>
-        <widget class="Line" name="line51" >
-         <property name="orientation" >
+        <widget class="Line" name="line51">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -966,26 +958,26 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
-         <property name="spacing" >
+        <layout class="QHBoxLayout">
+         <property name="spacing">
           <number>10</number>
          </property>
          <item>
-          <widget class="QLabel" name="mLogoSummary" >
-           <property name="sizePolicy" >
-            <sizepolicy vsizetype="Minimum" hsizetype="Maximum" >
+          <widget class="QLabel" name="mLogoSummary">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
-           <property name="autoFillBackground" >
+           <property name="autoFillBackground">
             <bool>true</bool>
            </property>
-           <property name="text" >
+           <property name="text">
             <string/>
            </property>
-           <property name="pixmap" >
-            <pixmap resource="../VirtualBox.qrc" >:/vmw_new_welcome.png</pixmap>
-           </property>
-           <property name="alignment" >
+           <property name="pixmap">
+            <pixmap resource="../VirtualBox.qrc">:/vmw_new_welcome.png</pixmap>
+           </property>
+           <property name="alignment">
             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
            </property>
@@ -993,17 +985,17 @@
          </item>
          <item>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
+          <layout class="QVBoxLayout">
+           <property name="spacing">
             <number>10</number>
            </property>
            <item>
-            <widget class="QILabel" name="mTextSummaryHdr" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextSummaryHdr">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -1011,8 +1003,8 @@
               </size>
              </property>
-             <property name="text" >
-              <string>&lt;p>You are going to create a new virtual machine with the following parameters:&lt;/p></string>
-             </property>
-             <property name="wordWrap" >
+             <property name="text">
+              <string>&lt;p&gt;You are going to create a new virtual machine with the following parameters:&lt;/p&gt;</string>
+             </property>
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -1020,12 +1012,12 @@
            </item>
            <item>
-            <widget class="QITextEdit" name="mTeSummary" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QITextEdit" name="mTeSummary">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -1033,11 +1025,11 @@
               </size>
              </property>
-             <property name="frameShape" >
+             <property name="frameShape">
               <enum>QFrame::NoFrame</enum>
              </property>
-             <property name="autoFormatting" >
+             <property name="autoFormatting">
               <set>QTextEdit::AutoAll</set>
              </property>
-             <property name="readOnly" >
+             <property name="readOnly">
               <bool>true</bool>
              </property>
@@ -1045,12 +1037,12 @@
            </item>
            <item>
-            <widget class="QILabel" name="mTextSummaryFtr" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
+            <widget class="QILabel" name="mTextSummaryFtr">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="minimumSize" >
+             <property name="minimumSize">
               <size>
                <width>300</width>
@@ -1058,8 +1050,8 @@
               </size>
              </property>
-             <property name="text" >
-              <string>&lt;p>If the above is correct press the &lt;b>Finish&lt;/b> button. Once you press it, a new virtual machine will be created. &lt;/p>&lt;p>Note that you can alter these and all other setting of the created virtual machine at any time using the &lt;b>Settings&lt;/b> dialog accessible through the menu of the main window.&lt;/p></string>
-             </property>
-             <property name="wordWrap" >
+             <property name="text">
+              <string>&lt;p&gt;If the above is correct press the &lt;b&gt;Finish&lt;/b&gt; button. Once you press it, a new virtual machine will be created. &lt;/p&gt;&lt;p&gt;Note that you can alter these and all other setting of the created virtual machine at any time using the &lt;b&gt;Settings&lt;/b&gt; dialog accessible through the menu of the main window.&lt;/p&gt;</string>
+             </property>
+             <property name="wordWrap">
               <bool>true</bool>
              </property>
@@ -1068,11 +1060,11 @@
            <item>
             <spacer>
-             <property name="orientation" >
+             <property name="orientation">
               <enum>Qt::Vertical</enum>
              </property>
-             <property name="sizeType" >
+             <property name="sizeType">
               <enum>QSizePolicy::Expanding</enum>
              </property>
-             <property name="sizeHint" >
+             <property name="sizeHint" stdset="0">
               <size>
                <width>0</width>
@@ -1087,6 +1079,6 @@
        </item>
        <item>
-        <widget class="Line" name="line52" >
-         <property name="orientation" >
+        <widget class="Line" name="line52">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -1094,11 +1086,11 @@
        </item>
        <item>
-        <layout class="QHBoxLayout" >
+        <layout class="QHBoxLayout">
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>0</width>
@@ -1109,6 +1101,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnBack5" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnBack5">
+           <property name="text">
             <string>&lt; &amp;Back</string>
            </property>
@@ -1116,6 +1108,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnFinish" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnFinish">
+           <property name="text">
             <string>&amp;Finish</string>
            </property>
@@ -1124,11 +1116,11 @@
          <item>
           <spacer>
-           <property name="orientation" >
+           <property name="orientation">
             <enum>Qt::Horizontal</enum>
            </property>
-           <property name="sizeType" >
+           <property name="sizeType">
             <enum>QSizePolicy::Fixed</enum>
            </property>
-           <property name="sizeHint" >
+           <property name="sizeHint" stdset="0">
             <size>
              <width>5</width>
@@ -1139,6 +1131,6 @@
          </item>
          <item>
-          <widget class="QPushButton" name="mBtnCancel5" >
-           <property name="text" >
+          <widget class="QPushButton" name="mBtnCancel5">
+           <property name="text">
             <string>Cancel</string>
            </property>
@@ -1179,4 +1171,14 @@
    <header>QILineEdit.h</header>
   </customwidget>
+  <customwidget>
+   <class>QIAdvancedSlider</class>
+   <extends>QSlider</extends>
+   <header>QIAdvancedSlider.h</header>
+  </customwidget>
+  <customwidget>
+   <class>VBoxGuestRAMSlider</class>
+   <extends>QIAdvancedSlider</extends>
+   <header>VBoxGuestRAMSlider.h</header>
+  </customwidget>
  </customwidgets>
  <tabstops>
@@ -1205,5 +1207,5 @@
  </tabstops>
  <resources>
-  <include location="../VirtualBox.qrc" />
+  <include location="../VirtualBox.qrc"/>
  </resources>
  <connections/>
Index: trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsSystem.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsSystem.ui	(revision 21304)
+++ trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsSystem.ui	(revision 21305)
@@ -64,5 +64,5 @@
          </property>
          <item>
-          <widget class="QIAdvancedSlider" name="mSlMemory">
+          <widget class="VBoxGuestRAMSlider" name="mSlMemory">
            <property name="whatsThis">
             <string>Controls the amount of memory provided to the virtual machine. If you assign too much, the machine might not start.</string>
@@ -602,4 +602,9 @@
    <header>QIAdvancedSlider.h</header>
   </customwidget>
+  <customwidget>
+   <class>VBoxGuestRAMSlider</class>
+   <extends>QIAdvancedSlider</extends>
+   <header>VBoxGuestRAMSlider.h</header>
+  </customwidget>
  </customwidgets>
  <resources/>
