Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 73999)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 74000)
@@ -359,4 +359,7 @@
     paintBackground(pPainter, pOptions->rect);
 
+    /* Paint frame: */
+    paintFrameRectangle(pPainter, pOptions->rect);
+
     /* Paint header: */
     paintHeader(pPainter, pOptions->rect);
@@ -1284,5 +1287,5 @@
         /* Layout hints: */
         case GroupItemData_HorizonalMargin: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
-        case GroupItemData_VerticalMargin:  return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
+        case GroupItemData_VerticalMargin:  return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 2;
         case GroupItemData_Spacing:         return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 2;
 
@@ -1641,10 +1644,6 @@
     QColor headerColor = pal.color(QPalette::Active,
                                    model()->currentItems().contains(this) ?
-                                   QPalette::Highlight : QPalette::Button);
-    QColor strokeColor = pal.color(QPalette::Active, QPalette::Mid);
+                                   QPalette::Highlight : QPalette::Midlight);
     QColor bodyColor = pal.color(QPalette::Active, QPalette::Base);
-
-    /* Invent pixel metric: */
-    const int iMetric = QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 2;
 
     /* Root-item: */
@@ -1666,15 +1665,4 @@
             QRect backgroundRect = QRect(0, 0, rect.width(), iFullHeaderHeight);
 
-            /* Add clipping: */
-            QPainterPath path;
-            path.moveTo(0, 0);
-            path.lineTo(path.currentPosition().x(), iFullHeaderHeight - iMetric);
-            path.arcTo(QRectF(path.currentPosition(), QSizeF(2 * iMetric, 2 * iMetric)).translated(0, -iMetric), 180, 90);
-            path.lineTo(rect.width() - iMetric, path.currentPosition().y());
-            path.arcTo(QRectF(path.currentPosition(), QSizeF(2 * iMetric, 2 * iMetric)).translated(-iMetric, -2 * iMetric), 270, 90);
-            path.lineTo(path.currentPosition().x(), 0);
-            path.closeSubpath();
-            pPainter->setClipPath(path);
-
             /* Fill background: */
             QLinearGradient headerGradient(backgroundRect.bottomLeft(), backgroundRect.topLeft());
@@ -1682,8 +1670,4 @@
             headerGradient.setColorAt(0, headerColor.darker(animationDarkness()));
             pPainter->fillRect(backgroundRect, headerGradient);
-
-            /* Stroke path: */
-            pPainter->setClipping(false);
-            pPainter->strokePath(path, strokeColor);
         }
     }
@@ -1695,18 +1679,4 @@
         int iHeaderHeight = m_minimumHeaderSize.height();
         int iFullHeaderHeight = 2 * iMargin + iHeaderHeight;
-        int iFullHeight = rect.height();
-
-        /* Add clipping: */
-        QPainterPath path;
-        path.moveTo(iMetric, 0);
-        path.arcTo(QRectF(path.currentPosition(), QSizeF(2 * iMetric, 2 * iMetric)).translated(-iMetric, 0), 90, 90);
-        path.lineTo(path.currentPosition().x(), iFullHeight - iMetric);
-        path.arcTo(QRectF(path.currentPosition(), QSizeF(2 * iMetric, 2 * iMetric)).translated(0, -iMetric), 180, 90);
-        path.lineTo(rect.width() - iMetric, path.currentPosition().y());
-        path.arcTo(QRectF(path.currentPosition(), QSizeF(2 * iMetric, 2 * iMetric)).translated(-iMetric, -2 * iMetric), 270, 90);
-        path.lineTo(path.currentPosition().x(), iMetric);
-        path.arcTo(QRectF(path.currentPosition(), QSizeF(2 * iMetric, 2 * iMetric)).translated(-2 * iMetric, -iMetric), 0, 90);
-        path.closeSubpath();
-        pPainter->setClipPath(path);
 
         /* Calculate top rectangle: */
@@ -1719,17 +1689,4 @@
         /* Fill top rectangle: */
         pPainter->fillRect(tRect, tGradient);
-
-        if (rect.height() > tRect.height())
-        {
-            /* Calculate middle rectangle: */
-            QRect midRect = QRect(tRect.bottomLeft(), rect.bottomRight());
-            /* Paint all the stuff: */
-            pPainter->fillRect(midRect, bodyColor);
-        }
-
-         /* Stroke path: */
-        pPainter->setClipping(false);
-        pPainter->strokePath(path, strokeColor);
-        pPainter->setClipPath(path);
 
         /* Paint drag token UP? */
@@ -1757,4 +1714,23 @@
 
     /* Restore painter: */
+    pPainter->restore();
+}
+
+void UIChooserItemGroup::paintFrameRectangle(QPainter *pPainter, const QRect &rect)
+{
+    /* Not for roots: */
+    if (isRoot())
+        return;
+
+    /* Simple frame: */
+    pPainter->save();
+    QPalette pal = palette();
+    QColor strokeColor;
+
+    strokeColor = pal.color(QPalette::Active, QPalette::Mid).lighter(155);
+
+    pPainter->setPen(strokeColor);
+    pPainter->drawLine(rect.topLeft(), rect.topRight() + QPoint(1, 0));
+    pPainter->drawLine(rect.bottomLeft() + QPoint(0, 1), rect.bottomRight() + QPoint(1, 1));
     pPainter->restore();
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h	(revision 73999)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h	(revision 74000)
@@ -308,4 +308,6 @@
         /** Paints background using specified @a pPainter and certain @a rect. */
         void paintBackground(QPainter *pPainter, const QRect &rect);
+        /** Paints frame rectangle using specified @a pPainter and certain @a rect. */
+        void paintFrameRectangle(QPainter *pPainter, const QRect &rect);
         /** Paints header using specified @a pPainter and certain @a rect. */
         void paintHeader(QPainter *pPainter, const QRect &rect);
