Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp	(revision 85660)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp	(revision 85661)
@@ -2308,10 +2308,4 @@
 }
 
-UIActionPool::UIActionPool(UIActionPoolType enmType, bool fTemporary /* = false */)
-    : m_enmType(enmType)
-    , m_fTemporary(fTemporary)
-{
-}
-
 UIActionPoolManager *UIActionPool::toManager()
 {
@@ -2322,4 +2316,15 @@
 {
     return qobject_cast<UIActionPoolRuntime*>(this);
+}
+
+UIAction *UIActionPool::action(int iIndex) const
+{
+    AssertReturn(m_pool.contains(iIndex), 0);
+    return m_pool.value(iIndex);
+}
+
+QList<UIAction*> UIActionPool::actions() const
+{
+    return m_pool.values();
 }
 
@@ -2386,4 +2391,35 @@
     m_restrictedActionsMenuHelp[enmLevel] = enmRestriction;
     m_invalidations << UIActionIndex_Menu_Help;
+}
+
+bool UIActionPool::processHotKey(const QKeySequence &key)
+{
+    /* Iterate through the whole list of keys: */
+    foreach (const int &iKey, m_pool.keys())
+    {
+        /* Get current action: */
+        UIAction *pAction = m_pool.value(iKey);
+        /* Skip menus/separators: */
+        if (pAction->type() == UIActionType_Menu)
+            continue;
+        /* Get the hot-key of the current action: */
+        const QString strHotKey = gShortcutPool->shortcut(this, pAction).primaryToPortableText();
+        if (pAction->isEnabled() && pAction->isAllowed() && !strHotKey.isEmpty())
+        {
+            if (key.matches(QKeySequence(strHotKey)) == QKeySequence::ExactMatch)
+            {
+                /* We asynchronously post a special event instead of calling
+                 * pAction->trigger() directly, to let key presses and
+                 * releases be processed correctly by Qt first.
+                 * Note: we assume that nobody will delete the menu item
+                 * corresponding to the key sequence, so that the pointer to
+                 * menu data posted along with the event will remain valid in
+                 * the event handler, at least until the main window is closed. */
+                QApplication::postEvent(this, new ActivateActionEvent(pAction));
+                return true;
+            }
+        }
+    }
+    return false;
 }
 
@@ -2422,14 +2458,8 @@
 #endif /* VBOX_WS_MAC */
 
-void UIActionPool::prepare()
-{
-    /* Prepare pool: */
-    preparePool();
-    /* Prepare connections: */
-    prepareConnections();
-    /* Update configuration: */
-    updateConfiguration();
-    /* Update shortcuts: */
-    updateShortcuts();
+UIActionPool::UIActionPool(UIActionPoolType enmType, bool fTemporary /* = false */)
+    : m_enmType(enmType)
+    , m_fTemporary(fTemporary)
+{
 }
 
@@ -2529,5 +2559,5 @@
     m_invalidations.unite(m_menuUpdateHandlers.keys().toSet());
 
-    /* Retranslate finally: */
+    /* Apply language settings: */
     retranslateUi();
 }
@@ -2566,50 +2596,13 @@
 }
 
+void UIActionPool::cleanupConnections()
+{
+    /* Nothing for now.. */
+}
+
 void UIActionPool::cleanupPool()
 {
     qDeleteAll(m_groupPool);
     qDeleteAll(m_pool);
-}
-
-void UIActionPool::cleanup()
-{
-    /* Cleanup pool: */
-    cleanupPool();
-}
-
-void UIActionPool::updateShortcuts()
-{
-    gShortcutPool->applyShortcuts(this);
-}
-
-bool UIActionPool::processHotKey(const QKeySequence &key)
-{
-    /* Iterate through the whole list of keys: */
-    foreach (const int &iKey, m_pool.keys())
-    {
-        /* Get current action: */
-        UIAction *pAction = m_pool.value(iKey);
-        /* Skip menus/separators: */
-        if (pAction->type() == UIActionType_Menu)
-            continue;
-        /* Get the hot-key of the current action: */
-        const QString strHotKey = gShortcutPool->shortcut(this, pAction).primaryToPortableText();
-        if (pAction->isEnabled() && pAction->isAllowed() && !strHotKey.isEmpty())
-        {
-            if (key.matches(QKeySequence(strHotKey)) == QKeySequence::ExactMatch)
-            {
-                /* We asynchronously post a special event instead of calling
-                 * pAction->trigger() directly, to let key presses and
-                 * releases be processed correctly by Qt first.
-                 * Note: we assume that nobody will delete the menu item
-                 * corresponding to the key sequence, so that the pointer to
-                 * menu data posted along with the event will remain valid in
-                 * the event handler, at least until the main window is closed. */
-                QApplication::postEvent(this, new ActivateActionEvent(pAction));
-                return true;
-            }
-        }
-    }
-    return false;
 }
 
@@ -2643,4 +2636,119 @@
         && m_menuUpdateHandlers.contains(iIndex))
         (this->*(m_menuUpdateHandlers.value(iIndex).ptf))();
+}
+
+void UIActionPool::updateShortcuts()
+{
+    gShortcutPool->applyShortcuts(this);
+}
+
+bool UIActionPool::event(QEvent *pEvent)
+{
+    /* Depending on event-type: */
+    switch ((UIEventType)pEvent->type())
+    {
+        case ActivateActionEventType:
+        {
+            /* Process specific event: */
+            ActivateActionEvent *pActionEvent = static_cast<ActivateActionEvent*>(pEvent);
+            pActionEvent->action()->trigger();
+            pEvent->accept();
+            return true;
+        }
+        default:
+            break;
+    }
+    /* Pass to the base-class: */
+    return QObject::event(pEvent);
+}
+
+void UIActionPool::retranslateUi()
+{
+    /* Translate all the actions: */
+    foreach (const int iActionPoolKey, m_pool.keys())
+        m_pool[iActionPoolKey]->retranslateUi();
+    /* Update shortcuts: */
+    updateShortcuts();
+}
+
+bool UIActionPool::addAction(UIMenu *pMenu, UIAction *pAction, bool fReallyAdd /* = true */)
+{
+    /* Check if action is allowed: */
+    const bool fIsActionAllowed = pAction->isAllowed();
+
+#ifdef VBOX_WS_MAC
+    /* Check if menu is consumable: */
+    const bool fIsMenuConsumable = pMenu->isConsumable();
+    /* Check if menu is NOT yet consumed: */
+    const bool fIsMenuConsumed = pMenu->isConsumed();
+#endif
+
+    /* Make this action visible
+     * depending on clearance state. */
+    pAction->setVisible(fIsActionAllowed);
+
+#ifdef VBOX_WS_MAC
+    /* If menu is consumable: */
+    if (fIsMenuConsumable)
+    {
+        /* Add action only if menu was not yet consumed: */
+        if (!fIsMenuConsumed)
+            pMenu->addAction(pAction);
+    }
+    /* If menu is NOT consumable: */
+    else
+#endif
+    {
+        /* Add action only if is allowed: */
+        if (fIsActionAllowed && fReallyAdd)
+            pMenu->addAction(pAction);
+    }
+
+    /* Return if action is allowed: */
+    return fIsActionAllowed;
+}
+
+bool UIActionPool::addMenu(QList<QMenu*> &menuList, UIAction *pAction, bool fReallyAdd /* = true */)
+{
+    /* Check if action is allowed: */
+    const bool fIsActionAllowed = pAction->isAllowed();
+
+    /* Get action's menu: */
+    UIMenu *pMenu = pAction->menu();
+
+#ifdef VBOX_WS_MAC
+    /* Check if menu is consumable: */
+    const bool fIsMenuConsumable = pMenu->isConsumable();
+    /* Check if menu is NOT yet consumed: */
+    const bool fIsMenuConsumed = pMenu->isConsumed();
+#endif
+
+    /* Make this action visible
+     * depending on clearance state. */
+    pAction->setVisible(   fIsActionAllowed
+#ifdef VBOX_WS_MAC
+                        && !fIsMenuConsumable
+#endif
+                        );
+
+#ifdef VBOX_WS_MAC
+    /* If menu is consumable: */
+    if (fIsMenuConsumable)
+    {
+        /* Add action's menu only if menu was not yet consumed: */
+        if (!fIsMenuConsumed)
+            menuList << pMenu;
+    }
+    /* If menu is NOT consumable: */
+    else
+#endif
+    {
+        /* Add action only if is allowed: */
+        if (fIsActionAllowed && fReallyAdd)
+            menuList << pMenu;
+    }
+
+    /* Return if action is allowed: */
+    return fIsActionAllowed;
 }
 
@@ -2890,112 +2998,23 @@
 }
 
-void UIActionPool::retranslateUi()
-{
-    /* Translate all the actions: */
-    foreach (const int iActionPoolKey, m_pool.keys())
-        m_pool[iActionPoolKey]->retranslateUi();
+void UIActionPool::prepare()
+{
+    /* Prepare pool: */
+    preparePool();
+    /* Prepare connections: */
+    prepareConnections();
+
+    /* Update configuration: */
+    updateConfiguration();
     /* Update shortcuts: */
     updateShortcuts();
 }
 
-bool UIActionPool::event(QEvent *pEvent)
-{
-    /* Depending on event-type: */
-    switch ((UIEventType)pEvent->type())
-    {
-        case ActivateActionEventType:
-        {
-            /* Process specific event: */
-            ActivateActionEvent *pActionEvent = static_cast<ActivateActionEvent*>(pEvent);
-            pActionEvent->action()->trigger();
-            pEvent->accept();
-            return true;
-        }
-        default:
-            break;
-    }
-    /* Pass to the base-class: */
-    return QObject::event(pEvent);
-}
-
-bool UIActionPool::addAction(UIMenu *pMenu, UIAction *pAction, bool fReallyAdd /* = true */)
-{
-    /* Check if action is allowed: */
-    const bool fIsActionAllowed = pAction->isAllowed();
-
-#ifdef VBOX_WS_MAC
-    /* Check if menu is consumable: */
-    const bool fIsMenuConsumable = pMenu->isConsumable();
-    /* Check if menu is NOT yet consumed: */
-    const bool fIsMenuConsumed = pMenu->isConsumed();
-#endif
-
-    /* Make this action visible
-     * depending on clearance state. */
-    pAction->setVisible(fIsActionAllowed);
-
-#ifdef VBOX_WS_MAC
-    /* If menu is consumable: */
-    if (fIsMenuConsumable)
-    {
-        /* Add action only if menu was not yet consumed: */
-        if (!fIsMenuConsumed)
-            pMenu->addAction(pAction);
-    }
-    /* If menu is NOT consumable: */
-    else
-#endif
-    {
-        /* Add action only if is allowed: */
-        if (fIsActionAllowed && fReallyAdd)
-            pMenu->addAction(pAction);
-    }
-
-    /* Return if action is allowed: */
-    return fIsActionAllowed;
-}
-
-bool UIActionPool::addMenu(QList<QMenu*> &menuList, UIAction *pAction, bool fReallyAdd /* = true */)
-{
-    /* Check if action is allowed: */
-    const bool fIsActionAllowed = pAction->isAllowed();
-
-    /* Get action's menu: */
-    UIMenu *pMenu = pAction->menu();
-
-#ifdef VBOX_WS_MAC
-    /* Check if menu is consumable: */
-    const bool fIsMenuConsumable = pMenu->isConsumable();
-    /* Check if menu is NOT yet consumed: */
-    const bool fIsMenuConsumed = pMenu->isConsumed();
-#endif
-
-    /* Make this action visible
-     * depending on clearance state. */
-    pAction->setVisible(   fIsActionAllowed
-#ifdef VBOX_WS_MAC
-                        && !fIsMenuConsumable
-#endif
-                        );
-
-#ifdef VBOX_WS_MAC
-    /* If menu is consumable: */
-    if (fIsMenuConsumable)
-    {
-        /* Add action's menu only if menu was not yet consumed: */
-        if (!fIsMenuConsumed)
-            menuList << pMenu;
-    }
-    /* If menu is NOT consumable: */
-    else
-#endif
-    {
-        /* Add action only if is allowed: */
-        if (fIsActionAllowed && fReallyAdd)
-            menuList << pMenu;
-    }
-
-    /* Return if action is allowed: */
-    return fIsActionAllowed;
+void UIActionPool::cleanup()
+{
+    /* Cleanup connections: */
+    cleanupConnections();
+    /* Cleanup pool: */
+    cleanupPool();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h	(revision 85660)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h	(revision 85661)
@@ -476,9 +476,11 @@
     /** Returns action-pool type. */
     UIActionPoolType type() const { return m_enmType; }
+    /** Returns whether this action-pool is temporary. */
+    bool isTemporary() const { return m_fTemporary; }
 
     /** Returns the action for the passed @a iIndex. */
-    UIAction *action(int iIndex) const { return m_pool.value(iIndex); }
+    UIAction *action(int iIndex) const;
     /** Returns all the actions action-pool contains. */
-    QList<UIAction*> actions() const { return m_pool.values(); }
+    QList<UIAction*> actions() const;
 
     /** Returns the action group for the passed @a iIndex.
@@ -516,5 +518,4 @@
     /** Defines whether shortcuts of menu actions with specified @a iIndex should be visible. */
     virtual void setShortcutsVisible(int iIndex, bool fVisible) { Q_UNUSED(iIndex); Q_UNUSED(fVisible); }
-
     /** Returns extra-data ID to save keyboard shortcuts under. */
     virtual QString shortcutsExtraDataID() const = 0;
@@ -540,6 +541,4 @@
     UIActionPool(UIActionPoolType enmType, bool fTemporary = false);
 
-    /** Prepares all. */
-    void prepare();
     /** Prepares pool. */
     virtual void preparePool();
@@ -547,9 +546,7 @@
     virtual void prepareConnections();
     /** Cleanups connections. */
-    virtual void cleanupConnections() {}
+    virtual void cleanupConnections();
     /** Cleanups pool. */
     virtual void cleanupPool();
-    /** Cleanups all. */
-    void cleanup();
 
     /** Updates configuration. */
@@ -560,33 +557,13 @@
     /** Updates menus. */
     virtual void updateMenus() = 0;
-    /** Updates 'Application' menu. */
-    virtual void updateMenuApplication();
-#ifdef VBOX_WS_MAC
-    /** Mac OS X: Updates 'Window' menu. */
-    virtual void updateMenuWindow();
-#endif
-    /** Updates 'Help' menu. */
-    virtual void updateMenuHelp();
-    /** Updates 'Log Viewer Window' menu. */
-    virtual void updateMenuLogViewerWindow();
-    /** Updates 'Log Viewer' menu. */
-    virtual void updateMenuLogViewer();
-    /** Updates 'Log Viewer' @a pMenu. */
-    virtual void updateMenuLogViewerWrapper(UIMenu *pMenu);
-    /** Updates 'Performance Monitor' menu. */
-    virtual void updateMenuPerformanceMonitor();
-    /** Updates 'File Manager' menu. */
-    virtual void updateMenuFileManager();
-    /** Updates 'File Manager' @a pMenu. */
-    virtual void updateMenuFileManagerWrapper(UIMenu *pMenu);
 
     /** Updates shortcuts. */
     virtual void updateShortcuts();
 
+    /** Handles any Qt @a pEvent */
+    virtual bool event(QEvent *pEvent) /* override */;
+
     /** Handles translation event. */
     virtual void retranslateUi() /* override */;
-
-    /** Handles any Qt @a pEvent */
-    virtual bool event(QEvent *pEvent) /* override */;
 
     /** Adds action into corresponding menu. */
@@ -595,8 +572,24 @@
     bool addMenu(QList<QMenu*> &menuList, UIAction *pAction, bool fReallyAdd = true);
 
-    /** Holds the action-pool type. */
-    const UIActionPoolType  m_enmType;
-    /** Holds whether this action-pool is temporary. */
-    const bool              m_fTemporary;
+    /** Updates 'Application' menu. */
+    void updateMenuApplication();
+#ifdef VBOX_WS_MAC
+    /** Mac OS X: Updates 'Window' menu. */
+    void updateMenuWindow();
+#endif
+    /** Updates 'Help' menu. */
+    void updateMenuHelp();
+    /** Updates 'Log Viewer Window' menu. */
+    void updateMenuLogViewerWindow();
+    /** Updates 'Log Viewer' menu. */
+    void updateMenuLogViewer();
+    /** Updates 'Log Viewer' @a pMenu. */
+    void updateMenuLogViewerWrapper(UIMenu *pMenu);
+    /** Updates 'Performance Monitor' menu. */
+    void updateMenuPerformanceMonitor();
+    /** Updates 'File Manager' menu. */
+    void updateMenuFileManager();
+    /** Updates 'File Manager' @a pMenu. */
+    void updateMenuFileManagerWrapper(UIMenu *pMenu);
 
     /** Holds the map of actions. */
@@ -623,4 +616,16 @@
     /** Holds restricted action types of the Help menu. */
     QMap<UIActionRestrictionLevel, UIExtraDataMetaDefs::MenuHelpActionType>         m_restrictedActionsMenuHelp;
+
+private:
+
+    /** Prepares all. */
+    void prepare();
+    /** Cleanups all. */
+    void cleanup();
+
+    /** Holds the action-pool type. */
+    const UIActionPoolType  m_enmType;
+    /** Holds whether this action-pool is temporary. */
+    const bool              m_fTemporary;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp	(revision 85660)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp	(revision 85661)
@@ -4225,5 +4225,5 @@
     UIActionPool::updateShortcuts();
     /* Create temporary Runtime UI pool to do the same: */
-    if (!m_fTemporary)
+    if (!isTemporary())
         UIActionPool::createTemporary(UIActionPoolType_Runtime);
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 85660)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 85661)
@@ -4361,5 +4361,5 @@
     UIActionPool::updateShortcuts();
     /* Create temporary Manager UI pool to do the same: */
-    if (!m_fTemporary)
+    if (!isTemporary())
         UIActionPool::createTemporary(UIActionPoolType_Manager);
 }
