Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp	(revision 74110)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp	(revision 74111)
@@ -105,7 +105,7 @@
 {
     /* Prepare variables: */
-    int iMargin = data(GroupData_Margin).toInt();
-    int iSpacing = data(GroupData_Spacing).toInt();
-    int iMaximumWidth = (int)geometry().width() - 2 * iMargin;
+    const int iMargin = data(GroupData_Margin).toInt();
+    const int iSpacing = data(GroupData_Spacing).toInt();
+    const int iMaximumWidth = geometry().size().toSize().width();
     int iVerticalIndent = iMargin;
 
@@ -118,8 +118,7 @@
                 continue;
         /* Move set: */
-        pItem->setPos(iMargin, iVerticalIndent);
+        pItem->setPos(0, iVerticalIndent);
         /* Resize set: */
-        int iWidth = iMaximumWidth;
-        pItem->resize(iWidth, pItem->minimumHeightHint());
+        pItem->resize(iMaximumWidth, pItem->minimumHeightHint());
         /* Layout set content: */
         pItem->updateLayout();
@@ -132,5 +131,4 @@
 {
     /* Prepare variables: */
-    int iMargin = data(GroupData_Margin).toInt();
     int iMinimumWidthHint = 0;
 
@@ -149,8 +147,4 @@
     }
 
-    /* Add two margins finally: */
-    if (fHasItems)
-        iMinimumWidthHint += 2 * iMargin;
-
     /* Return result: */
     return iMinimumWidthHint;
@@ -160,10 +154,10 @@
 {
     /* Prepare variables: */
-    int iMargin = data(GroupData_Margin).toInt();
-    int iSpacing = data(GroupData_Spacing).toInt();
+    const int iMargin = data(GroupData_Margin).toInt();
+    const int iSpacing = data(GroupData_Spacing).toInt();
     int iMinimumHeightHint = 0;
+    bool fHasItems = false;
 
     /* For each the set we have: */
-    bool fHasItems = false;
     foreach (UIDetailsItem *pItem, items())
     {
@@ -307,5 +301,5 @@
         /* Layout hints: */
         case GroupData_Margin: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 6;
-        case GroupData_Spacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 2;
+        case GroupData_Spacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 6;
         /* Default: */
         default: break;
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp	(revision 74110)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp	(revision 74111)
@@ -300,8 +300,8 @@
 {
     /* Prepare variables: */
-    int iMargin = data(SetData_Margin).toInt();
-    int iSpacing = data(SetData_Spacing).toInt();
-    int iMaximumWidth = geometry().size().toSize().width();
-    int iVerticalIndent = iMargin;
+    const int iMargin = data(SetData_Margin).toInt();
+    const int iSpacing = data(SetData_Spacing).toInt();
+    const int iMaximumWidth = geometry().size().toSize().width();
+    int iVerticalIndent = 0;
 
     /* Layout all the elements: */
@@ -329,7 +329,7 @@
             {
                 /* Move element: */
-                pElement->setPos(iMargin, iVerticalIndent);
+                pElement->setPos(0, iVerticalIndent);
                 /* Calculate required width: */
-                int iWidth = iMaximumWidth - 2 * iMargin;
+                int iWidth = iMaximumWidth;
                 if (pElement->elementType() == DetailsElementType_General ||
                     pElement->elementType() == DetailsElementType_System)
@@ -345,4 +345,14 @@
                 /* Acquire required height: */
                 int iHeight = pElement->minimumHeightHint();
+                if (pElement->elementType() == DetailsElementType_System)
+                    if (UIDetailsElement *pPreviewElement = element(DetailsElementType_Preview))
+                        if (pPreviewElement->isVisible())
+                        {
+                            int iSpareHeight = pPreviewElement->minimumHeightHint();
+                            if (UIDetailsElement *pGeneralElement = element(DetailsElementType_General))
+                                if (pGeneralElement->isVisible())
+                                    iSpareHeight -= (iSpacing + pGeneralElement->minimumHeightHint());
+                            iHeight = qMax(iHeight, iSpareHeight);
+                        }
                 /* If element height is wrong: */
                 if (pElement->geometry().height() != iHeight)
@@ -363,5 +373,5 @@
                 int iHeight = pElement->minimumHeightHint();
                 /* Move element: */
-                pElement->setPos(iMaximumWidth - iMargin - iWidth, iMargin);
+                pElement->setPos(iMaximumWidth - iWidth, iMargin);
                 /* Resize element: */
                 pElement->resize(iWidth, iHeight);
@@ -384,6 +394,5 @@
 
     /* Prepare variables: */
-    int iMargin = data(SetData_Margin).toInt();
-    int iSpacing = data(SetData_Spacing).toInt();
+    const int iSpacing = data(SetData_Spacing).toInt();
     int iMinimumWidthHint = 0;
 
@@ -428,7 +437,4 @@
     }
 
-    /* And two margins finally: */
-    iMinimumWidthHint += 2 * iMargin;
-
     /* Return result: */
     return iMinimumWidthHint;
@@ -546,5 +552,5 @@
         /* Layout hints: */
         case SetData_Margin: return 0;
-        case SetData_Spacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 5;
+        case SetData_Spacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 6;
         /* Default: */
         default: break;
