Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UIAdvancedSettingsDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UIAdvancedSettingsDialog.cpp	(revision 100989)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UIAdvancedSettingsDialog.cpp	(revision 100990)
@@ -30,4 +30,5 @@
 #include <QGridLayout>
 #include <QLabel>
+#include <QPainter>
 #include <QProgressBar>
 #include <QPushButton>
@@ -35,4 +36,5 @@
 #include <QScrollBar>
 #include <QStackedWidget>
+#include <QStyle>
 #include <QVariant>
 
@@ -82,4 +84,42 @@
 };
 
+/** QWidget sub-class,
+  * used as settings group-box. */
+class UISettingsGroupBox : public QWidget
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs details element passing @a pParent to the base-class. */
+    UISettingsGroupBox(QWidget *pParent = 0);
+
+    /** Defines @a strName. */
+    void setName(const QString &strName);
+
+    /** Adds a @a pWidget into group-box. */
+    void addWidget(QWidget *pWidget);
+
+protected:
+
+    /** Handles paint @a pEvent. */
+    virtual void paintEvent(QPaintEvent *pEvent) RT_OVERRIDE;
+
+private:
+
+    /** Prepares all. */
+    void prepare();
+
+    /** Holds the element name.*/
+    QString  m_strName;
+
+    /** Holds the name label instance. */
+    QLabel  *m_pLabelName;
+    /** Holds the contents widget instance. */
+    QWidget *m_pWidget;
+    /** Holds the contents layout instance. */
+    QLayout *m_pLayout;
+};
+
 
 /*********************************************************************************************************************************
@@ -104,4 +144,142 @@
                                 (int)(iMinWidth / 1.6));
     return QSize(iMinWidth, iMinHeight);
+}
+
+
+/*********************************************************************************************************************************
+*   Class UISettingsGroupBox implementation.                                                                                     *
+*********************************************************************************************************************************/
+
+UISettingsGroupBox::UISettingsGroupBox(QWidget *pParent /* = 0 */)
+    : QWidget(pParent)
+    , m_pLabelName(0)
+    , m_pWidget(0)
+    , m_pLayout(0)
+{
+    prepare();
+}
+
+void UISettingsGroupBox::setName(const QString &strName)
+{
+    if (m_strName == strName)
+        return;
+
+    m_strName = strName;
+    if (m_pLabelName)
+        m_pLabelName->setText(m_strName);
+}
+
+void UISettingsGroupBox::addWidget(QWidget *pWidget)
+{
+    m_pLayout->addWidget(pWidget);
+}
+
+void UISettingsGroupBox::paintEvent(QPaintEvent *pPaintEvent)
+{
+    /* Prepare painter: */
+    QPainter painter(this);
+    /* Avoid painting more than necessary: */
+    painter.setClipRect(pPaintEvent->rect());
+
+    /* Prepare palette colors: */
+    const QPalette pal = QApplication::palette();
+    QColor color0 = pal.color(QPalette::Window);
+    QColor color1 = pal.color(QPalette::Window).lighter(110);
+    color1.setAlpha(0);
+    QColor color2 = pal.color(QPalette::Window).darker(200);
+
+    /* Acquire contents rect: */
+    QRect cRect = m_pWidget->geometry();
+    const int iX = cRect.x();
+    const int iY = cRect.y();
+    const int iWidth = cRect.width();
+    const int iHeight = cRect.height();
+
+    /* Invent pixel metric: */
+    const int iMetric = QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
+
+    /* Top-left corner: */
+    QRadialGradient grad1(QPointF(iX + iMetric, iY + iMetric), iMetric);
+    {
+        grad1.setColorAt(0, color2);
+        grad1.setColorAt(1, color1);
+    }
+    /* Top-right corner: */
+    QRadialGradient grad2(QPointF(iX + iWidth - iMetric, iY + iMetric), iMetric);
+    {
+        grad2.setColorAt(0, color2);
+        grad2.setColorAt(1, color1);
+    }
+    /* Bottom-left corner: */
+    QRadialGradient grad3(QPointF(iX + iMetric, iY + iHeight - iMetric), iMetric);
+    {
+        grad3.setColorAt(0, color2);
+        grad3.setColorAt(1, color1);
+    }
+    /* Botom-right corner: */
+    QRadialGradient grad4(QPointF(iX + iWidth - iMetric, iY + iHeight - iMetric), iMetric);
+    {
+        grad4.setColorAt(0, color2);
+        grad4.setColorAt(1, color1);
+    }
+
+    /* Top line: */
+    QLinearGradient grad5(QPointF(iX + iMetric, iY), QPointF(iX + iMetric, iY + iMetric));
+    {
+        grad5.setColorAt(0, color1);
+        grad5.setColorAt(1, color2);
+    }
+    /* Bottom line: */
+    QLinearGradient grad6(QPointF(iX + iMetric, iY + iHeight), QPointF(iX + iMetric, iY + iHeight - iMetric));
+    {
+        grad6.setColorAt(0, color1);
+        grad6.setColorAt(1, color2);
+    }
+    /* Left line: */
+    QLinearGradient grad7(QPointF(iX, iY + iHeight - iMetric), QPointF(iX + iMetric, iY + iHeight - iMetric));
+    {
+        grad7.setColorAt(0, color1);
+        grad7.setColorAt(1, color2);
+    }
+    /* Right line: */
+    QLinearGradient grad8(QPointF(iX + iWidth, iY + iHeight - iMetric), QPointF(iX + iWidth - iMetric, iY + iHeight - iMetric));
+    {
+        grad8.setColorAt(0, color1);
+        grad8.setColorAt(1, color2);
+    }
+
+    /* Paint shape/shadow: */
+    painter.fillRect(QRect(iX + iMetric,          iY + iMetric,           iWidth - iMetric * 2, iHeight - iMetric * 2), color0);
+    painter.fillRect(QRect(iX,                    iY,                     iMetric,              iMetric),               grad1);
+    painter.fillRect(QRect(iX + iWidth - iMetric, iY,                     iMetric,              iMetric),               grad2);
+    painter.fillRect(QRect(iX,                    iY + iHeight - iMetric, iMetric,              iMetric),               grad3);
+    painter.fillRect(QRect(iX + iWidth - iMetric, iY + iHeight - iMetric, iMetric,              iMetric),               grad4);
+    painter.fillRect(QRect(iX + iMetric,          iY,                     iWidth - iMetric * 2, iMetric),               grad5);
+    painter.fillRect(QRect(iX + iMetric,          iY + iHeight - iMetric, iWidth - iMetric * 2, iMetric),               grad6);
+    painter.fillRect(QRect(iX,                    iY + iMetric,           iMetric,              iHeight - iMetric * 2), grad7);
+    painter.fillRect(QRect(iX + iWidth - iMetric, iY + iMetric,           iMetric,              iHeight - iMetric * 2), grad8);
+}
+
+void UISettingsGroupBox::prepare()
+{
+    /* Create main layout: */
+    QVBoxLayout *pLayoutMain = new QVBoxLayout(this);
+    if (pLayoutMain)
+    {
+        pLayoutMain->setContentsMargins(0, 0, 0, 0);
+
+        /* Create name label: */
+        m_pLabelName = new QLabel(this);
+        if (m_pLabelName)
+            pLayoutMain->addWidget(m_pLabelName);
+
+        /* Create contents widget: */
+        m_pWidget = new QWidget(this);
+        if (m_pWidget)
+        {
+            m_pLayout = new QVBoxLayout(m_pWidget);
+            pLayoutMain->addWidget(m_pWidget);
+        }
+    }
 }
 
@@ -214,4 +392,8 @@
     /* Translate warning-pane stuff: */
     m_pWarningPane->setWarningLabelText(tr("Invalid settings detected"));
+
+    /* Translate group-boxes: */
+    foreach (int cId, m_pages.keys())
+        m_pages.value(cId)->setName(m_pSelector->itemText(cId));
 
     /* Retranslate all validators: */
@@ -392,9 +574,14 @@
                                               cId, strLink, pSettingsPage, iParentId))
     {
-        /* Add page to scroll-viewport layout: */
-        m_pScrollViewport->layout()->addWidget(pPage);
-
-        /* Remember widget for referencing: */
-        m_pages[cId] = pPage;
+        /* Create group-box with page inside: */
+        UISettingsGroupBox *pGroupBox = new UISettingsGroupBox(m_pScrollViewport);
+        if (pGroupBox)
+        {
+            pGroupBox->addWidget(pPage);
+            m_pScrollViewport->layout()->addWidget(pGroupBox);
+
+            /* Remember group-box for referencing: */
+            m_pages[cId] = pGroupBox;
+        }
     }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UIAdvancedSettingsDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UIAdvancedSettingsDialog.h	(revision 100989)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UIAdvancedSettingsDialog.h	(revision 100990)
@@ -47,4 +47,5 @@
 class QVariant;
 class QIDialogButtonBox;
+class UISettingsGroupBox;
 class UISettingsPage;
 class UISettingsPageValidator;
@@ -229,5 +230,5 @@
 
     /** Holds the map of settings pages. */
-    QMap<int, QWidget*>  m_pages;
+    QMap<int, UISettingsGroupBox*>  m_pages;
 
     /** Stores the help tag per page. */
