Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp	(revision 84577)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp	(revision 84578)
@@ -204,4 +204,5 @@
 void UIChooser::prepareModel()
 {
+    /* Prepare Chooser-model: */
     m_pChooserModel = new UIChooserModel(this);
 }
@@ -216,9 +217,10 @@
         pMainLayout->setSpacing(0);
 
-        /* Prepare chooser-view: */
+        /* Prepare Chooser-view: */
         m_pChooserView = new UIChooserView(this);
         if (m_pChooserView)
         {
             AssertPtrReturnVoid(model());
+            m_pChooserView->setModel(model());
             m_pChooserView->setScene(model()->scene());
             m_pChooserView->show();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 84577)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp	(revision 84578)
@@ -568,5 +568,5 @@
     if (isRoot())
     {
-        /* Root-group should notify chooser-view if minimum-width-hint was changed: */
+        /* Root-group should notify Chooser-view if minimum-width-hint was changed: */
         const int iMinimumWidthHint = minimumWidthHint();
         if (m_iPreviousMinimumWidthHint != iMinimumWidthHint)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp	(revision 84577)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp	(revision 84578)
@@ -21,5 +21,4 @@
 
 /* GUI includes: */
-#include "UIChooser.h"
 #include "UIChooserItem.h"
 #include "UIChooserModel.h"
@@ -58,6 +57,6 @@
         AssertPtrReturn(view(), 0);
 
-        /* Return the number of children: */
-        return view()->chooser()->model()->root()->items().size();
+        /* Return the number of model children if model really assigned: */
+        return view()->model() ? view()->model()->root()->items().size() : 0;
     }
 
@@ -70,6 +69,6 @@
         AssertReturn(iIndex >= 0 && iIndex < childCount(), 0);
 
-        /* Return the child with the passed iIndex: */
-        return QAccessible::queryAccessibleInterface(view()->chooser()->model()->root()->items().at(iIndex));
+        /* Return the model child with the passed iIndex if model really assigned: */
+        return QAccessible::queryAccessibleInterface(view()->model() ? view()->model()->root()->items().at(iIndex) : 0);
     }
 
@@ -92,18 +91,27 @@
 
 
-UIChooserView::UIChooserView(UIChooser *pParent)
+UIChooserView::UIChooserView(QWidget *pParent)
     : QIWithRetranslateUI<QIGraphicsView>(pParent)
-    , m_pChooser(pParent)
+    , m_pChooserModel(0)
     , m_pSearchWidget(0)
     , m_iMinimumWidthHint(0)
 {
-    /* Prepare: */
     prepare();
 }
 
+void UIChooserView::setModel(UIChooserModel *pChooserModel)
+{
+    m_pChooserModel = pChooserModel;
+}
+
+UIChooserModel *UIChooserView::model() const
+{
+    return m_pChooserModel;
+}
+
 bool UIChooserView::isSearchWidgetVisible() const
 {
-    if (!m_pSearchWidget)
-        return false;
+    /* Make sure search widget exists: */
+    AssertPtrReturn(m_pSearchWidget, false);
 
     /* Return widget visibility state: */
@@ -113,6 +121,6 @@
 void UIChooserView::setSearchWidgetVisible(bool fVisible)
 {
-    if (!m_pSearchWidget)
-        return;
+    /* Make sure search widget exists: */
+    AssertPtrReturnVoid(m_pSearchWidget);
 
     /* Make sure keyboard focus is managed correctly: */
@@ -136,16 +144,17 @@
         updateSearchWidgetGeometry();
 
-    /* Reset search each time widget visibility changed: */
-    UIChooserModel *pModel = m_pChooser->model();
-    if (pModel)
-        pModel->resetSearch();
-}
-
-void UIChooserView::setSearchResultsCount(int iTotalMacthCount, int iCurrentlyScrolledItemIndex)
-{
-    if (!m_pSearchWidget)
-        return;
-
-    m_pSearchWidget->setMatchCount(iTotalMacthCount);
+    /* Reset search each time widget visibility changed,
+     * Model can be undefined.. */
+    if (model())
+        model()->resetSearch();
+}
+
+void UIChooserView::setSearchResultsCount(int iTotalMatchCount, int iCurrentlyScrolledItemIndex)
+{
+    /* Make sure search widget exists: */
+    AssertPtrReturnVoid(m_pSearchWidget);
+
+    /* Update count of search results and scroll to certain result: */
+    m_pSearchWidget->setMatchCount(iTotalMatchCount);
     m_pSearchWidget->setScroolToIndex(iCurrentlyScrolledItemIndex);
 }
@@ -153,7 +162,8 @@
 void UIChooserView::appendToSearchString(const QString &strSearchText)
 {
-    if (!m_pSearchWidget)
-        return;
-
+    /* Make sure search widget exists: */
+    AssertPtrReturnVoid(m_pSearchWidget);
+
+    /* Update search string with passed text: */
     m_pSearchWidget->appendToSearchString(strSearchText);
 }
@@ -171,33 +181,31 @@
     setMinimumWidth(2 * frameWidth() + m_iMinimumWidthHint + verticalScrollBar()->sizeHint().width());
 
-    /* Update scene-rect: */
+    /* Update scene rectangle: */
     updateSceneRect();
 }
 
-void UIChooserView::sltRedoSearch(const QString &strSearchTerm, int iItemSearchFlags)
-{
-    if (!m_pChooser)
-        return;
-    UIChooserModel *pModel =  m_pChooser->model();
-    if (!pModel)
-        return;
-
-    pModel->performSearch(strSearchTerm, iItemSearchFlags);
-}
-
-void UIChooserView::sltHandleScrollToSearchResult(bool fIsNext)
-{
-    if (!m_pChooser)
-        return;
-    UIChooserModel *pModel =  m_pChooser->model();
-    if (!pModel)
-        return;
-
-    pModel->selectSearchResult(fIsNext);
-}
-
-void UIChooserView::sltHandleSearchWidgetVisibilityToggle(bool fIsVisible)
-{
-    setSearchWidgetVisible(fIsVisible);
+void UIChooserView::sltRedoSearch(const QString &strSearchTerm, int iSearchFlags)
+{
+    /* Model can be undefined: */
+    if (!model())
+        return;
+
+    /* Perform search: */
+    model()->performSearch(strSearchTerm, iSearchFlags);
+}
+
+void UIChooserView::sltHandleScrollToSearchResult(bool fNext)
+{
+    /* Model can be undefined: */
+    if (!model())
+        return;
+
+    /* Move to requested search result: */
+    model()->selectSearchResult(fNext);
+}
+
+void UIChooserView::sltHandleSearchWidgetVisibilityToggle(bool fVisible)
+{
+    setSearchWidgetVisible(fVisible);
 }
 
@@ -229,13 +237,16 @@
     /* Create the search widget (hidden): */
     m_pSearchWidget = new UIChooserSearchWidget(this);
-    m_pSearchWidget->hide();
-    connect(m_pSearchWidget, &UIChooserSearchWidget::sigRedoSearch,
-            this, &UIChooserView::sltRedoSearch);
-    connect(m_pSearchWidget, &UIChooserSearchWidget::sigScrollToMatch,
-            this, &UIChooserView::sltHandleScrollToSearchResult);
-    connect(m_pSearchWidget, &UIChooserSearchWidget::sigToggleVisibility,
-            this, &UIChooserView::sltHandleSearchWidgetVisibilityToggle);
-
-    /* Update scene-rect: */
+    if (m_pSearchWidget)
+    {
+        m_pSearchWidget->hide();
+        connect(m_pSearchWidget, &UIChooserSearchWidget::sigRedoSearch,
+                this, &UIChooserView::sltRedoSearch);
+        connect(m_pSearchWidget, &UIChooserSearchWidget::sigScrollToMatch,
+                this, &UIChooserView::sltHandleScrollToSearchResult);
+        connect(m_pSearchWidget, &UIChooserSearchWidget::sigToggleVisibility,
+                this, &UIChooserView::sltHandleSearchWidgetVisibilityToggle);
+    }
+
+    /* Update scene rectangle: */
     updateSceneRect();
     /* Update the location and size of the search widget: */
@@ -248,5 +259,4 @@
 void UIChooserView::preparePalette()
 {
-    /* Setup palette: */
     QPalette pal = qApp->palette();
     const QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110);
@@ -262,7 +272,7 @@
     emit sigResized();
 
-    /* Update scene-rect: */
+    /* Update scene rectangle: */
     updateSceneRect();
-    /* Update the location and size of the search widget: */
+    /* Update search widget geometry: */
     updateSearchWidgetGeometry();
 }
@@ -275,8 +285,12 @@
 void UIChooserView::updateSearchWidgetGeometry()
 {
-    if (!m_pSearchWidget || !m_pSearchWidget->isVisible())
-        return;
-
-    const int iHeight = m_pSearchWidget->height();
-    m_pSearchWidget->setGeometry(QRect(0, height() - iHeight, width(), iHeight));
-}
+    /* Make sure search widget exists: */
+    AssertPtrReturnVoid(m_pSearchWidget);
+
+    /* Update visible widget only: */
+    if (m_pSearchWidget->isVisible())
+    {
+        const int iHeight = m_pSearchWidget->height();
+        m_pSearchWidget->setGeometry(QRect(0, height() - iHeight, width(), iHeight));
+    }
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.h	(revision 84577)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.h	(revision 84578)
@@ -27,5 +27,5 @@
 
 /* Forward declarations: */
-class UIChooser;
+class UIChooserModel;
 class UIChooserSearchWidget;
 
@@ -45,23 +45,28 @@
 public:
 
-    /** Constructs a chooser-view passing @a pParent to the base-class.
+    /** Constructs a Chooser-view passing @a pParent to the base-class.
       * @param  pParent  Brings the chooser container to embed into. */
-    UIChooserView(UIChooser *pParent);
+    UIChooserView(QWidget *pParent);
 
     /** @name General stuff.
       * @{ */
-        /** Returns the chooser reference. */
-        UIChooser *chooser() const { return m_pChooser; }
+        /** Defines @a pChooserModel reference. */
+        void setModel(UIChooserModel *pChooserModel);
+        /** Returns Chooser-model reference. */
+        UIChooserModel *model() const;
     /** @} */
 
     /** @name Search stuff.
       * @{ */
-        /** Returns if the search widget is visible or not. */
+        /** Returns whether search widget visible. */
         bool isSearchWidgetVisible() const;
-        /** Shows/hides wrt. @a fVisible machine search widget. */
+        /** Makes search widget @a fVisible. */
         void setSearchWidgetVisible(bool fVisible);
-        /** Updates the search widget's counts. */
-        void setSearchResultsCount(int iTotalMacthCount, int iCurrentlyScrolledItemIndex);
-        /** Forwards @a strSearchText to the search widget which in turn appends it to the current (if any) search term. */
+        /** Updates search widget's results count.
+          * @param  iTotalMatchCount             Brings total search results count.
+          * @param  iCurrentlyScrolledItemIndex  Brings the item index search currently scrolled to. */
+        void setSearchResultsCount(int iTotalMatchCount, int iCurrentlyScrolledItemIndex);
+        /** Forwards @a strSearchText to the search widget which in
+          * turn appends it to the current (if any) search term. */
         void appendToSearchString(const QString &strSearchText);
     /** @} */
@@ -88,9 +93,15 @@
 private slots:
 
-    /** Is connected to search widget's signal for a new search. */
-    void sltRedoSearch(const QString &strSearchTerm, int iItemSearchFlags);
-    /** Is connected to search widget's scroll to next/prev search result signal. */
-    void sltHandleScrollToSearchResult(bool fIsNext);
-    void sltHandleSearchWidgetVisibilityToggle(bool fIsVisible);
+    /** @name Search stuff.
+      * @{ */
+        /** Handles request for a new search.
+          * @param  strSearchTerm  Brings the search term.
+          * @param  iSearchFlags   Brings the item search flags. */
+        void sltRedoSearch(const QString &strSearchTerm, int iSearchFlags);
+        /** Handles request to scroll to @a fNext search result. */
+        void sltHandleScrollToSearchResult(bool fNext);
+        /** Handles request to scroll to make search widget @a fVisible. */
+        void sltHandleSearchWidgetVisibilityToggle(bool fVisible);
+    /** @} */
 
 private:
@@ -118,7 +129,11 @@
     /** @name General stuff.
       * @{ */
-        /** Holds the chooser pane reference. */
-        UIChooser *m_pChooser;
-        /** Holds the search widget instance reference. */
+        /** Holds the Chooser-model reference. */
+        UIChooserModel *m_pChooserModel;
+    /** @} */
+
+    /** @name Search stuff.
+      * @{ */
+        /** Holds the search widget instance. */
         UIChooserSearchWidget *m_pSearchWidget;
     /** @} */
