Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 42734)
@@ -1351,4 +1351,6 @@
     connect(m_pChooser, SIGNAL(sigSelectionChanged()), this, SLOT(sltCurrentVMItemChanged()), Qt::QueuedConnection);
     connect(m_pChooser, SIGNAL(sigSlidingStarted()), m_pDetails, SIGNAL(sigSlidingStarted()));
+    connect(m_pChooser, SIGNAL(sigToggleStarted()), m_pDetails, SIGNAL(sigToggleStarted()));
+    connect(m_pChooser, SIGNAL(sigToggleFinished()), m_pDetails, SIGNAL(sigToggleFinished()));
     connect(m_pChooser, SIGNAL(sigGroupSavingStarted()), this, SLOT(sltGroupSavingUpdate()));
     connect(m_pChooser, SIGNAL(sigGroupSavingFinished()), this, SLOT(sltGroupSavingUpdate()));
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp	(revision 42734)
@@ -118,4 +118,6 @@
     connect(m_pChooserModel, SIGNAL(sigSelectionChanged()), this, SIGNAL(sigSelectionChanged()));
     connect(m_pChooserModel, SIGNAL(sigSlidingStarted()), this, SIGNAL(sigSlidingStarted()));
+    connect(m_pChooserModel, SIGNAL(sigToggleStarted()), this, SIGNAL(sigToggleStarted()));
+    connect(m_pChooserModel, SIGNAL(sigToggleFinished()), this, SIGNAL(sigToggleFinished()));
     connect(m_pChooserModel, SIGNAL(sigGroupSavingStarted()), this, SIGNAL(sigGroupSavingStarted()));
     connect(m_pChooserModel, SIGNAL(sigGroupSavingFinished()), this, SIGNAL(sigGroupSavingFinished()));
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.h	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.h	(revision 42734)
@@ -46,4 +46,8 @@
     void sigSlidingStarted();
 
+    /* Notifiers: Toggle stuff: */
+    void sigToggleStarted();
+    void sigToggleFinished();
+
     /* Notifiers: Group saving stuff: */
     void sigGroupSavingStarted();
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.cpp	(revision 42734)
@@ -35,6 +35,7 @@
 #include "UIGChooserItemMachine.h"
 
-UIGChooserItem::UIGChooserItem(UIGChooserItem *pParent)
+UIGChooserItem::UIGChooserItem(UIGChooserItem *pParent, bool fTemporary)
     : m_fRoot(!pParent)
+    , m_fTemporary(fTemporary)
     , m_pParent(pParent)
     , m_dragTokenPlace(DragToken_Off)
@@ -182,4 +183,10 @@
 {
     return m_dragTokenPlace;
+}
+
+
+bool UIGChooserItem::isTemporary() const
+{
+    return m_fTemporary;
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h	(revision 42734)
@@ -63,5 +63,5 @@
 
     /* Constructor: */
-    UIGChooserItem(UIGChooserItem *pParent);
+    UIGChooserItem(UIGChooserItem *pParent, bool fTemporary);
 
     /* API: Cast stuff: */
@@ -110,4 +110,7 @@
     DragToken dragTokenPlace() const;
 
+    /* API: Toggle stuff: */
+    bool isTemporary() const;
+
 protected:
 
@@ -148,4 +151,5 @@
     /* Variables: */
     bool m_fRoot;
+    bool m_fTemporary;
     UIGChooserItem *m_pParent;
     DragToken m_dragTokenPlace;
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp	(revision 42734)
@@ -37,5 +37,5 @@
 
 UIGChooserItemGroup::UIGChooserItemGroup(QGraphicsScene *pScene)
-    : UIGChooserItem(0)
+    : UIGChooserItem(0, false)
     , m_fClosed(false)
     , m_pToggleButton(0)
@@ -59,5 +59,5 @@
                                          UIGChooserItemGroup *pCopyFrom,
                                          bool fMainRoot)
-    : UIGChooserItem(0)
+    : UIGChooserItem(0, true)
     , m_strName(pCopyFrom->name())
     , m_fClosed(pCopyFrom->closed())
@@ -86,5 +86,5 @@
                                          bool fOpened /* = false */,
                                          int iPosition /* = -1 */)
-    : UIGChooserItem(pParent)
+    : UIGChooserItem(pParent, pParent->isTemporary())
     , m_strName(strName)
     , m_fClosed(!fOpened)
@@ -105,4 +105,6 @@
     parentItem()->addItem(this, iPosition);
     setZValue(parentItem()->zValue() + 1);
+    connect(this, SIGNAL(sigToggleStarted()), model(), SIGNAL(sigToggleStarted()));
+    connect(this, SIGNAL(sigToggleFinished()), model(), SIGNAL(sigToggleFinished()));
 }
 
@@ -110,5 +112,5 @@
                                          UIGChooserItemGroup *pCopyFrom,
                                          int iPosition /* = -1 */)
-    : UIGChooserItem(pParent)
+    : UIGChooserItem(pParent, pParent->isTemporary())
     , m_strName(pCopyFrom->name())
     , m_fClosed(pCopyFrom->closed())
@@ -129,4 +131,6 @@
     parentItem()->addItem(this, iPosition);
     setZValue(parentItem()->zValue() + 1);
+    connect(this, SIGNAL(sigToggleStarted()), model(), SIGNAL(sigToggleStarted()));
+    connect(this, SIGNAL(sigToggleFinished()), model(), SIGNAL(sigToggleFinished()));
 
     /* Copy content to 'this': */
@@ -230,4 +234,8 @@
         return;
 
+    /* Toggle started: */
+    if (!isTemporary())
+        emit sigToggleStarted();
+
     /* Setup animation: */
     updateAnimationParameters();
@@ -263,4 +271,8 @@
     /* Relayout model: */
     model()->updateLayout();
+
+    /* Toggle finished: */
+    if (!isTemporary())
+        emit sigToggleFinished();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.h	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.h	(revision 42734)
@@ -36,4 +36,10 @@
     Q_OBJECT;
     Q_PROPERTY(int additionalHeight READ additionalHeight WRITE setAdditionalHeight);
+
+signals:
+
+    /* Notifiers: Toggle stuff: */
+    void sigToggleStarted();
+    void sigToggleFinished();
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp	(revision 42734)
@@ -44,5 +44,5 @@
                                              const CMachine &machine,
                                              int iPosition /* = -1 */)
-    : UIGChooserItem(pParent)
+    : UIGChooserItem(pParent, pParent->isTemporary())
     , UIVMItem(machine)
     , m_pToolBar(0)
@@ -65,5 +65,5 @@
                                              UIGChooserItemMachine *pCopyFrom,
                                              int iPosition /* = -1 */)
-    : UIGChooserItem(pParent)
+    : UIGChooserItem(pParent, pParent->isTemporary())
     , UIVMItem(pCopyFrom->machine())
     , m_pToolBar(0)
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 42734)
@@ -341,5 +341,5 @@
         if (pPreviousFocusItem)
         {
-            pPreviousFocusItem->disconnect(this);
+            disconnect(pPreviousFocusItem, SIGNAL(destroyed(QObject*)), this, SLOT(sltFocusItemDestroyed()));
             pPreviousFocusItem->update();
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 42734)
@@ -71,4 +71,8 @@
     /* Notifier: Sliding start: */
     void sigSlidingStarted();
+
+    /* Notifiers: Toggle stuff: */
+    void sigToggleStarted();
+    void sigToggleFinished();
 
     /* Notifiers: Group saving stuff: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp	(revision 42734)
@@ -69,4 +69,8 @@
     connect(this, SIGNAL(sigSlidingStarted()),
             m_pDetailsModel, SLOT(sltHandleSlidingStarted()));
+    connect(this, SIGNAL(sigToggleStarted()),
+            m_pDetailsModel, SLOT(sltHandleToggleStarted()));
+    connect(this, SIGNAL(sigToggleFinished()),
+            m_pDetailsModel, SLOT(sltHandleToggleFinished()));
 
     /* Selector-view connections: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.h	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.h	(revision 42734)
@@ -42,4 +42,8 @@
     void sigSlidingStarted();
 
+    /* Notifiers: Toggle stuff: */
+    void sigToggleStarted();
+    void sigToggleFinished();
+
 public:
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp	(revision 42734)
@@ -161,4 +161,14 @@
 }
 
+void UIGDetailsModel::sltHandleToggleStarted()
+{
+    m_pRoot->stopPopulatingItems();
+}
+
+void UIGDetailsModel::sltHandleToggleFinished()
+{
+    m_pRoot->updateItems();
+}
+
 QVariant UIGDetailsModel::data(int iKey) const
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h	(revision 42733)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h	(revision 42734)
@@ -85,4 +85,8 @@
     void sltHandleSlidingStarted();
 
+    /* Handlers: Togle stuff in chooser: */
+    void sltHandleToggleStarted();
+    void sltHandleToggleFinished();
+
 private:
 
