Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp	(revision 44061)
@@ -91,6 +91,8 @@
 {
     /* Setup details-model connections: */
-    connect(m_pDetailsModel, SIGNAL(sigRootMinimumSizeHintChanged(const QSizeF&)),
-            m_pDetailsView, SLOT(sltHandleRootItemMinimumSizeHintChanged(const QSizeF&)));
+    connect(m_pDetailsModel, SIGNAL(sigRootItemMinimumWidthHintChanged(int)),
+            m_pDetailsView, SLOT(sltMinimumWidthHintChanged(int)));
+    connect(m_pDetailsModel, SIGNAL(sigRootItemMinimumHeightHintChanged(int)),
+            m_pDetailsView, SLOT(sltMinimumHeightHintChanged(int)));
     connect(m_pDetailsModel, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)),
             this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)));
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp	(revision 44061)
@@ -18,4 +18,7 @@
  */
 
+/* Qt include: */
+#include <QGraphicsScene>
+
 /* GUI includes: */
 #include "UIGDetailsGroup.h"
@@ -26,8 +29,15 @@
 #include "UIVMItem.h"
 
-UIGDetailsGroup::UIGDetailsGroup()
+UIGDetailsGroup::UIGDetailsGroup(QGraphicsScene *pParent)
     : UIGDetailsItem(0)
+    , m_iPreviousMinimumWidthHint(0)
+    , m_iPreviousMinimumHeightHint(0)
     , m_pBuildStep(0)
 {
+    /* Add group to the parent scene: */
+    pParent->addItem(this);
+
+    /* Prepare connections: */
+    prepareConnections();
 }
 
@@ -171,4 +181,13 @@
         default: AssertMsgFailed(("Invalid item type!")); break;
     }
+}
+
+void UIGDetailsGroup::prepareConnections()
+{
+    /* Prepare group-item connections: */
+    connect(this, SIGNAL(sigMinimumWidthHintChanged(int)),
+            model(), SIGNAL(sigRootItemMinimumWidthHintChanged(int)));
+    connect(this, SIGNAL(sigMinimumHeightHintChanged(int)),
+            model(), SIGNAL(sigRootItemMinimumHeightHintChanged(int)));
 }
 
@@ -195,4 +214,27 @@
 }
 
+void UIGDetailsGroup::updateGeometry()
+{
+    /* Call to base class: */
+    UIGDetailsItem::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 UIGDetailsGroup::minimumWidthHint() const
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h	(revision 44061)
@@ -25,4 +25,5 @@
 /* Forward declarations: */
 class UIVMItem;
+class QGraphicsScene;
 
 /* Details group
@@ -31,4 +32,10 @@
 {
     Q_OBJECT;
+
+signals:
+
+    /* Notifiers: Size-hint stuff: */
+    void sigMinimumWidthHintChanged(int iMinimumWidthHint);
+    void sigMinimumHeightHintChanged(int iMinimumHeightHint);
 
 public:
@@ -39,5 +46,5 @@
 
     /* Constructor/destructor: */
-    UIGDetailsGroup();
+    UIGDetailsGroup(QGraphicsScene *pParent);
     ~UIGDetailsGroup();
 
@@ -73,7 +80,9 @@
 
     /* Helpers: Prepare stuff: */
+    void prepareConnections();
     void loadSettings();
 
     /* Helpers: Layout stuff: */
+    void updateGeometry();
     int minimumWidthHint() const;
     int minimumHeightHint() const;
@@ -81,4 +90,6 @@
 
     /* Variables: */
+    int m_iPreviousMinimumWidthHint;
+    int m_iPreviousMinimumHeightHint;
     QList<UIGDetailsItem*> m_items;
     QList<UIVMItem*> m_machineItems;
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp	(revision 44061)
@@ -86,7 +86,4 @@
     /* Layout root content: */
     m_pRoot->updateLayout();
-
-    /* Notify view about root minimum-size-hint changed: */
-    emit sigRootMinimumSizeHintChanged(m_pRoot->minimumSizeHint());
 }
 
@@ -232,6 +229,5 @@
 void UIGDetailsModel::prepareRoot()
 {
-    m_pRoot = new UIGDetailsGroup;
-    scene()->addItem(m_pRoot);
+    m_pRoot = new UIGDetailsGroup(scene());
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h	(revision 44061)
@@ -49,6 +49,7 @@
 signals:
 
-    /* Notifier: Root-item stuff: */
-    void sigRootMinimumSizeHintChanged(const QSizeF &minimumSizeHint);
+    /* Notifiers: Root-item stuff: */
+    void sigRootItemMinimumWidthHintChanged(int iRootItemMinimumWidthHint);
+    void sigRootItemMinimumHeightHintChanged(int iRootItemMinimumHeightHint);
 
     /* Notifier: Link processing stuff: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.cpp	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.cpp	(revision 44061)
@@ -28,4 +28,6 @@
 UIGDetailsView::UIGDetailsView(QWidget *pParent)
     : QGraphicsView(pParent)
+    , m_iMinimumWidthHint(0)
+    , m_iMinimumHeightHint(0)
 {
     /* Prepare palette: */
@@ -44,13 +46,31 @@
 }
 
-void UIGDetailsView::sltHandleRootItemMinimumSizeHintChanged(const QSizeF &minimumSizeHint)
+void UIGDetailsView::sltMinimumWidthHintChanged(int iMinimumWidthHint)
 {
+    /* Is there something changed? */
+    if (m_iMinimumWidthHint == iMinimumWidthHint)
+        return;
+
+    /* Remember new value: */
+    m_iMinimumWidthHint = iMinimumWidthHint;
+
+    /* Set minimum view width according passed width-hint: */
+    setMinimumWidth(2 * frameWidth() + iMinimumWidthHint + verticalScrollBar()->sizeHint().width());
+
     /* Update scene-rect: */
-    updateSceneRect(minimumSizeHint);
+    updateSceneRect();
+}
 
-    /* Set minimum-width: */
-    setMinimumWidth(2 * frameWidth() +
-                    minimumSizeHint.width() +
-                    verticalScrollBar()->sizeHint().width());
+void UIGDetailsView::sltMinimumHeightHintChanged(int iMinimumHeightHint)
+{
+    /* Is there something changed? */
+    if (m_iMinimumHeightHint == iMinimumHeightHint)
+        return;
+
+    /* Remember new value: */
+    m_iMinimumHeightHint = iMinimumHeightHint;
+
+    /* Update scene-rect: */
+    updateSceneRect();
 }
 
@@ -71,11 +91,7 @@
 }
 
-void UIGDetailsView::updateSceneRect(const QSizeF &minimumSizeHint /* = QSizeF() */)
+void UIGDetailsView::updateSceneRect()
 {
-    QPointF topLeft = QPointF(0, 0);
-    QSizeF rectSize = viewport()->size();
-    if (!minimumSizeHint.isNull())
-        rectSize.setHeight(minimumSizeHint.height());
-    setSceneRect(QRectF(topLeft, rectSize));
+    setSceneRect(0, 0, m_iMinimumWidthHint, m_iMinimumHeightHint);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.h	(revision 44060)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.h	(revision 44061)
@@ -40,6 +40,7 @@
 private slots:
 
-    /* Handler: Root-item stuff: */
-    void sltHandleRootItemMinimumSizeHintChanged(const QSizeF &minimumSizeHint);
+    /* Handlers: Size-hint stuff: */
+    void sltMinimumWidthHintChanged(int iMinimumWidthHint);
+    void sltMinimumHeightHintChanged(int iMinimumHeightHint);
 
 private:
@@ -52,5 +53,9 @@
 
     /* Helper: Update stuff: */
-    void updateSceneRect(const QSizeF &minimumSizeHint = QSizeF());
+    void updateSceneRect();
+
+    /* Variables: */
+    int m_iMinimumWidthHint;
+    int m_iMinimumHeightHint;
 };
 
