Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp	(revision 77826)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp	(revision 77827)
@@ -222,5 +222,4 @@
     , m_pParent(pParent)
     , m_pNode(pNode)
-    , m_iLevel(-1)
     , m_fHovered(false)
     , m_pHoveringMachine(0)
@@ -394,26 +393,4 @@
 {
     return node()->position();
-}
-
-int UIChooserItem::level() const
-{
-    /* Check whether it is specified manually: */
-    if (m_iLevel != -1)
-        return m_iLevel;
-
-    /* Otherwise calculate ourself: */
-    int iLevel = 0;
-    UIChooserItem *pParentItem = parentItem();
-    while (pParentItem && !pParentItem->isRoot())
-    {
-        pParentItem = pParentItem->parentItem();
-        ++iLevel;
-    }
-    return iLevel;
-}
-
-void UIChooserItem::setLevel(int iLevel)
-{
-    m_iLevel = iLevel;
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h	(revision 77826)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h	(revision 77827)
@@ -136,9 +136,4 @@
         /** Returns item position. */
         int position() const;
-
-        /** Returns a level of item. */
-        int level() const;
-        /** Defines a @a iLevel of item. */
-        void setLevel(int iLevel);
 
         /** Returns whether item is hovered. */
@@ -321,7 +316,4 @@
         /** Holds the node this item is built for. */
         UIChooserNode *m_pNode;
-
-        /** Holds the item level according to root. */
-        int  m_iLevel;
 
         /** Holds whether item is hovered. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 77826)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 77827)
@@ -639,5 +639,5 @@
             int iToggleButtonHeight = m_toggleButtonSize.height();
             /* Layout toggle-button: */
-            int iToggleButtonX = iMarginHL + iParentIndent * level();;
+            int iToggleButtonX = iMarginHL;
             int iToggleButtonY = iToggleButtonHeight == iFullHeaderHeight ? iMarginV :
                                  iMarginV + (iFullHeaderHeight - iToggleButtonHeight) / 2;
@@ -668,10 +668,10 @@
         itemSize.setHeight(itemSize.height() - iPreviousVerticalIndent);
         /* Adjust favorite children container: */
-        m_pContainerFavorite->resize(itemSize.width(), m_pContainerFavorite->minimumSizeHint().height());
-        m_pContainerFavorite->setPos(0, iPreviousVerticalIndent);
+        m_pContainerFavorite->resize(itemSize.width() - iParentIndent, m_pContainerFavorite->minimumSizeHint().height());
+        m_pContainerFavorite->setPos(iParentIndent, iPreviousVerticalIndent);
         iPreviousVerticalIndent += m_pContainerFavorite->minimumSizeHint().height();
         /* Adjust other children scroll-area: */
-        m_pScrollArea->resize(itemSize.width(), itemSize.height() - m_pContainerFavorite->minimumSizeHint().height());
-        m_pScrollArea->setPos(0, iPreviousVerticalIndent);
+        m_pScrollArea->resize(itemSize.width() - iParentIndent, itemSize.height() - m_pContainerFavorite->minimumSizeHint().height());
+        m_pScrollArea->setPos(iParentIndent, iPreviousVerticalIndent);
     }
 
@@ -1236,5 +1236,5 @@
         case GroupItemData_HeaderSpacing:   return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 2;
         case GroupItemData_ChildrenSpacing: return 1;
-        case GroupItemData_ParentIndent:    return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize);
+        case GroupItemData_ParentIndent:    return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 2;
 
         /* Default: */
@@ -1377,5 +1377,4 @@
         const int iMarginHL = data(GroupItemData_MarginHL).toInt();
         const int iMarginHR = data(GroupItemData_MarginHR).toInt();
-        const int iParentIndent = data(GroupItemData_ParentIndent).toInt();
 
         /* Basically we have to take header width into account: */
@@ -1391,5 +1390,5 @@
 
         /* And 2 margins at last - left and right: */
-        iProposedWidth += iMarginHL + iMarginHR + iParentIndent * level();
+        iProposedWidth += iMarginHL + iMarginHR;
     }
 
@@ -1650,4 +1649,14 @@
         pPainter->fillRect(tRect, tGradient);
 
+        /* Calculate bottom rectangle: */
+        if (node()->toGroupNode()->isOpened())
+        {
+            QRect bRect = rect;
+            bRect.setTop(bRect.top() + iFullHeaderHeight);
+
+            /* Fill top rectangle: */
+            pPainter->fillRect(bRect, headerColor.darker(headerDarkness()));
+        }
+
         /* Paint drag token UP? */
         if (dragTokenPlace() != UIChooserItemDragToken_Off)
@@ -1688,4 +1697,5 @@
     /* Prepare variables: */
     const int iMarginV = data(GroupItemData_MarginV).toInt();
+    const int iParentIndent = data(GroupItemData_ParentIndent).toInt();
     const int iFullHeaderHeight = 2 * iMarginV + m_minimumHeaderSize.height();
 
@@ -1707,6 +1717,9 @@
 
     /* Draw borders: */
-    pPainter->drawLine(topRect.bottomLeft(), topRect.bottomRight() + QPoint(1, 0));
-    pPainter->drawLine(topRect.topLeft(),    topRect.bottomLeft());
+    if (node()->hasNodes() && node()->toGroupNode()->isOpened())
+        pPainter->drawLine(topRect.bottomLeft() + QPoint(iParentIndent, 0), topRect.bottomRight() + QPoint(1, 0));
+    else
+        pPainter->drawLine(topRect.bottomLeft(), topRect.bottomRight() + QPoint(1, 0));
+    pPainter->drawLine(rectangle.topLeft(), rectangle.bottomLeft());
 
     /* Restore painter: */
@@ -1725,5 +1738,4 @@
     const int iMarginV = data(GroupItemData_MarginV).toInt();
     const int iHeaderSpacing = data(GroupItemData_HeaderSpacing).toInt();
-    const int iParentIndent = data(GroupItemData_ParentIndent).toInt();
     const int iFullHeaderHeight = m_minimumHeaderSize.height();
 
@@ -1734,5 +1746,5 @@
 
     /* Paint name: */
-    int iNameX = iMarginHL + iParentIndent * level();
+    int iNameX = iMarginHL;
     if (isRoot())
         iNameX += m_exitButtonSize.width();
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 77826)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 77827)
@@ -285,5 +285,4 @@
     const int iMajorSpacing = data(MachineItemData_MajorSpacing).toInt();
     const int iMinorSpacing = data(MachineItemData_MinorSpacing).toInt();
-    const int iParentIndent = data(MachineItemData_ParentIndent).toInt();
     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
 
@@ -292,5 +291,5 @@
 
     /* Two margins: */
-    iProposedWidth += iMarginHL + iMarginHR + iParentIndent * level();
+    iProposedWidth += iMarginHL + iMarginHR;
     /* And machine-item content to take into account: */
     int iTopLineWidth = m_iMinimumNameWidth;
@@ -573,5 +572,4 @@
         case MachineItemData_MinorSpacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
         case MachineItemData_TextSpacing:  return 0;
-        case MachineItemData_ParentIndent: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize);
         case MachineItemData_ButtonMargin: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
 
@@ -667,10 +665,8 @@
     const int iMarginHR = data(MachineItemData_MarginHR).toInt();
     const int iMajorSpacing = data(MachineItemData_MajorSpacing).toInt();
-    const int iParentIndent = data(MachineItemData_ParentIndent).toInt();
     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
 
     /* Calculate new maximum width for the first row: */
     int iFirstRowMaximumWidth = (int)geometry().width();
-    iFirstRowMaximumWidth -= iParentIndent * level();
     iFirstRowMaximumWidth -= iMarginHL; /* left margin */
     iFirstRowMaximumWidth -= m_pixmapSize.width(); /* left pixmap width */
@@ -1031,5 +1027,4 @@
     const int iMinorSpacing = data(MachineItemData_MinorSpacing).toInt();
     const int iMachineItemTextSpacing = data(MachineItemData_TextSpacing).toInt();
-    const int iParentIndent = data(MachineItemData_ParentIndent).toInt();
     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
 
@@ -1048,5 +1043,5 @@
 
     /* Calculate indents: */
-    int iLeftColumnIndent = iMarginHL + iParentIndent * level();
+    int iLeftColumnIndent = iMarginHL;
 
     /* Paint left column: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h	(revision 77826)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h	(revision 77827)
@@ -185,5 +185,4 @@
         MachineItemData_MinorSpacing,
         MachineItemData_TextSpacing,
-        MachineItemData_ParentIndent,
         MachineItemData_ButtonMargin,
         /* Pixmaps: */
