Index: trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp	(revision 47559)
@@ -20,12 +20,34 @@
 #include "QIWidgetValidator.h"
 
-/* Qt includes */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+
+/* GUI includes: */
+#include "UISettingsPage.h"
+
+UIPageValidator::UIPageValidator(QObject *pParent, UISettingsPage *pPage)
+    : QObject(pParent)
+    , m_pPage(pPage)
+    , m_fIsValid(true)
+{
+}
+
+void UIPageValidator::revalidate()
+{
+    /* Notify listener(s) about validity change: */
+    emit sigValidityChanged(this);
+}
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+/* Qt includes: */
 #include <QLineEdit>
 #include <QComboBox>
 #include <QLabel>
 
+/* GUI includes: */
+#include "VBoxGlobal.h"
+
+/* Other VBox includes: */
 #include <iprt/assert.h>
-
-#include "VBoxGlobal.h"
 
 /** @class QIWidgetValidator
@@ -355,4 +377,5 @@
  */
 
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 /** @class QIULongValidator
Index: trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.h	(revision 47559)
@@ -20,10 +20,57 @@
 #define __QIWidgetValidator_h__
 
+/* Qt includes: */
+#include <QValidator>
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+
+/* Forward declarations: */
+class UISettingsPage;
+
+/* Page validator prototype: */
+class UIPageValidator : public QObject
+{
+    Q_OBJECT;
+
+signals:
+
+    /* Notifier: Validation stuff: */
+    void sigValidityChanged(UIPageValidator *pValidator);
+
+public:
+
+    /* Constructor: */
+    UIPageValidator(QObject *pParent, UISettingsPage *pPage);
+
+    /* API: Page stuff: */
+    UISettingsPage* page() const { return m_pPage; }
+
+    /* API: Validity stuff: */
+    bool isValid() const { return m_fIsValid; }
+    void setValid(bool fIsValid) { m_fIsValid = fIsValid; }
+
+    /* API: Message stuff: */
+    QString lastMessage() const { return m_strLastMessage; }
+    void setLastMessage(const QString &strLastMessage) { m_strLastMessage = strLastMessage; }
+
+public slots:
+
+    /* API/Handler: Validation stuff: */
+    void revalidate();
+
+private:
+
+    /* Variables: */
+    UISettingsPage *m_pPage;
+    bool m_fIsValid;
+    QString m_strLastMessage;
+};
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+/* General includes: */
 #include <limits.h>
 
-/* Qt includes */
-#include <QObject>
-#include <QValidator>
-#include <QList>
+/* Qt includes: */
 #include <QPointer>
 
@@ -87,4 +134,5 @@
     void doRevalidate() { emit validityChanged (this); }
 };
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 class QIULongValidator : public QValidator
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp	(revision 47559)
@@ -35,4 +35,5 @@
 #include "UIToolBar.h"
 #include "UIIconPool.h"
+#include "UIConverter.h"
 #ifdef Q_WS_MAC
 # include "VBoxUtils.h"
@@ -164,4 +165,5 @@
 }
 
+#ifndef VBOX_WITH_NEW_SETTINGS_VALIDATOR
 void UISettingsDialog::sltRevalidate(QIWidgetValidator *pValidator)
 {
@@ -189,4 +191,5 @@
     pValidator->setOtherValid(fValid);
 }
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 void UISettingsDialog::sltCategoryChanged(int cId)
@@ -273,4 +276,10 @@
 #endif /* VBOX_GUI_WITH_TOOLBAR_SETTINGS */
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Retranslate all validators: */
+    foreach (UIPageValidator *pValidator, findChildren<UIPageValidator*>())
+        if (!pValidator->lastMessage().isEmpty())
+            sltHandleValidityChange(pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     /* Get the list of validators: */
     QList<QIWidgetValidator*> validatorsList = findChildren<QIWidgetValidator*>();
@@ -288,4 +297,5 @@
             sltRevalidate(pValidator);
     }
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 }
 
@@ -365,4 +375,122 @@
         assignValidator(pSettingsPage);
 }
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UISettingsDialog::revalidate(UIPageValidator *pValidator)
+{
+    /* Perform page revalidation: */
+    UISettingsPage *pSettingsPage = pValidator->page();
+    QString strPageTitle = m_pSelector->itemTextByPage(pSettingsPage);
+    QString strMessageText;
+    bool fIsValid = pSettingsPage->revalidate(strMessageText, strPageTitle);
+
+    /* Remember revalidation result: */
+    pValidator->setValid(fIsValid);
+
+    /* Remember warning/error message: */
+    if (strMessageText.isEmpty())
+        pValidator->setLastMessage(QString());
+    else
+    {
+        pValidator->setLastMessage(tr("On the <b>%1</b> page, %2").arg(strPageTitle, strMessageText));
+        printf("UISettingsDialog:  Page validation failed!\n");
+    }
+}
+
+void UISettingsDialog::revalidate()
+{
+    /* Perform dialog revalidation: */
+    m_fValid = true;
+    m_fSilent = true;
+
+    /* Enumerating all the validators we have: */
+    QList<UIPageValidator*> validators(findChildren<UIPageValidator*>());
+    foreach (UIPageValidator *pValidator, validators)
+    {
+        /* Is current validator have something to say? */
+        if (!pValidator->lastMessage().isEmpty())
+        {
+            /* What page is it related to? */
+            UISettingsPage *pFailedSettingsPage = pValidator->page();
+            printf("UISettingsDialog:  Dialog validation failed on page #%d (%s)\n"
+//                   "Message: %s\n"
+                   , pFailedSettingsPage->id()
+                   , gpConverter->toInternalString((MachineSettingsPageType)pFailedSettingsPage->id()).toAscii().constData()
+//                   , pValidator->lastMessage().toAscii().constData()
+                   );
+
+            /* Show error first: */
+            if (!pValidator->isValid())
+            {
+                m_fValid = false;
+                setError(pValidator->lastMessage());
+                m_pWarningPane->setWarningPixmap(m_errorIcon);
+                m_pWarningPane->setWarningText(m_strErrorHint);
+#ifdef Q_WS_MAC
+                m_pWarningPane->setToolTip(m_strErrorString);
+#endif /* Q_WS_MAC */
+            }
+            /* Show warning if message is not an error: */
+            else
+            {
+                m_fSilent = false;
+                setWarning(pValidator->lastMessage());
+                m_pWarningPane->setWarningPixmap(m_warningIcon);
+                m_pWarningPane->setWarningText(m_strWarningHint);
+#ifdef Q_WS_MAC
+                m_pWarningPane->setToolTip(m_strWarningString);
+#endif /* Q_WS_MAC */
+            }
+
+            /* Stop dialog revalidation on first error/warning: */
+            if (!m_fValid || !m_fSilent)
+                break;
+        }
+    }
+
+    /* Make sure message-pane visible if necessary: */
+    if ((!m_fValid || !m_fSilent) && m_pStatusBar->currentIndex() == 0)
+        m_pStatusBar->setCurrentWidget(m_pWarningPane);
+    /* Make sure whats-this-pane visible otherwise: */
+    else if (m_fValid && m_fSilent && m_pStatusBar->currentWidget() == m_pWarningPane)
+        m_pStatusBar->setCurrentIndex(0);
+
+    /* Lock/unlock settings-page OK button according global validity status: */
+    m_pButtonBox->button(QDialogButtonBox::Ok)->setEnabled(m_fValid);
+}
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UISettingsDialog::sltHandleValidityChange(UIPageValidator *pValidator)
+{
+    printf("UISettingsDialog: Revalidation requested.\n");
+
+    /* Determine which settings-page had called for revalidation: */
+    UISettingsPage *pSettingsPage = pValidator->page();
+    const QString strPageName(gpConverter->toInternalString((MachineSettingsPageType)pSettingsPage->id()));
+
+    /* Perform page revalidation: */
+    printf("UISettingsDialog:  *%s* page revalidation in progress...\n",
+           strPageName.toAscii().constData());
+    revalidate(pValidator);
+    printf("UISettingsDialog:  *%s* page revalidation complete!\n",
+           strPageName.toAscii().constData());
+
+    /* Perform inter-page recorrelation: */
+    printf("UISettingsDialog:  *%s* page recorrelation in progress...\n",
+           strPageName.toAscii().constData());
+    recorrelate(pSettingsPage);
+    printf("UISettingsDialog:  *%s* page recorrelation complete!\n",
+           strPageName.toAscii().constData());
+
+    /* Perform dialog revalidation: */
+    printf("UISettingsDialog:  Dialog revalidation in progress...\n");
+    revalidate();
+    printf("UISettingsDialog:  Dialog revalidation complete!\n");
+
+    printf("UISettingsDialog: Revalidation processed.\n");
+}
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 void UISettingsDialog::sltHandleValidityChanged(const QIWidgetValidator * /* pValidator */)
@@ -445,4 +573,5 @@
     }
 }
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 void UISettingsDialog::sltUpdateWhatsThis(bool fGotFocus /* = false */)
@@ -596,8 +725,19 @@
 void UISettingsDialog::assignValidator(UISettingsPage *pPage)
 {
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Assign validator: */
+    UIPageValidator *pValidator = new UIPageValidator(this, pPage);
+    connect(pValidator, SIGNAL(sigValidityChanged(UIPageValidator*)), this, SLOT(sltHandleValidityChange(UIPageValidator*)));
+    pPage->setValidator(pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    /* Assign validator: */
     QIWidgetValidator *pValidator = new QIWidgetValidator(m_pSelector->itemTextByPage(pPage), pPage, this);
     connect(pValidator, SIGNAL(validityChanged(const QIWidgetValidator*)), this, SLOT(sltHandleValidityChanged(const QIWidgetValidator*)));
     connect(pValidator, SIGNAL(isValidRequested(QIWidgetValidator*)), this, SLOT(sltRevalidate(QIWidgetValidator*)));
     pPage->setValidator(pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+    // TODO: Why here?
+    /* Configure navigation (tab-order): */
     pPage->setOrderAfter(m_pSelector->widget());
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h	(revision 47559)
@@ -27,5 +27,9 @@
 
 /* Forward declarations: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+class UIPageValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 class QIWidgetValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 class QProgressBar;
 class QStackedWidget;
@@ -54,6 +58,8 @@
 protected slots:
 
+#ifndef VBOX_WITH_NEW_SETTINGS_VALIDATOR
     /* Validation handler: */
     virtual void sltRevalidate(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Category-change slot: */
@@ -96,6 +102,10 @@
                  UISettingsPage* pSettingsPage = 0, int iParentId = -1);
 
-    /* Settings page correlator: */
+    /* Helpers: Validation stuff: */
     virtual void recorrelate(UISettingsPage *pSettingsPage) { Q_UNUSED(pSettingsPage); }
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void revalidate(UIPageValidator *pValidator);
+    void revalidate();
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Protected variables: */
@@ -105,6 +115,11 @@
 private slots:
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Handler: Validation stuff: */
+    void sltHandleValidityChange(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     /* Slot to handle validity-changes: */
     void sltHandleValidityChanged(const QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Slot to update whats-this: */
@@ -120,4 +135,5 @@
     void showEvent(QShowEvent *pEvent);
 
+    /* Helper: Validation stuff: */
     void assignValidator(UISettingsPage *pPage);
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 47559)
@@ -946,4 +946,52 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UISettingsDialogMachine::recorrelate(UISettingsPage *pSettingsPage)
+{
+    switch (pSettingsPage->id())
+    {
+        /* General page correlations: */
+        case MachineSettingsPageType_General:
+        {
+            /* Make changes on 'general' page influent 'display' page: */
+            UIMachineSettingsGeneral *pGeneralPage = qobject_cast<UIMachineSettingsGeneral*>(pSettingsPage);
+            UIMachineSettingsDisplay *pDisplayPage = qobject_cast<UIMachineSettingsDisplay*>(m_pSelector->idToPage(MachineSettingsPageType_Display));
+            if (pGeneralPage && pDisplayPage)
+                pDisplayPage->setGuestOSType(pGeneralPage->guestOSType());
+            break;
+        }
+        /* System page correlations: */
+        case MachineSettingsPageType_System:
+        {
+            /* Make changes on 'system' page influent 'general' and 'storage' page: */
+            UIMachineSettingsSystem *pSystemPage = qobject_cast<UIMachineSettingsSystem*>(pSettingsPage);
+            UIMachineSettingsGeneral *pGeneralPage = qobject_cast<UIMachineSettingsGeneral*>(m_pSelector->idToPage(MachineSettingsPageType_General));
+            UIMachineSettingsStorage *pStoragePage = qobject_cast<UIMachineSettingsStorage*>(m_pSelector->idToPage(MachineSettingsPageType_Storage));
+            if (pSystemPage)
+            {
+                if (pGeneralPage)
+                    pGeneralPage->setHWVirtExEnabled(pSystemPage->isHWVirtExEnabled());
+                if (pStoragePage)
+                    pStoragePage->setChipsetType(pSystemPage->chipsetType());
+            }
+            break;
+        }
+        /* USB page correlations: */
+        case MachineSettingsPageType_USB:
+        {
+            /* Make changes on 'usb' page influent 'system' page: */
+            UIMachineSettingsUSB *pUsbPage = qobject_cast<UIMachineSettingsUSB*>(pSettingsPage);
+            UIMachineSettingsSystem *pSystemPage = qobject_cast<UIMachineSettingsSystem*>(m_pSelector->idToPage(MachineSettingsPageType_System));
+            if (pUsbPage && pSystemPage)
+                pSystemPage->setOHCIEnabled(pUsbPage->isOHCIEnabled());
+            break;
+        }
+        default:
+            break;
+    }
+}
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
 void UISettingsDialogMachine::recorrelate(UISettingsPage *pSettingsPage)
 {
@@ -986,4 +1034,5 @@
     }
 }
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 void UISettingsDialogMachine::sltMarkLoaded()
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.h	(revision 47559)
@@ -36,5 +36,9 @@
 
 /* Forward declarations: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+class UIPageValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 class QIWidgetValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 class QShowEvent;
 
@@ -93,5 +97,9 @@
 
     /* Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    virtual void setValidator(UIPageValidator* /* pValidator */) {}
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     virtual void setValidator(QIWidgetValidator* /* pValidator */) {}
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     virtual bool revalidate(QString& /* strWarningText */, QString& /* strTitle */) { return true; }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp	(revision 47559)
@@ -160,6 +160,11 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIGlobalSettingsInput::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIGlobalSettingsInput::setValidator(QIWidgetValidator *pValidator)
-{
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
     m_pValidator = pValidator;
     connect(m_pSelectorModel, SIGNAL(sigRevalidationRequired()), m_pValidator, SLOT(revalidate()));
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.h	(revision 47559)
@@ -139,6 +139,10 @@
     void saveFromCacheTo(QVariant &data);
 
-    /* Helpers: Validation stuff: */
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -151,6 +155,12 @@
 private:
 
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     /* Cache: */
-    QIWidgetValidator *m_pValidator;
     UISettingsCacheGlobalInput m_cache;
     QTabWidget *m_pTabWidget;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp	(revision 47559)
@@ -275,4 +275,8 @@
     m_pInterfacesTree->setCurrentItem(m_pInterfacesTree->topLevelItem(0));
     sltUpdateCurrentItem();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -368,7 +372,11 @@
 }
 
-/* Validation assignments: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIGlobalSettingsNetwork::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIGlobalSettingsNetwork::setValidator(QIWidgetValidator *pValidator)
-{
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
     m_pValidator = pValidator;
 }
@@ -499,6 +507,9 @@
         pItem->updateInfo();
         sltUpdateCurrentItem();
-        m_pValidator->revalidate();
         m_fChanged = true;
+
+        /* Revalidate if possible: */
+        if (m_pValidator)
+            m_pValidator->revalidate();
     }
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.h	(revision 47559)
@@ -163,6 +163,10 @@
     void saveFromCacheTo(QVariant &data);
 
-    /* Validation stuff: */
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -190,6 +194,10 @@
     void removeListItem(UIHostInterfaceItem *pItem);
 
-    /* Validator: */
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Helper actions: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp	(revision 47559)
@@ -71,4 +71,8 @@
     m_pPortEditor->setText(m_cache.m_strProxyPort);
     sltProxyToggled();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -100,5 +104,9 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIGlobalSettingsProxy::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIGlobalSettingsProxy::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 {
     /* Configure validation: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h	(revision 47559)
@@ -61,6 +61,10 @@
     void saveFromCacheTo(QVariant &data);
 
-    /* Helper: Validation stuff: */
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Helper: Navigation stuff: */
@@ -78,5 +82,9 @@
 
     /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Cache: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 47559)
@@ -70,4 +70,10 @@
     /* Recheck video RAM requirement: */
     checkVRAMRequirements();
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 }
 
@@ -300,6 +306,11 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsDisplay::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIMachineSettingsDisplay::setValidator(QIWidgetValidator *pValidator)
-{
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
     m_pValidator = pValidator;
     connect(m_pCheckbox3D, SIGNAL(stateChanged(int)), m_pValidator, SLOT(revalidate()));
@@ -383,4 +394,20 @@
     }
 #endif /* VBOX_WITH_VIDEOHWACCEL */
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Check VRDE server port: */
+    if (m_pEditorRemoteDisplayPort->text().trimmed().isEmpty())
+    {
+        strWarning = tr("server port value was not specified.");
+        return false;
+    }
+
+    /* Check VRDE server timeout: */
+    if (m_pEditorRemoteDisplayTimeout->text().trimmed().isEmpty())
+    {
+        strWarning = tr("authentication timeout value was not specified.");
+        return false;
+    }
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     return true;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 47559)
@@ -146,5 +146,9 @@
 
     /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -196,6 +200,11 @@
     static int calculateQuality(int iFrameWidth, int iFrameHeight, int iFrameRate, int iBitRate);
 
-    /* Validation stuff: */
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     /* Guest OS type id: */
     CGuestOSType m_guestOSType;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 47559)
@@ -29,5 +29,5 @@
 
 UIMachineSettingsGeneral::UIMachineSettingsGeneral()
-    : mValidator(0)
+    : m_pValidator(0)
     , m_fHWVirtExEnabled(false)
 {
@@ -63,8 +63,26 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
 void UIMachineSettingsGeneral::setHWVirtExEnabled(bool fEnabled)
 {
+    /* Make sure hardware virtualization extension has changed: */
+    if (m_fHWVirtExEnabled == fEnabled)
+        return;
+
+    /* Update hardware virtualization extension value: */
     m_fHWVirtExEnabled = fEnabled;
-}
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
+}
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+void UIMachineSettingsGeneral::setHWVirtExEnabled(bool fEnabled)
+{
+    m_fHWVirtExEnabled = fEnabled;
+}
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 bool UIMachineSettingsGeneral::is64BitOSTypeSelected() const
@@ -138,6 +156,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -215,12 +233,27 @@
 }
 
-void UIMachineSettingsGeneral::setValidator (QIWidgetValidator *aVal)
-{
-    mValidator = aVal;
-    connect (m_pNameAndSystemEditor, SIGNAL (sigOsTypeChanged()), mValidator, SLOT (revalidate()));
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsGeneral::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsGeneral::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
+    connect(m_pNameAndSystemEditor, SIGNAL(sigOsTypeChanged()), m_pValidator, SLOT(revalidate()));
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    connect(m_pNameAndSystemEditor, SIGNAL(sigNameChanged(const QString&)), m_pValidator, SLOT(revalidate()));
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 }
 
 bool UIMachineSettingsGeneral::revalidate(QString &strWarning, QString& /* strTitle */)
 {
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    if (m_pNameAndSystemEditor->name().trimmed().isEmpty())
+    {
+        strWarning = tr("you have not specified name for this VM.");
+        return false;
+    }
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     if (is64BitOSTypeSelected() && !m_fHWVirtExEnabled)
         strWarning = tr("you have selected a 64-bit guest OS type for this VM. As such guests "
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h	(revision 47559)
@@ -106,5 +106,10 @@
     void saveFromCacheTo(QVariant &data);
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -117,8 +122,13 @@
     void polishPage();
 
-    QIWidgetValidator *mValidator;
-    bool m_fHWVirtExEnabled;
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Cache: */
+    bool m_fHWVirtExEnabled;
     UICacheSettingsMachineGeneral m_cache;
 };
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 47559)
@@ -161,6 +161,11 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsNetwork::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIMachineSettingsNetwork::setValidator(QIWidgetValidator *pValidator)
-{
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
     m_pValidator = pValidator;
     connect(m_pMACEditor, SIGNAL(textEdited(const QString &)), m_pValidator, SLOT(revalidate()));
@@ -356,4 +361,5 @@
     /* Update availability: */
     m_pAdapterOptionsContainer->setEnabled(m_pEnableAdapterCheckBox->isChecked());
+
     /* Revalidate if possible: */
     if (m_pValidator)
@@ -943,6 +949,11 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsNetworkPage::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIMachineSettingsNetworkPage::setValidator(QIWidgetValidator *pValidator)
-{
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
     m_pValidator = pValidator;
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.h	(revision 47559)
@@ -109,6 +109,10 @@
     void uploadAdapterCache(UICacheSettingsMachineNetworkAdapter &adapterCache);
 
-    /* Validation stuff: */
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -157,6 +161,10 @@
     UIMachineSettingsNetworkPage *m_pParent;
 
-    /* Validator: */
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Other variables: */
@@ -207,6 +215,10 @@
     bool changed() const { return m_cache.wasChanged(); }
 
-    /* Validation stuff: */
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -234,6 +246,10 @@
     static void updateGenericProperties(CNetworkAdapter &adapter, const QString &strPropText);
 
-    /* Validator: */
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Tab holder: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp	(revision 47559)
@@ -33,6 +33,6 @@
 UIMachineSettingsParallel::UIMachineSettingsParallel(UIMachineSettingsParallelPage *pParent)
     : QIWithRetranslateUI<QWidget> (0)
+    , m_pValidator(0)
     , m_pParent(pParent)
-    , mValidator(0)
     , m_iSlot(-1)
 {
@@ -114,15 +114,15 @@
 }
 
-void UIMachineSettingsParallel::setValidator (QIWidgetValidator *aVal)
-{
-    Assert (aVal);
-    mValidator = aVal;
-    connect (mLeIRQ, SIGNAL (textChanged (const QString &)),
-             mValidator, SLOT (revalidate()));
-    connect (mLeIOPort, SIGNAL (textChanged (const QString &)),
-             mValidator, SLOT (revalidate()));
-    connect (mLePath, SIGNAL (textChanged (const QString &)),
-             mValidator, SLOT (revalidate()));
-    mValidator->revalidate();
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsParallel::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsParallel::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
+    connect(mLeIRQ, SIGNAL(textChanged(const QString&)), m_pValidator, SLOT(revalidate()));
+    connect(mLeIOPort, SIGNAL(textChanged(const QString&)), m_pValidator, SLOT(revalidate()));
+    connect(mLePath, SIGNAL(textChanged(const QString&)), m_pValidator, SLOT(revalidate()));
 }
 
@@ -160,6 +160,8 @@
     if (aOn)
         mCbNumberActivated (mCbNumber->currentText());
-    if (mValidator)
-        mValidator->revalidate();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -176,4 +178,10 @@
         mLeIOPort->setText ("0x" + QString::number (IOBase, 16).toUpper());
     }
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 }
 
@@ -181,5 +189,5 @@
 /* UIMachineSettingsParallelPage stuff */
 UIMachineSettingsParallelPage::UIMachineSettingsParallelPage()
-    : mValidator(0)
+    : m_pValidator(0)
     , mTabWidget(0)
 {
@@ -256,5 +264,5 @@
 
         /* Setup page validation: */
-        pPage->setValidator(mValidator);
+        pPage->setValidator(m_pValidator);
 
         /* Setup tab order: */
@@ -269,6 +277,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -329,7 +337,12 @@
 }
 
-void UIMachineSettingsParallelPage::setValidator (QIWidgetValidator *aVal)
-{
-    mValidator = aVal;
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsParallelPage::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsParallelPage::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
 }
 
@@ -337,5 +350,9 @@
 {
     bool valid = true;
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    QList<QPair<QString, QString> > ports;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QStringList ports;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QStringList paths;
 
@@ -347,6 +364,30 @@
             static_cast<UIMachineSettingsParallel*> (tab);
 
+        if (!page->mGbParallel->isChecked())
+            continue;
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+        /* Check the predefined port attributes uniqueness: */
+        {
+            QString strIRQ = page->mLeIRQ->text();
+            QString strIOPort = page->mLeIOPort->text();
+            QPair<QString, QString> pair(strIRQ, strIOPort);
+            valid = !strIRQ.isEmpty() && !strIOPort.isEmpty() && !ports.contains(pair);
+            if (!valid)
+            {
+                if (strIRQ.isEmpty())
+                    aWarning = tr("IRC not specified.");
+                else if (strIOPort.isEmpty())
+                    aWarning = tr("IO port not specified.");
+                else
+                    aWarning = tr ("duplicate port attributes specified.");
+                aTitle += ": " +
+                    vboxGlobal().removeAccelMark(mTabWidget->tabText(mTabWidget->indexOf(tab)));
+            }
+            ports << pair;
+        }
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
         /* Check the predefined port number unicity */
-        if (page->mGbParallel->isChecked() && !page->isUserDefined())
+        if (!page->isUserDefined())
         {
             QString port = page->mCbNumber->currentText();
@@ -361,7 +402,7 @@
             ports << port;
         }
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
         /* Check the port path emptiness & unicity */
-        if (page->mGbParallel->isChecked())
         {
             QString path = page->mLePath->text();
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.h	(revision 47559)
@@ -84,5 +84,10 @@
     void uploadPortData(UICacheSettingsMachineParallelPort &portCache);
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     QWidget* setOrderAfter (QWidget *aAfter);
@@ -102,6 +107,12 @@
 private:
 
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     UIMachineSettingsParallelPage *m_pParent;
-    QIWidgetValidator *mValidator;
     int m_iSlot;
 };
@@ -135,5 +146,10 @@
     bool changed() const { return m_cache.wasChanged(); }
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate (QString &aWarning, QString &aTitle);
 
@@ -144,5 +160,11 @@
     void polishPage();
 
-    QIWidgetValidator *mValidator;
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     QITabWidget *mTabWidget;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp	(revision 47559)
@@ -34,6 +34,6 @@
 UIMachineSettingsSerial::UIMachineSettingsSerial(UIMachineSettingsSerialPage *pParent)
     : QIWithRetranslateUI<QWidget> (0)
+    , m_pValidator(0)
     , m_pParent(pParent)
-    , mValidator(0)
     , m_iSlot(-1)
 {
@@ -130,15 +130,15 @@
 }
 
-void UIMachineSettingsSerial::setValidator (QIWidgetValidator *aVal)
-{
-    Assert (aVal);
-    mValidator = aVal;
-    connect (mLeIRQ, SIGNAL (textChanged (const QString &)),
-             mValidator, SLOT (revalidate()));
-    connect (mLeIOPort, SIGNAL (textChanged (const QString &)),
-             mValidator, SLOT (revalidate()));
-    connect (mLePath, SIGNAL (textChanged (const QString &)),
-             mValidator, SLOT (revalidate()));
-    mValidator->revalidate();
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsSerial::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsSerial::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
+    connect(mLeIRQ, SIGNAL(textChanged(const QString&)), m_pValidator, SLOT(revalidate()));
+    connect(mLeIOPort, SIGNAL(textChanged(const QString&)), m_pValidator, SLOT(revalidate()));
+    connect(mLePath, SIGNAL(textChanged(const QString&)), m_pValidator, SLOT(revalidate()));
 }
 
@@ -186,6 +186,8 @@
         mCbModeActivated (mCbMode->currentText());
     }
-    if (mValidator)
-        mValidator->revalidate();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -202,4 +204,10 @@
         mLeIOPort->setText ("0x" + QString::number (IOBase, 16).toUpper());
     }
+
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
+#endif /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 }
 
@@ -209,6 +217,8 @@
     mCbPipe->setEnabled (mode == KPortMode_HostPipe);
     mLePath->setEnabled (mode != KPortMode_Disconnected);
-    if (mValidator)
-        mValidator->revalidate();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -216,5 +226,5 @@
 /* UIMachineSettingsSerialPage stuff */
 UIMachineSettingsSerialPage::UIMachineSettingsSerialPage()
-    : mValidator(0)
+    : m_pValidator(0)
     , mTabWidget(0)
 {
@@ -293,5 +303,5 @@
 
         /* Setup page validation: */
-        pPage->setValidator(mValidator);
+        pPage->setValidator(m_pValidator);
 
         /* Setup tab order: */
@@ -306,6 +316,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -371,7 +381,12 @@
 }
 
-void UIMachineSettingsSerialPage::setValidator (QIWidgetValidator * aVal)
-{
-    mValidator = aVal;
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsSerialPage::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsSerialPage::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
 }
 
@@ -379,5 +394,9 @@
 {
     bool valid = true;
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    QList<QPair<QString, QString> > ports;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QStringList ports;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QStringList paths;
 
@@ -392,4 +411,25 @@
             continue;
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+        /* Check the predefined port attributes uniqueness: */
+        {
+            QString strIRQ = page->mLeIRQ->text();
+            QString strIOPort = page->mLeIOPort->text();
+            QPair<QString, QString> pair(strIRQ, strIOPort);
+            valid = !strIRQ.isEmpty() && !strIOPort.isEmpty() && !ports.contains(pair);
+            if (!valid)
+            {
+                if (strIRQ.isEmpty())
+                    aWarning = tr("IRC not specified.");
+                else if (strIOPort.isEmpty())
+                    aWarning = tr("IO port not specified.");
+                else
+                    aWarning = tr ("duplicate port attributes specified.");
+                aTitle += ": " +
+                    vboxGlobal().removeAccelMark(mTabWidget->tabText(mTabWidget->indexOf(tab)));
+            }
+            ports << pair;
+        }
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
         /* Check the predefined port number unicity */
         if (!page->isUserDefined())
@@ -399,5 +439,5 @@
             if (!valid)
             {
-                aWarning = tr ("Duplicate port number selected ");
+                aWarning = tr ("duplicate port number specified.");
                 aTitle += ": " +
                     vboxGlobal().removeAccelMark (mTabWidget->tabText (mTabWidget->indexOf (tab)));
@@ -406,4 +446,5 @@
             ports << port;
         }
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
         /* Check the port path emptiness & unicity */
@@ -421,6 +462,6 @@
                 {
                     aWarning = path.isEmpty() ?
-                        tr ("Port path not specified ") :
-                        tr ("Duplicate port path entered ");
+                        tr ("port path not specified.") :
+                        tr ("duplicate port path entered.");
                     aTitle += ": " +
                         vboxGlobal().removeAccelMark (mTabWidget->tabText (mTabWidget->indexOf (tab)));
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.h	(revision 47559)
@@ -90,5 +90,10 @@
     void uploadPortData(UICacheSettingsMachineSerialPort &data);
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     QWidget* setOrderAfter (QWidget *aAfter);
@@ -109,6 +114,12 @@
 private:
 
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     UIMachineSettingsSerialPage *m_pParent;
-    QIWidgetValidator *mValidator;
     int m_iSlot;
 };
@@ -142,5 +153,10 @@
     bool changed() const { return m_cache.wasChanged(); }
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate (QString &aWarning, QString &aTitle);
 
@@ -151,5 +167,11 @@
     void polishPage();
 
-    QIWidgetValidator *mValidator;
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     QITabWidget *mTabWidget;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 47559)
@@ -1719,5 +1719,5 @@
  */
 UIMachineSettingsStorage::UIMachineSettingsStorage()
-    : mValidator(0)
+    : m_pValidator(0)
     , mStorageModel(0)
     , mAddCtrAction(0), mDelCtrAction(0)
@@ -1886,9 +1886,28 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
 void UIMachineSettingsStorage::setChipsetType(KChipsetType type)
 {
+    /* Make sure chipset type has changed: */
+    if (mStorageModel->chipsetType() == type)
+        return;
+
+    /* Update chipset type value: */
     mStorageModel->setChipsetType(type);
     updateActionsState();
-}
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
+}
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+void UIMachineSettingsStorage::setChipsetType(KChipsetType type)
+{
+    mStorageModel->setChipsetType(type);
+    updateActionsState();
+}
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 /* Load data to cache from corresponding external object(s),
@@ -2029,6 +2048,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -2098,7 +2117,12 @@
 }
 
-void UIMachineSettingsStorage::setValidator (QIWidgetValidator *aVal)
-{
-    mValidator = aVal;
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsStorage::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsStorage::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
 }
 
@@ -2269,5 +2293,8 @@
             {
                 mStorageModel->setData (attIndex, attMediumId, StorageModel::R_AttMediumId);
-                if (mValidator) mValidator->revalidate();
+
+                /* Revalidate if possible: */
+                if (m_pValidator)
+                    m_pValidator->revalidate();
             }
         }
@@ -2288,5 +2315,8 @@
             {
                 mStorageModel->setData (attIndex, UIMedium().id(), StorageModel::R_AttMediumId);
-                if (mValidator) mValidator->revalidate();
+
+                /* Revalidate if possible: */
+                if (m_pValidator)
+                    m_pValidator->revalidate();
             }
         }
@@ -2337,5 +2367,8 @@
     mStorageModel->delController (QUuid (mStorageModel->data (index, StorageModel::R_ItemId).toString()));
     emit storageChanged();
-    if (mValidator) mValidator->revalidate();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -2416,5 +2449,8 @@
                                   QUuid (mStorageModel->data (index, StorageModel::R_ItemId).toString()));
     emit storageChanged();
-    if (mValidator) mValidator->revalidate();
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -2542,5 +2578,7 @@
     }
 
-    if (mValidator) mValidator->revalidate();
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
 
     mIsLoadingInProgress = false;
@@ -3077,6 +3115,8 @@
         mStorageModel->sort();
         emit storageChanged();
-        if (mValidator)
-            mValidator->revalidate();
+
+        /* Revalidate if possible: */
+        if (m_pValidator)
+            m_pValidator->revalidate();
     }
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h	(revision 47559)
@@ -673,5 +673,10 @@
     bool changed() const { return m_cache.wasChanged(); }
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate (QString &aWarning, QString &aTitle);
 
@@ -756,5 +761,10 @@
     void polishPage();
 
-    QIWidgetValidator *mValidator;
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     QString m_strMachineId;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 47559)
@@ -59,8 +59,26 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
 void UIMachineSettingsSystem::setOHCIEnabled(bool fEnabled)
 {
+    /* Make sure OHCI status has changed: */
+    if (m_fOHCIEnabled == fEnabled)
+        return;
+
+    /* Update OHCI status value: */
     m_fOHCIEnabled = fEnabled;
-}
+
+    /* Revalidate if possible: */
+    if (m_pValidator)
+        m_pValidator->revalidate();
+}
+
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
+void UIMachineSettingsSystem::setOHCIEnabled(bool fEnabled)
+{
+    m_fOHCIEnabled = fEnabled;
+}
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
 /* Load data to cache from corresponding external object(s),
@@ -279,5 +297,9 @@
 }
 
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsSystem::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 void UIMachineSettingsSystem::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 {
     /* Configure validation: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.h	(revision 47559)
@@ -152,6 +152,10 @@
     void saveFromCacheTo(QVariant &data);
 
-    /* Helpers: Validation stuff: */
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarning, QString &strTitle);
 
@@ -201,5 +205,9 @@
 
     /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
 
     /* Variable: Boot-table stuff: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	(revision 47559)
@@ -140,5 +140,5 @@
 UIMachineSettingsUSB::UIMachineSettingsUSB(UISettingsPageType type)
     : UISettingsPage(type)
-    , mValidator(0)
+    , m_pValidator(0)
     , m_pToolBar(0)
     , mNewAction(0), mAddAction(0), mEdtAction(0), mDelAction(0)
@@ -387,6 +387,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -564,9 +564,14 @@
 }
 
-void UIMachineSettingsUSB::setValidator (QIWidgetValidator *aVal)
-{
-    mValidator = aVal;
-    connect (mGbUSB, SIGNAL (stateChanged (int)), mValidator, SLOT (revalidate()));
-    connect(mCbUSB2, SIGNAL(stateChanged(int)), mValidator, SLOT(revalidate()));
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+void UIMachineSettingsUSB::setValidator(UIPageValidator *pValidator)
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+void UIMachineSettingsUSB::setValidator(QIWidgetValidator *pValidator)
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+{
+    /* Configure validation: */
+    m_pValidator = pValidator;
+    connect(mGbUSB, SIGNAL(stateChanged(int)), m_pValidator, SLOT(revalidate()));
+    connect(mCbUSB2, SIGNAL(stateChanged(int)), m_pValidator, SLOT(revalidate()));
 }
 
@@ -712,6 +717,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -760,6 +765,6 @@
 
     /* Revalidate if possible: */
-    if (mValidator)
-        mValidator->revalidate();
+    if (m_pValidator)
+        m_pValidator->revalidate();
 }
 
@@ -860,8 +865,13 @@
     if (!mTwFilters->topLevelItemCount())
     {
-        if (mValidator)
-        {
-            mValidator->rescan();
-            mValidator->revalidate();
+        /* Revalidate if possible: */
+        if (m_pValidator)
+        {
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+            m_pValidator->revalidate();
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+            m_pValidator->rescan();
+            m_pValidator->revalidate();
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
         }
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h	(revision 47558)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h	(revision 47559)
@@ -142,5 +142,10 @@
     bool changed() const { return m_cache.wasChanged(); }
 
-    void setValidator (QIWidgetValidator *aVal);
+    /* API: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    void setValidator(UIPageValidator *pValidator);
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    void setValidator(QIWidgetValidator *pValidator);
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
     bool revalidate(QString &strWarningText, QString &strTitle);
 
@@ -179,4 +184,11 @@
     void polishPage();
 
+    /* Variable: Validation stuff: */
+#ifdef VBOX_WITH_NEW_SETTINGS_VALIDATOR
+    UIPageValidator *m_pValidator;
+#else /* VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+    QIWidgetValidator *m_pValidator;
+#endif /* !VBOX_WITH_NEW_SETTINGS_VALIDATOR */
+
     /* Global data source: */
     CSystemProperties m_properties;
@@ -188,5 +200,4 @@
 
     /* Other variables: */
-    QIWidgetValidator *mValidator;
     UIToolBar *m_pToolBar;
     QAction *mNewAction;
