Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp	(revision 74109)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp	(revision 74110)
@@ -129,106 +129,4 @@
 }
 
-void UIDetailsGroup::sltBuildStep(QString strStepId, int iStepNumber)
-{
-    /* Cleanup build-step: */
-    delete m_pBuildStep;
-    m_pBuildStep = 0;
-
-    /* Is step id valid? */
-    if (strStepId != m_strGroupId)
-        return;
-
-    /* Step number feats the bounds: */
-    if (iStepNumber >= 0 && iStepNumber < m_machineItems.size())
-    {
-        /* Should we create a new set for this step? */
-        UIDetailsSet *pSet = 0;
-        if (iStepNumber > m_items.size() - 1)
-            pSet = new UIDetailsSet(this);
-        /* Or use existing? */
-        else
-            pSet = m_items.at(iStepNumber)->toSet();
-
-        /* Create next build-step: */
-        m_pBuildStep = new UIPrepareStep(this, pSet, strStepId, iStepNumber + 1);
-
-        /* Build set: */
-        pSet->buildSet(m_machineItems[iStepNumber], m_machineItems.size() == 1, model()->settings());
-    }
-    else
-    {
-        /* Notify listener about build done: */
-        emit sigBuildDone();
-    }
-}
-
-void UIDetailsGroup::paint(QPainter *pPainter, const QStyleOptionGraphicsItem *pOptions, QWidget *)
-{
-    /* Paint background: */
-    paintBackground(pPainter, pOptions);
-}
-
-void UIDetailsGroup::addItem(UIDetailsItem *pItem)
-{
-    switch (pItem->type())
-    {
-        case UIDetailsItemType_Set: m_items.append(pItem); break;
-        default: AssertMsgFailed(("Invalid item type!")); break;
-    }
-}
-
-void UIDetailsGroup::removeItem(UIDetailsItem *pItem)
-{
-    switch (pItem->type())
-    {
-        case UIDetailsItemType_Set: m_items.removeAt(m_items.indexOf(pItem)); break;
-        default: AssertMsgFailed(("Invalid item type!")); break;
-    }
-}
-
-bool UIDetailsGroup::hasItems(UIDetailsItemType enmType /* = UIDetailsItemType_Set */) const
-{
-    switch (enmType)
-    {
-        case UIDetailsItemType_Set: return !m_items.isEmpty();
-        case UIDetailsItemType_Any: return hasItems(UIDetailsItemType_Set);
-        default: AssertMsgFailed(("Invalid item type!")); break;
-    }
-    return false;
-}
-
-void UIDetailsGroup::clearItems(UIDetailsItemType enmType /* = UIDetailsItemType_Set */)
-{
-    switch (enmType)
-    {
-        case UIDetailsItemType_Set: while (!m_items.isEmpty()) { delete m_items.last(); } break;
-        case UIDetailsItemType_Any: clearItems(UIDetailsItemType_Set); break;
-        default: AssertMsgFailed(("Invalid item type!")); break;
-    }
-}
-
-void UIDetailsGroup::updateGeometry()
-{
-    /* Call to base class: */
-    UIDetailsItem::updateGeometry();
-
-    /* Group-item should notify details-view if minimum-width-hint was changed: */
-    int iMinimumWidthHint = minimumWidthHint();
-    if (m_iPreviousMinimumWidthHint != iMinimumWidthHint)
-    {
-        /* Save new minimum-width-hint, notify listener: */
-        m_iPreviousMinimumWidthHint = iMinimumWidthHint;
-        emit sigMinimumWidthHintChanged(m_iPreviousMinimumWidthHint);
-    }
-    /* Group-item should notify details-view if minimum-height-hint was changed: */
-    int iMinimumHeightHint = minimumHeightHint();
-    if (m_iPreviousMinimumHeightHint != iMinimumHeightHint)
-    {
-        /* Save new minimum-height-hint, notify listener: */
-        m_iPreviousMinimumHeightHint = iMinimumHeightHint;
-        emit sigMinimumHeightHintChanged(m_iPreviousMinimumHeightHint);
-    }
-}
-
 int UIDetailsGroup::minimumWidthHint() const
 {
@@ -291,4 +189,106 @@
 }
 
+void UIDetailsGroup::sltBuildStep(QString strStepId, int iStepNumber)
+{
+    /* Cleanup build-step: */
+    delete m_pBuildStep;
+    m_pBuildStep = 0;
+
+    /* Is step id valid? */
+    if (strStepId != m_strGroupId)
+        return;
+
+    /* Step number feats the bounds: */
+    if (iStepNumber >= 0 && iStepNumber < m_machineItems.size())
+    {
+        /* Should we create a new set for this step? */
+        UIDetailsSet *pSet = 0;
+        if (iStepNumber > m_items.size() - 1)
+            pSet = new UIDetailsSet(this);
+        /* Or use existing? */
+        else
+            pSet = m_items.at(iStepNumber)->toSet();
+
+        /* Create next build-step: */
+        m_pBuildStep = new UIPrepareStep(this, pSet, strStepId, iStepNumber + 1);
+
+        /* Build set: */
+        pSet->buildSet(m_machineItems[iStepNumber], m_machineItems.size() == 1, model()->settings());
+    }
+    else
+    {
+        /* Notify listener about build done: */
+        emit sigBuildDone();
+    }
+}
+
+void UIDetailsGroup::paint(QPainter *pPainter, const QStyleOptionGraphicsItem *pOptions, QWidget *)
+{
+    /* Paint background: */
+    paintBackground(pPainter, pOptions);
+}
+
+void UIDetailsGroup::addItem(UIDetailsItem *pItem)
+{
+    switch (pItem->type())
+    {
+        case UIDetailsItemType_Set: m_items.append(pItem); break;
+        default: AssertMsgFailed(("Invalid item type!")); break;
+    }
+}
+
+void UIDetailsGroup::removeItem(UIDetailsItem *pItem)
+{
+    switch (pItem->type())
+    {
+        case UIDetailsItemType_Set: m_items.removeAt(m_items.indexOf(pItem)); break;
+        default: AssertMsgFailed(("Invalid item type!")); break;
+    }
+}
+
+bool UIDetailsGroup::hasItems(UIDetailsItemType enmType /* = UIDetailsItemType_Set */) const
+{
+    switch (enmType)
+    {
+        case UIDetailsItemType_Set: return !m_items.isEmpty();
+        case UIDetailsItemType_Any: return hasItems(UIDetailsItemType_Set);
+        default: AssertMsgFailed(("Invalid item type!")); break;
+    }
+    return false;
+}
+
+void UIDetailsGroup::clearItems(UIDetailsItemType enmType /* = UIDetailsItemType_Set */)
+{
+    switch (enmType)
+    {
+        case UIDetailsItemType_Set: while (!m_items.isEmpty()) { delete m_items.last(); } break;
+        case UIDetailsItemType_Any: clearItems(UIDetailsItemType_Set); break;
+        default: AssertMsgFailed(("Invalid item type!")); break;
+    }
+}
+
+void UIDetailsGroup::updateGeometry()
+{
+    /* Call to base class: */
+    UIDetailsItem::updateGeometry();
+
+    /* Group-item should notify details-view if minimum-width-hint was changed: */
+    int iMinimumWidthHint = minimumWidthHint();
+    if (m_iPreviousMinimumWidthHint != iMinimumWidthHint)
+    {
+        /* Save new minimum-width-hint, notify listener: */
+        m_iPreviousMinimumWidthHint = iMinimumWidthHint;
+        emit sigMinimumWidthHintChanged(m_iPreviousMinimumWidthHint);
+    }
+    /* Group-item should notify details-view if minimum-height-hint was changed: */
+    int iMinimumHeightHint = minimumHeightHint();
+    if (m_iPreviousMinimumHeightHint != iMinimumHeightHint)
+    {
+        /* Save new minimum-height-hint, notify listener: */
+        m_iPreviousMinimumHeightHint = iMinimumHeightHint;
+        emit sigMinimumHeightHintChanged(m_iPreviousMinimumHeightHint);
+    }
+}
+
 void UIDetailsGroup::prepareConnections()
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h	(revision 74109)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h	(revision 74110)
@@ -71,4 +71,9 @@
         /** Updates layout. */
         virtual void updateLayout() /* override */;
+
+        /** Returns minimum width-hint. */
+        virtual int minimumWidthHint() const /* override */;
+        /** Returns minimum height-hint. */
+        virtual int minimumHeightHint() const /* override */;
     /** @} */
 
@@ -117,9 +122,4 @@
         /** Updates geometry. */
         virtual void updateGeometry() /* override */;
-
-        /** Returns minimum width-hint. */
-        virtual int minimumWidthHint() const /* override */;
-        /** Returns minimum height-hint. */
-        virtual int minimumHeightHint() const /* override */;
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.cpp	(revision 74109)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.cpp	(revision 74110)
@@ -96,13 +96,12 @@
 {
     /* Prepare variables: */
-    int iSceneMargin = data(DetailsModelData_Margin).toInt();
-    QSize viewportSize = paintDevice()->viewport()->size();
-    int iViewportWidth = viewportSize.width() - 2 * iSceneMargin;
-    int iViewportHeight = viewportSize.height() - 2 * iSceneMargin;
+    const int iSceneMargin = data(DetailsModelData_Margin).toInt();
+    const QSize viewportSize = paintDevice()->viewport()->size();
+    const int iViewportWidth = viewportSize.width() - 2 * iSceneMargin;
 
     /* Move root: */
     m_pRoot->setPos(iSceneMargin, iSceneMargin);
     /* Resize root: */
-    m_pRoot->resize(iViewportWidth, iViewportHeight);
+    m_pRoot->resize(iViewportWidth, m_pRoot->minimumHeightHint());
     /* Layout root content: */
     m_pRoot->updateLayout();
