Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp	(revision 73694)
@@ -1177,4 +1177,249 @@
 
 
+/** Menu action extension, used as 'Log' menu class. */
+class UIActionMenuSelectorLog : public UIActionMenu
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLog(UIActionPool *pParent)
+        : UIActionMenu(pParent)
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("LogViewerMenu");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Log Viewer"));
+        setStatusTip(QApplication::translate("UIActionPool", "Open the log menu"));
+    }
+};
+
+/** Simple action extension, used as 'Toggle Pane Find' action class. */
+class UIActionMenuSelectorLogTogglePaneFind : public UIActionToggle
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLogTogglePaneFind(UIActionPool *pParent)
+        : UIActionToggle(pParent,
+                         ":/log_viewer_find_22px.png", ":/log_viewer_find_disabled_22px.png")
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("ToggleLogFind");
+    }
+
+    /** Returns default shortcut. */
+    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
+    {
+        return QKeySequence("Ctrl+Shift+F");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Find"));
+        setStatusTip(QApplication::translate("UIActionPool", "Open pane with searching options"));
+        setToolTip(tr("Open Find Pane (%1)").arg(shortcut().toString()));
+    }
+};
+
+/** Simple action extension, used as 'Toggle Pane Filter' action class. */
+class UIActionMenuSelectorLogTogglePaneFilter : public UIActionToggle
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLogTogglePaneFilter(UIActionPool *pParent)
+        : UIActionToggle(pParent,
+                         ":/log_viewer_filter_22px.png", ":/log_viewer_filter_disabled_22px.png")
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("ToggleLogFilter");
+    }
+
+    /** Returns default shortcut. */
+    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
+    {
+        return QKeySequence("Ctrl+Shift+T");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Filter"));
+        setStatusTip(QApplication::translate("UIActionPool", "Open pane with filtering options"));
+        setToolTip(tr("Open Filter Pane (%1)").arg(shortcut().toString()));
+    }
+};
+
+/** Simple action extension, used as 'Toggle Pane Bookmark' action class. */
+class UIActionMenuSelectorLogTogglePaneBookmark : public UIActionToggle
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLogTogglePaneBookmark(UIActionPool *pParent)
+        : UIActionToggle(pParent,
+                         ":/log_viewer_bookmark_22px.png", ":/log_viewer_bookmark_disabled_22px.png")
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("ToggleLogBookmark");
+    }
+
+    /** Returns default shortcut. */
+    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
+    {
+        return QKeySequence("Ctrl+Shift+D");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Bookmark"));
+        setStatusTip(QApplication::translate("UIActionPool", "Open pane with bookmarking options"));
+        setToolTip(tr("Open Bookmark Pane (%1)").arg(shortcut().toString()));
+    }
+};
+
+/** Simple action extension, used as 'Toggle Pane Settings' action class. */
+class UIActionMenuSelectorLogTogglePaneSettings : public UIActionToggle
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLogTogglePaneSettings(UIActionPool *pParent)
+        : UIActionToggle(pParent,
+                         ":/log_viewer_settings_22px.png", ":/log_viewer_settings_disabled_22px.png")
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("ToggleLogSettings");
+    }
+
+    /** Returns default shortcut. */
+    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
+    {
+        return QKeySequence("Ctrl+Shift+P");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Settings"));
+        setStatusTip(QApplication::translate("UIActionPool", "Open pane with log viewer settings"));
+        setToolTip(tr("Open Settings Pane (%1)").arg(shortcut().toString()));
+    }
+};
+
+/** Simple action extension, used as 'Perform Refresh' action class. */
+class UIActionMenuSelectorLogPerformRefresh : public UIActionSimple
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLogPerformRefresh(UIActionPool *pParent)
+        : UIActionSimple(pParent,
+                         ":/log_viewer_refresh_22px.png", ":/log_viewer_refresh_disabled_22px.png")
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("RefreshLog");
+    }
+
+    /** Returns default shortcut. */
+    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
+    {
+        return QKeySequence("Ctrl+Shift+R");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Refresh"));
+        setStatusTip(QApplication::translate("UIActionPool", "Refresh selected virtual machine log"));
+        setToolTip(tr("Refresh Virtual Machine Log (%1)").arg(shortcut().toString()));
+    }
+};
+
+/** Simple action extension, used as 'Perform Save' action class. */
+class UIActionMenuSelectorLogPerformSave : public UIActionSimple
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorLogPerformSave(UIActionPool *pParent)
+        : UIActionSimple(pParent,
+                         ":/log_viewer_save_22px.png", ":/log_viewer_save_disabled_22px.png")
+    {}
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("SaveLog");
+    }
+
+    /** Returns default shortcut. */
+    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
+    {
+        return QKeySequence("Ctrl+Shift+S");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "&Save..."));
+        setStatusTip(QApplication::translate("UIActionPool", "Save selected virtual machine log"));
+        setToolTip(tr("Save Virtual Machine Log (%1)").arg(shortcut().toString()));
+    }
+};
+
+
 /*********************************************************************************************************************************
 *   Class UIActionPool implementation.                                                                                           *
@@ -1372,4 +1617,13 @@
 #endif
 
+    /* Create 'Log Viewer' actions: */
+    m_pool[UIActionIndex_M_LogViewer] = new UIActionMenuSelectorLog(this);
+    m_pool[UIActionIndex_M_LogViewer_T_Find] = new UIActionMenuSelectorLogTogglePaneFind(this);
+    m_pool[UIActionIndex_M_LogViewer_T_Filter] = new UIActionMenuSelectorLogTogglePaneFilter(this);
+    m_pool[UIActionIndex_M_LogViewer_T_Bookmark] = new UIActionMenuSelectorLogTogglePaneBookmark(this);
+    m_pool[UIActionIndex_M_LogViewer_T_Settings] = new UIActionMenuSelectorLogTogglePaneSettings(this);
+    m_pool[UIActionIndex_M_LogViewer_S_Refresh] = new UIActionMenuSelectorLogPerformRefresh(this);
+    m_pool[UIActionIndex_M_LogViewer_S_Save] = new UIActionMenuSelectorLogPerformSave(this);
+
     /* Prepare update-handlers for known menus: */
 #ifdef VBOX_WS_MAC
@@ -1378,4 +1632,5 @@
 #endif
     m_menuUpdateHandlers[UIActionIndex_Menu_Help].ptf = &UIActionPool::updateMenuHelp;
+    m_menuUpdateHandlers[UIActionIndex_M_LogViewer].ptf = &UIActionPool::updateMenuLogViewer;
 
     /* Invalidate all known menus: */
@@ -1614,4 +1869,48 @@
 }
 
+void UIActionPool::updateMenuLogViewer()
+{
+    /* Get corresponding menu: */
+    UIMenu *pMenu = action(UIActionIndex_M_LogViewer)->menu();
+    AssertPtrReturnVoid(pMenu);
+    /* Clear contents: */
+    pMenu->clear();
+
+    /* Separator? */
+    bool fSeparator = false;
+
+    /* 'Save' action: */
+    fSeparator = addAction(pMenu, action(UIActionIndex_M_LogViewer_S_Save)) || fSeparator;
+
+    /* Separator? */
+    if (fSeparator)
+    {
+        pMenu->addSeparator();
+        fSeparator = false;
+    }
+
+    /* 'Find' action: */
+    fSeparator = addAction(pMenu, action(UIActionIndex_M_LogViewer_T_Find)) || fSeparator;
+    /* 'Filter' action: */
+    fSeparator = addAction(pMenu, action(UIActionIndex_M_LogViewer_T_Filter)) || fSeparator;
+    /* 'Bookmarks' action: */
+    fSeparator = addAction(pMenu, action(UIActionIndex_M_LogViewer_T_Bookmark)) || fSeparator;
+    /* 'Settings' action: */
+    fSeparator = addAction(pMenu, action(UIActionIndex_M_LogViewer_T_Settings)) || fSeparator;
+
+    /* Separator? */
+    if (fSeparator)
+    {
+        pMenu->addSeparator();
+        fSeparator = false;
+    }
+
+    /* 'Refresh' action: */
+    fSeparator = addAction(pMenu, action(UIActionIndex_M_LogViewer_S_Refresh)) || fSeparator;;
+
+    /* Mark menu as valid: */
+    m_invalidations.remove(UIActionIndex_M_LogViewer);
+}
+
 void UIActionPool::retranslateUi()
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h	(revision 73694)
@@ -87,4 +87,13 @@
     UIActionIndex_Simple_About,
 #endif
+
+    /* 'Log Viewer' menu actions: */
+    UIActionIndex_M_LogViewer,
+    UIActionIndex_M_LogViewer_T_Find,
+    UIActionIndex_M_LogViewer_T_Filter,
+    UIActionIndex_M_LogViewer_T_Bookmark,
+    UIActionIndex_M_LogViewer_T_Settings,
+    UIActionIndex_M_LogViewer_S_Refresh,
+    UIActionIndex_M_LogViewer_S_Save,
 
     /* Maximum index: */
@@ -545,4 +554,6 @@
     /** Updates 'Help' menu. */
     virtual void updateMenuHelp();
+    /** Updates 'Log Viewer' menu. */
+    virtual void updateMenuLogViewer();
 
     /** Updates shortcuts. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 73694)
@@ -3425,4 +3425,7 @@
     addMenu(m_mainMenus, action(UIActionIndex_Menu_Help));
     updateMenuHelp();
+
+    /* 'Log Viewer' menu: */
+    updateMenuLogViewer();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolSelector.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolSelector.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolSelector.cpp	(revision 73694)
@@ -1881,4 +1881,7 @@
     /* 'Help' menu: */
     updateMenuHelp();
+
+    /* 'Log Viewer' menu: */
+    updateMenuLogViewer();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.cpp	(revision 73694)
@@ -50,6 +50,8 @@
 *********************************************************************************************************************************/
 
-UIVMLogViewerDialogFactory::UIVMLogViewerDialogFactory(const CMachine &comMachine /* = CMachine() */)
-    : m_comMachine(comMachine)
+UIVMLogViewerDialogFactory::UIVMLogViewerDialogFactory(UIActionPool *pActionPool /* = 0 */,
+                                                       const CMachine &comMachine /* = CMachine() */)
+    : m_pActionPool(pActionPool)
+    , m_comMachine(comMachine)
 {
 }
@@ -57,5 +59,5 @@
 void UIVMLogViewerDialogFactory::create(QIManagerDialog *&pDialog, QWidget *pCenterWidget)
 {
-    pDialog = new UIVMLogViewerDialog(pCenterWidget, m_comMachine);
+    pDialog = new UIVMLogViewerDialog(pCenterWidget, m_pActionPool, m_comMachine);
 }
 
@@ -65,6 +67,7 @@
 *********************************************************************************************************************************/
 
-UIVMLogViewerDialog::UIVMLogViewerDialog(QWidget *pCenterWidget, const CMachine &comMachine)
+UIVMLogViewerDialog::UIVMLogViewerDialog(QWidget *pCenterWidget, UIActionPool *pActionPool, const CMachine &comMachine)
     : QIWithRetranslateUI<QIManagerDialog>(pCenterWidget)
+    , m_pActionPool(pActionPool)
     , m_comMachine(comMachine)
 {
@@ -92,5 +95,5 @@
 {
     /* Create widget: */
-    UIVMLogViewerWidget *pWidget = new UIVMLogViewerWidget(EmbedTo_Dialog, m_comMachine, this);
+    UIVMLogViewerWidget *pWidget = new UIVMLogViewerWidget(EmbedTo_Dialog, m_pActionPool, m_comMachine, this);
     if (pWidget)
     {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.h	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.h	(revision 73694)
@@ -35,4 +35,5 @@
 class QDialogButtonBox;
 class QVBoxLayout;
+class UIActionPool;
 class UIVMLogViewerDialog;
 class CMachine;
@@ -45,6 +46,7 @@
 
     /** Constructs Log Viewer factory acquiring additional arguments.
-      * @param  comMachine  Brings the machine for which VM Log-Viewer is requested. */
-    UIVMLogViewerDialogFactory(const CMachine &comMachine = CMachine());
+      * @param  pActionPool  Brings the action-pool reference.
+      * @param  comMachine   Brings the machine for which VM Log-Viewer is requested. */
+    UIVMLogViewerDialogFactory(UIActionPool *pActionPool = 0, const CMachine &comMachine = CMachine());
 
 protected:
@@ -54,4 +56,6 @@
     virtual void create(QIManagerDialog *&pDialog, QWidget *pCenterWidget) /* override */;
 
+    /** Holds the action-pool reference. */
+    UIActionPool *m_pActionPool;
     /** Holds the machine reference. */
     CMachine      m_comMachine;
@@ -68,6 +72,7 @@
     /** Constructs Log Viewer dialog.
       * @param  pCenterWidget  Brings the widget reference to center according to.
+      * @param  pActionPool    Brings the action-pool reference.
       * @param  comMachine     Brings the machine reference. */
-    UIVMLogViewerDialog(QWidget *pCenterWidget, const CMachine &comMachine);
+    UIVMLogViewerDialog(QWidget *pCenterWidget, UIActionPool *pActionPool, const CMachine &comMachine);
 
 protected:
@@ -107,6 +112,8 @@
 private:
 
+    /** Holds the action-pool reference. */
+    UIActionPool *m_pActionPool;
     /** Holds the machine reference. */
-    CMachine  m_comMachine;
+    CMachine      m_comMachine;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 73694)
@@ -38,4 +38,5 @@
 # include "QIFileDialog.h"
 # include "QITabWidget.h"
+# include "UIActionPool.h"
 # include "UIExtraDataManager.h"
 # include "UIIconPool.h"
@@ -58,8 +59,10 @@
 
 UIVMLogViewerWidget::UIVMLogViewerWidget(EmbedTo enmEmbedding,
+                                         UIActionPool *pActionPool,
                                          const CMachine &comMachine /* = CMachine() */,
                                          QWidget *pParent /* = 0 */)
     : QIWithRetranslateUI<QWidget>(pParent)
     , m_enmEmbedding(enmEmbedding)
+    , m_pActionPool(pActionPool)
     , m_comMachine(comMachine)
     , m_fIsPolished(false)
@@ -71,11 +74,4 @@
     , m_pMainLayout(0)
     , m_pToolBar(0)
-    , m_pActionFind(0)
-    , m_pActionFilter(0)
-    , m_pActionRefresh(0)
-    , m_pActionSave(0)
-    , m_pActionBookmarks(0)
-    , m_pActionSettings(0)
-    , m_pMenu(0)
     , m_bShowLineNumbers(true)
     , m_bWrapLines(false)
@@ -110,4 +106,9 @@
 
     return iDefaultWidth;
+}
+
+QMenu *UIVMLogViewerWidget::menu() const
+{
+    return m_pActionPool->action(UIActionIndex_M_LogViewer)->menu();
 }
 
@@ -187,14 +188,9 @@
 
     /* Enable/Disable toolbar actions (except Refresh) & tab widget according log presence: */
-    if (m_pActionFind)
-        m_pActionFind->setEnabled(!noLogsToShow);
-    if (m_pActionFilter)
-        m_pActionFilter->setEnabled(!noLogsToShow);
-    if (m_pActionSave)
-        m_pActionSave->setEnabled(!noLogsToShow);
-    if (m_pActionBookmarks)
-        m_pActionBookmarks->setEnabled(!noLogsToShow);
-    if (m_pActionSettings)
-        m_pActionSettings->setEnabled(!noLogsToShow);
+    m_pActionPool->action(UIActionIndex_M_LogViewer_T_Find)->setEnabled(!noLogsToShow);
+    m_pActionPool->action(UIActionIndex_M_LogViewer_T_Filter)->setEnabled(!noLogsToShow);
+    m_pActionPool->action(UIActionIndex_M_LogViewer_S_Save)->setEnabled(!noLogsToShow);
+    m_pActionPool->action(UIActionIndex_M_LogViewer_T_Bookmark)->setEnabled(!noLogsToShow);
+    m_pActionPool->action(UIActionIndex_M_LogViewer_T_Settings)->setEnabled(!noLogsToShow);
 
     m_pTabWidget->show();
@@ -426,5 +422,4 @@
     prepareActions();
     prepareToolBar();
-    prepareMenu();
     prepareWidgets();
     /* Load settings: */
@@ -442,85 +437,27 @@
 void UIVMLogViewerWidget::prepareActions()
 {
-    /* Create and configure 'Find' action: */
-    m_pActionFind = new QAction(this);
-    if (m_pActionFind)
-    {
-        m_pActionFind->setShortcut(QKeySequence("Ctrl+F"));
-        m_pActionFind->setCheckable(true);
-        connect(m_pActionFind, &QAction::triggered, this, &UIVMLogViewerWidget::sltPanelActionToggled);
-    }
-
-    /* Create and configure 'Filter' action: */
-    m_pActionFilter = new QAction(this);
-    if (m_pActionFilter)
-    {
-        m_pActionFilter->setShortcut(QKeySequence("Ctrl+T"));
-        m_pActionFilter->setCheckable(true);
-        connect(m_pActionFilter, &QAction::triggered, this, &UIVMLogViewerWidget::sltPanelActionToggled);
-    }
-    /* Create and configure 'Bookmark' action: */
-    m_pActionBookmarks = new QAction(this);
-    if (m_pActionBookmarks)
-    {
-        /* tie Ctrl+D to save only if we show this in a dialog since Ctrl+D is
-           already assigned to another action in the selector UI: */
-        if (m_enmEmbedding == EmbedTo_Dialog)
-            m_pActionBookmarks->setShortcut(QKeySequence("Ctrl+D"));
-        m_pActionBookmarks->setCheckable(true);
-        connect(m_pActionBookmarks, &QAction::triggered, this, &UIVMLogViewerWidget::sltPanelActionToggled);
-    }
-
-    /* Create and configure 'Settings' action: */
-    m_pActionSettings = new QAction(this);
-    if (m_pActionSettings)
-    {
-        m_pActionSettings->setShortcut(QKeySequence("Ctrl+P"));
-        m_pActionSettings->setCheckable(true);
-        connect(m_pActionSettings, &QAction::triggered, this, &UIVMLogViewerWidget::sltPanelActionToggled);
-    }
-
-    /* Create and configure 'Refresh' action: */
-    m_pActionRefresh = new QAction(this);
-    if (m_pActionRefresh)
-    {
-        m_pActionRefresh->setShortcut(QKeySequence("F5"));
-        connect(m_pActionRefresh, &QAction::triggered, this, &UIVMLogViewerWidget::sltRefresh);
-    }
-
-    /* Create and configure 'Save' action: */
-    m_pActionSave = new QAction(this);
-    if (m_pActionSave)
-    {
-        /* tie Ctrl+S to save only if we show this in a dialog since Ctrl+S is
-           already assigned to another action in the selector UI: */
-        if (m_enmEmbedding == EmbedTo_Dialog)
-            m_pActionSave->setShortcut(QKeySequence("Ctrl+S"));
-        connect(m_pActionSave, &QAction::triggered, this, &UIVMLogViewerWidget::sltSave);
-     }
-
-    /* Update action icons: */
-    prepareActionIcons();
-}
-
-void UIVMLogViewerWidget::prepareActionIcons()
-{
-    if (m_pActionFind)
-        m_pActionFind->setIcon(UIIconPool::iconSet(QString(":/log_viewer_find_22px.png"),
-                                                   QString(":/log_viewer_find_disabled_22px.png")));
-    if (m_pActionFilter)
-        m_pActionFilter->setIcon(UIIconPool::iconSet(QString(":/log_viewer_filter_22px.png"),
-                                                     QString(":/log_viewer_filter_disabled_22px.png")));
-    if (m_pActionRefresh)
-        m_pActionRefresh->setIcon(UIIconPool::iconSet(QString(":/log_viewer_refresh_22px.png"),
-                                                      QString(":/log_viewer_refresh_disabled_22px.png")));
-    if (m_pActionSave)
-        m_pActionSave->setIcon(UIIconPool::iconSet(QString(":/log_viewer_save_22px.png"),
-                                                   QString(":/log_viewer_save_disabled_22px.png")));
-    if (m_pActionBookmarks)
-        m_pActionBookmarks->setIcon(UIIconPool::iconSet(QString(":/log_viewer_bookmark_22px.png"),
-                                                        QString(":/log_viewer_bookmark_disabled_22px.png")));
-    if (m_pActionSettings)
-        m_pActionSettings->setIcon(UIIconPool::iconSet(QString(":/log_viewer_settings_22px.png"),
-                                                       QString(":/log_viewer_settings_disabled_22px.png")));
+    /* Configure 'Find' action: */
+    connect(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Find), &QAction::toggled,
+            this, &UIVMLogViewerWidget::sltPanelActionToggled);
+
+    /* Configure 'Filter' action: */
+    connect(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Filter), &QAction::toggled,
+            this, &UIVMLogViewerWidget::sltPanelActionToggled);
+
+    /* Configure 'Bookmark' action: */
+    connect(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Bookmark), &QAction::toggled,
+            this, &UIVMLogViewerWidget::sltPanelActionToggled);
+
+    /* Configure 'Settings' action: */
+    connect(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Settings), &QAction::toggled,
+            this, &UIVMLogViewerWidget::sltPanelActionToggled);
+
+    /* Configure 'Refresh' action: */
+    connect(m_pActionPool->action(UIActionIndex_M_LogViewer_S_Refresh), &QAction::triggered,
+            this, &UIVMLogViewerWidget::sltRefresh);
+
+    /* Configure 'Save' action: */
+    connect(m_pActionPool->action(UIActionIndex_M_LogViewer_S_Save), &QAction::triggered,
+            this, &UIVMLogViewerWidget::sltSave);
 }
 
@@ -537,22 +474,12 @@
 
         /* Add toolbar actions: */
-        if (m_pActionSave)
-        {
-            m_pToolBar->addAction(m_pActionSave);
-            m_pToolBar->addSeparator();
-        }
-        if (m_pActionFind)
-            m_pToolBar->addAction(m_pActionFind);
-        if (m_pActionFilter)
-            m_pToolBar->addAction(m_pActionFilter);
-        if (m_pActionBookmarks)
-            m_pToolBar->addAction(m_pActionBookmarks);
-        if (m_pActionSettings)
-            m_pToolBar->addAction(m_pActionSettings);
-        if (m_pActionRefresh)
-        {
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(m_pActionRefresh);
-        }
+        m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_LogViewer_S_Save));
+        m_pToolBar->addSeparator();
+        m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Find));
+        m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Filter));
+        m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Bookmark));
+        m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_LogViewer_T_Settings));
+        m_pToolBar->addSeparator();
+        m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_LogViewer_S_Refresh));
 
 #ifdef VBOX_WS_MAC
@@ -570,31 +497,4 @@
 }
 
-void UIVMLogViewerWidget::prepareMenu()
-{
-    /* Create 'LogViewer' menu: */
-    m_pMenu = new QMenu(this);
-    if (m_pMenu)
-    {
-        if (m_pActionSave)
-        {
-            m_pMenu->addAction(m_pActionSave);
-            m_pMenu->addSeparator();
-        }
-        if (m_pActionFind)
-            m_pMenu->addAction(m_pActionFind);
-        if (m_pActionFilter)
-            m_pMenu->addAction(m_pActionFilter);
-        if (m_pActionBookmarks)
-            m_pMenu->addAction(m_pActionBookmarks);
-        if (m_pActionSettings)
-            m_pMenu->addAction(m_pActionSettings);
-        if (m_pActionRefresh)
-        {
-            m_pMenu->addSeparator();
-            m_pMenu->addAction(m_pActionRefresh);
-        }
-    }
-}
-
 void UIVMLogViewerWidget::prepareWidgets()
 {
@@ -624,5 +524,5 @@
         connect(m_pSearchPanel, &UIVMLogViewerSearchPanel::sigHighlightingUpdated,
                 this, &UIVMLogViewerWidget::sltSearchResultHighLigting);
-        m_panelActionMap.insert(m_pSearchPanel, m_pActionFind);
+        m_panelActionMap.insert(m_pSearchPanel, m_pActionPool->action(UIActionIndex_M_LogViewer_T_Find));
 
         /* Add into layout: */
@@ -639,5 +539,5 @@
         connect(m_pFilterPanel, &UIVMLogViewerFilterPanel::sigFilterApplied,
                 this, &UIVMLogViewerWidget::sltFilterApplied);
-        m_panelActionMap.insert(m_pFilterPanel, m_pActionFilter);
+        m_panelActionMap.insert(m_pFilterPanel, m_pActionPool->action(UIActionIndex_M_LogViewer_T_Filter));
 
         /* Add into layout: */
@@ -656,5 +556,5 @@
         connect(m_pBookmarksPanel, &UIVMLogViewerBookmarksPanel::sigBookmarkSelected,
                 this, &UIVMLogViewerWidget::gotoBookmark);
-        m_panelActionMap.insert(m_pBookmarksPanel, m_pActionBookmarks);
+        m_panelActionMap.insert(m_pBookmarksPanel, m_pActionPool->action(UIActionIndex_M_LogViewer_T_Bookmark));
 
         /* Add into layout: */
@@ -675,5 +575,5 @@
         connect(m_pSettingsPanel, &UIVMLogViewerSettingsPanel::sigChangeFont, this, &UIVMLogViewerWidget::sltChangeFont);
         connect(m_pSettingsPanel, &UIVMLogViewerSettingsPanel::sigResetToDefaults, this, &UIVMLogViewerWidget::sltResetSettingsToDefault);
-        m_panelActionMap.insert(m_pSettingsPanel, m_pActionSettings);
+        m_panelActionMap.insert(m_pSettingsPanel, m_pActionPool->action(UIActionIndex_M_LogViewer_T_Settings));
 
         /* Add into layout: */
@@ -704,67 +604,4 @@
 void UIVMLogViewerWidget::retranslateUi()
 {
-    if (m_pMenu)
-    {
-        m_pMenu->setTitle(tr("&Log Viewer"));
-    }
-
-    if (m_pActionFind)
-    {
-        m_pActionFind->setText(tr("&Find"));
-        m_pActionFind->setToolTip(tr("Show/Hide 'Find' Panel (Ctrl+F)"));
-        m_pActionFind->setStatusTip(tr("Show/Hide 'Find' Panel (Ctrl+F)"));
-    }
-
-    if (m_pActionFilter)
-    {
-        m_pActionFilter->setText(tr("&Filter"));
-        m_pActionFilter->setToolTip(tr("Show/Hide 'Filter' Panel (Ctrl+T)"));
-        m_pActionFilter->setStatusTip(tr("Show/Hide 'Filter' Panel (Ctrl+T)"));
-    }
-
-    if (m_pActionRefresh)
-    {
-        m_pActionRefresh->setText(tr("&Refresh"));
-        m_pActionRefresh->setToolTip(tr("Reload the log (F5)"));
-        m_pActionRefresh->setStatusTip(tr("Reload the log (F5)"));
-    }
-
-    if (m_pActionSave)
-    {
-        m_pActionSave->setText(tr("&Save..."));
-        if (m_enmEmbedding == EmbedTo_Dialog)
-        {
-            m_pActionSave->setToolTip(tr("Save the log (Ctrl+S)"));
-            m_pActionSave->setStatusTip(tr("Save the log (Ctrl+S)"));
-        }
-        else
-        {
-            m_pActionSave->setToolTip(tr("Save the log"));
-            m_pActionSave->setStatusTip(tr("Save the log"));
-        }
-    }
-
-    if (m_pActionBookmarks)
-    {
-        m_pActionBookmarks->setText(tr("&Bookmarks"));
-        if (m_enmEmbedding == EmbedTo_Dialog)
-        {
-            m_pActionBookmarks->setToolTip(tr("Show/Hide 'Bookmarks' Panel (Ctrl+D)"));
-            m_pActionBookmarks->setStatusTip(tr("Show/Hide 'Bookmarks' Panel (Ctrl+D)"));
-        }
-        else
-        {
-            m_pActionBookmarks->setToolTip(tr("Show/Hide 'Bookmarks' Panel"));
-            m_pActionBookmarks->setStatusTip(tr("Show/Hide 'Bookmarks' Panel"));
-        }
-    }
-
-    if (m_pActionSettings)
-    {
-        m_pActionSettings->setText(tr("&Settings"));
-        m_pActionSettings->setToolTip(tr("Show/Hide 'Settings' Panel (Ctrl+P)"));
-        m_pActionSettings->setStatusTip(tr("Show/Hide 'Settings' Panel (Ctrl+P)"));
-    }
-
     /* Translate toolbar: */
 #ifdef VBOX_WS_MAC
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h	(revision 73694)
@@ -37,4 +37,5 @@
 class QPlainTextEdit;
 class QVBoxLayout;
+class UIActionPool;
 class UIToolBar;
 class UIVMLogPage;
@@ -60,6 +61,7 @@
     /** Constructs the VM Log-Viewer by passing @a pParent to QWidget base-class constructor.
       * @param  enmEmbedding  Brings the type of widget embedding.
+      * @param  pActionPool   Brings the action-pool reference.
       * @param  comMachine    Brings the machine for which VM Log-Viewer is requested. */
-    UIVMLogViewerWidget(EmbedTo enmEmbedding,
+    UIVMLogViewerWidget(EmbedTo enmEmbedding, UIActionPool *pActionPool,
                         const CMachine &comMachine = CMachine(), QWidget *pParent = 0);
     /** Destructs the VM Log-Viewer. */
@@ -69,5 +71,5 @@
 
     /** Returns the menu. */
-    QMenu *menu() const { return m_pMenu; }
+    QMenu *menu() const;
 
 #ifdef VBOX_WS_MAC
@@ -133,10 +135,6 @@
         /** Prepares actions. */
         void prepareActions();
-        /** Prepares action icons. */
-        void prepareActionIcons();
         /** Prepares toolbar. */
         void prepareToolBar();
-        /** Prepares menu. */
-        void prepareMenu();
         /** Prepares widgets. */
         void prepareWidgets();
@@ -188,4 +186,6 @@
     /** Holds the widget's embedding type. */
     const EmbedTo m_enmEmbedding;
+    /** Hold sthe action-pool reference. */
+    UIActionPool *m_pActionPool;
     /** Holds the machine instance. */
     CMachine      m_comMachine;
@@ -214,11 +214,4 @@
       * @{ */
         UIToolBar *m_pToolBar;
-        QAction   *m_pActionFind;
-        QAction   *m_pActionFilter;
-        QAction   *m_pActionRefresh;
-        QAction   *m_pActionSave;
-        QAction   *m_pActionBookmarks;
-        QAction   *m_pActionSettings;
-        QMenu     *m_pMenu;
     /** @} */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp	(revision 73694)
@@ -154,5 +154,5 @@
             {
                 /* Create the Logviewer pane: */
-                m_pPaneLogViewer = new UIVMLogViewerWidget(EmbedTo_Stack);
+                m_pPaneLogViewer = new UIVMLogViewerWidget(EmbedTo_Stack, m_pActionPool);
                 AssertPtrReturnVoid(m_pPaneLogViewer);
                 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 73694)
@@ -1035,5 +1035,5 @@
         if (!m_logViewers[pItem->machine().GetHardwareUUID()])
         {
-            UIVMLogViewerDialogFactory dialogFactory(pItem->machine());
+            UIVMLogViewerDialogFactory dialogFactory(actionPool(), pItem->machine());
             dialogFactory.prepare(pLogViewerDialog, this);
             if (pLogViewerDialog)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 73694)
@@ -2389,5 +2389,5 @@
 
     QIManagerDialog *pLogViewerDialog;
-    UIVMLogViewerDialogFactory dialogFactory(machine());
+    UIVMLogViewerDialogFactory dialogFactory(actionPool(), machine());
     dialogFactory.prepare(pLogViewerDialog, activeMachineWindow());
     if (pLogViewerDialog)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 73694)
@@ -1089,5 +1089,5 @@
         if (!m_logViewers[pItem->machine().GetHardwareUUID()])
         {
-            UIVMLogViewerDialogFactory dialogFactory(pItem->machine());
+            UIVMLogViewerDialogFactory dialogFactory(actionPool(), pItem->machine());
             dialogFactory.prepare(pLogViewerDialog, this);
             if (pLogViewerDialog)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIToolsPaneMachine.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIToolsPaneMachine.cpp	(revision 73693)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIToolsPaneMachine.cpp	(revision 73694)
@@ -146,5 +146,5 @@
             {
                 /* Create the Logviewer pane: */
-                m_pPaneLogViewer = new UIVMLogViewerWidget(EmbedTo_Stack);
+                m_pPaneLogViewer = new UIVMLogViewerWidget(EmbedTo_Stack, m_pActionPool);
                 AssertPtrReturnVoid(m_pPaneLogViewer);
                 {
