Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp	(revision 57877)
@@ -67,7 +67,36 @@
 }
 
-UINetworkManagerIndicator* UINetworkManager::indicator() const
-{
-    return m_pNetworkManagerIndicator;
+UINetworkManagerIndicator* UINetworkManager::createIndicator() const
+{
+    /* For Selector UI only: */
+    AssertReturn(!vboxGlobal().isVMConsoleProcess(), 0);
+
+    /* Create network-manager state-indicator: */
+    UINetworkManagerIndicator *pNetworkManagerIndicator = new UINetworkManagerIndicator;
+    connect(pNetworkManagerIndicator, SIGNAL(sigMouseDoubleClick(QIStatusBarIndicator*, QMouseEvent*)),
+            this, SLOT(show()));
+    connect(this, SIGNAL(sigAddNetworkManagerIndicatorDescription(UINetworkRequest*)),
+            pNetworkManagerIndicator, SLOT(sltAddNetworkManagerIndicatorDescription(UINetworkRequest*)));
+    connect(this, SIGNAL(sigRemoveNetworkManagerIndicatorDescription(const QUuid &)),
+            pNetworkManagerIndicator, SLOT(sldRemoveNetworkManagerIndicatorDescription(const QUuid &)));
+    return pNetworkManagerIndicator;
+}
+
+void UINetworkManager::registerNetworkRequest(UINetworkRequest *pNetworkRequest)
+{
+    /* Add network-request widget to network-manager dialog: */
+    m_pNetworkManagerDialog->addNetworkRequestWidget(pNetworkRequest);
+
+    /* Add network-request description to network-manager state-indicators: */
+    emit sigAddNetworkManagerIndicatorDescription(pNetworkRequest);
+}
+
+void UINetworkManager::unregisterNetworkRequest(const QUuid &uuid)
+{
+    /* Remove network-request description from network-manager state-indicator: */
+    emit sigRemoveNetworkManagerIndicatorDescription(uuid);
+
+    /* Remove network-request widget from network-manager dialog: */
+    m_pNetworkManagerDialog->removeNetworkRequestWidget(uuid);
 }
 
@@ -98,5 +127,4 @@
 UINetworkManager::UINetworkManager()
     : m_pNetworkManagerDialog(0)
-    , m_pNetworkManagerIndicator(0)
 {
     /* Prepare instance: */
@@ -115,11 +143,4 @@
     m_pNetworkManagerDialog = new UINetworkManagerDialog;
     connect(m_pNetworkManagerDialog, SIGNAL(sigCancelNetworkRequests()), this, SIGNAL(sigCancelNetworkRequests()));
-
-    /* Prepare network-manager state-indicator: */
-    if (!vboxGlobal().isVMConsoleProcess())
-    {
-        m_pNetworkManagerIndicator = new UINetworkManagerIndicator;
-        connect(m_pNetworkManagerIndicator, SIGNAL(sigMouseDoubleClick(QIStatusBarIndicator*, QMouseEvent*)), this, SLOT(show()));
-    }
 }
 
@@ -128,11 +149,4 @@
     /* Cleanup network-requests first: */
     cleanupNetworkRequests();
-
-    /* Cleanup network-manager state-indicator: */
-    if (!vboxGlobal().isVMConsoleProcess())
-    {
-        delete m_pNetworkManagerIndicator;
-        m_pNetworkManagerIndicator = 0;
-    }
 
     /* Cleanup network-manager dialog: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.h	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.h	(revision 57877)
@@ -46,4 +46,9 @@
     void sigCancelNetworkRequests();
 
+    /** Requests to add @a pNetworkRequest to network-manager state-indicators. */
+    void sigAddNetworkManagerIndicatorDescription(UINetworkRequest *pNetworkRequest);
+    /** Requests to remove network-request with @a uuid from network-manager state-indicators. */
+    void sigRemoveNetworkManagerIndicatorDescription(const QUuid &uuid);
+
 public:
 
@@ -58,6 +63,12 @@
     UINetworkManagerDialog* window() const;
 
-    /* Pointer to network-manager state-indicator: */
-    UINetworkManagerIndicator* indicator() const;
+    /** Creates network-manager state-indicator.
+      * @remarks To be cleaned up by the caller. */
+    UINetworkManagerIndicator* createIndicator() const;
+
+    /** Registers @a pNetworkRequest in network-manager. */
+    void registerNetworkRequest(UINetworkRequest *pNetworkRequest);
+    /** Unregisters network-request with @a uuid from network-manager. */
+    void unregisterNetworkRequest(const QUuid &uuid);
 
 public slots:
@@ -114,5 +125,4 @@
     /* Network-manager dialog: */
     UINetworkManagerDialog *m_pNetworkManagerDialog;
-    UINetworkManagerIndicator *m_pNetworkManagerIndicator;
 };
 #define gNetworkManager UINetworkManager::instance()
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.cpp	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.cpp	(revision 57877)
@@ -40,5 +40,5 @@
 }
 
-void UINetworkManagerIndicator::addNetworkRequest(UINetworkRequest *pNetworkRequest)
+void UINetworkManagerIndicator::sltAddNetworkManagerIndicatorDescription(UINetworkRequest *pNetworkRequest)
 {
     /* Make sure network-request is really exists: */
@@ -67,5 +67,5 @@
 }
 
-void UINetworkManagerIndicator::removeNetworkRequest(const QUuid &uuid)
+void UINetworkManagerIndicator::sldRemoveNetworkManagerIndicatorDescription(const QUuid &uuid)
 {
     /* Make sure network-request still registered: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.h	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkManagerIndicator.h	(revision 57877)
@@ -44,22 +44,16 @@
 public:
 
+    /* Constructor: */
+    UINetworkManagerIndicator();
+
     /** Update routine. */
     void updateAppearance();
 
-protected:
+private slots:
 
-    /* Allow creation of UINetworkManagerIndicator to UINetworkManager: */
-    friend class UINetworkManager;
-    /* Constructor: */
-    UINetworkManagerIndicator();
-
-    /* Allow adding/removing network-request tokens to UINetworkRequest: */
-    friend class UINetworkRequest;
-    /* Add network-request token: */
-    void addNetworkRequest(UINetworkRequest *pNetworkRequest);
-    /* Remove network-request token: */
-    void removeNetworkRequest(const QUuid &uuid);
-
-private slots:
+    /** Adds @a pNetworkRequest to network-manager state-indicators. */
+    void sltAddNetworkManagerIndicatorDescription(UINetworkRequest *pNetworkRequest);
+    /** Removes network-request with @a uuid from network-manager state-indicators. */
+    void sldRemoveNetworkManagerIndicatorDescription(const QUuid &uuid);
 
     /* Set particular network-request progress to 'started': */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.cpp	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.cpp	(revision 57877)
@@ -40,6 +40,4 @@
                                    UINetworkManager *pNetworkManager)
     : QObject(pNetworkManager)
-    , m_pNetworkManagerDialog(pNetworkManager->window())
-    , m_pNetworkManagerIndicator(pNetworkManager->indicator())
     , m_uuid(QUuid::createUuid())
     , m_requests(QList<QNetworkRequest>() << request)
@@ -58,6 +56,4 @@
                                    UINetworkManager *pNetworkManager)
     : QObject(pNetworkManager)
-    , m_pNetworkManagerDialog(pNetworkManager->window())
-    , m_pNetworkManagerIndicator(pNetworkManager->indicator())
     , m_uuid(QUuid::createUuid())
     , m_requests(requests)
@@ -78,10 +74,12 @@
     cleanupNetworkReply();
 
-    /* Remove network-request description from network-manager state-indicator: */
-    if (m_pNetworkManagerIndicator)
-        m_pNetworkManagerIndicator->removeNetworkRequest(m_uuid);
-
-    /* Remove network-request widget from network-manager dialog: */
-    m_pNetworkManagerDialog->removeNetworkRequestWidget(m_uuid);
+    /* Unregister network-request from network-manager: */
+    manager()->unregisterNetworkRequest(m_uuid);
+}
+
+UINetworkManager* UINetworkRequest::manager() const
+{
+    AssertPtrReturn(parent(), 0);
+    return qobject_cast<UINetworkManager*>(parent());
 }
 
@@ -188,10 +186,6 @@
     connect(parent(), SIGNAL(sigCancelNetworkRequests()), this, SLOT(sltCancel()), Qt::QueuedConnection);
 
-    /* Create network-request widget in network-manager dialog: */
-    m_pNetworkManagerDialog->addNetworkRequestWidget(this);
-
-    /* Create network-request description in network-manager state-indicator: */
-    if (m_pNetworkManagerIndicator)
-        m_pNetworkManagerIndicator->addNetworkRequest(this);
+    /* Register network-request in network-manager: */
+    manager()->registerNetworkRequest(this);
 
     /* Choose first network-request as current: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.h	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkRequest.h	(revision 57877)
@@ -66,4 +66,6 @@
     ~UINetworkRequest();
 
+    /** Returns parent network-manager. */
+    UINetworkManager* manager() const;
     /* Getters: */
     const QUuid& uuid() const { return m_uuid; }
@@ -96,8 +98,4 @@
     void abortNetworkReply();
 
-    /* Widgets: */
-    UINetworkManagerDialog *m_pNetworkManagerDialog;
-    UINetworkManagerIndicator *m_pNetworkManagerIndicator;
-
     /* Variables: */
     QUuid m_uuid;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 57876)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 57877)
@@ -1454,5 +1454,5 @@
 
     /* Add network-manager indicator: */
-    UINetworkManagerIndicator *pIndicator = gNetworkManager->indicator();
+    UINetworkManagerIndicator *pIndicator = gNetworkManager->createIndicator();
     statusBar()->addPermanentWidget(pIndicator);
     pIndicator->updateAppearance();
