Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 76960)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 76961)
@@ -197,5 +197,5 @@
     if (noLogsToShow)
     {
-        for (QMap<UIVMLogViewerPanel*, QAction*>::iterator iterator = m_panelActionMap.begin();
+        for (QMap<UIDialogPanel*, QAction*>::iterator iterator = m_panelActionMap.begin();
             iterator != m_panelActionMap.end(); ++iterator)
         {
@@ -284,7 +284,7 @@
     if (!pSenderAction)
         return;
-    UIVMLogViewerPanel* pPanel = 0;
+    UIDialogPanel* pPanel = 0;
     /* Look for the sender() within the m_panelActionMap's values: */
-    for (QMap<UIVMLogViewerPanel*, QAction*>::const_iterator iterator = m_panelActionMap.begin();
+    for (QMap<UIDialogPanel*, QAction*>::const_iterator iterator = m_panelActionMap.begin();
         iterator != m_panelActionMap.end(); ++iterator)
     {
@@ -338,4 +338,9 @@
     if (m_pBookmarksPanel)
         m_pBookmarksPanel->disableEnableBookmarking(!isFiltered);
+}
+
+void UIVMLogViewerWidget::sltHandleHidePanel(UIDialogPanel *pPanel)
+{
+    hidePanel(pPanel);
 }
 
@@ -489,4 +494,6 @@
             connect(m_pSearchPanel, &UIVMLogViewerSearchPanel::sigHighlightingUpdated,
                     this, &UIVMLogViewerWidget::sltSearchResultHighLigting);
+            connect(m_pSearchPanel, &UIVMLogViewerSearchPanel::sigHidePanel,
+                    this, &UIVMLogViewerWidget::sltHandleHidePanel);
             m_panelActionMap.insert(m_pSearchPanel, m_pActionPool->action(UIActionIndex_M_Log_T_Find));
 
@@ -504,4 +511,6 @@
             connect(m_pFilterPanel, &UIVMLogViewerFilterPanel::sigFilterApplied,
                     this, &UIVMLogViewerWidget::sltFilterApplied);
+            connect(m_pFilterPanel, &UIVMLogViewerFilterPanel::sigHidePanel,
+                    this, &UIVMLogViewerWidget::sltHandleHidePanel);
             m_panelActionMap.insert(m_pFilterPanel, m_pActionPool->action(UIActionIndex_M_Log_T_Filter));
 
@@ -523,4 +532,6 @@
                     this, &UIVMLogViewerWidget::gotoBookmark);
             m_panelActionMap.insert(m_pBookmarksPanel, m_pActionPool->action(UIActionIndex_M_Log_T_Bookmark));
+            connect(m_pBookmarksPanel, &UIVMLogViewerBookmarksPanel::sigHidePanel,
+                    this, &UIVMLogViewerWidget::sltHandleHidePanel);
 
             /* Add into layout: */
@@ -542,4 +553,6 @@
             connect(m_pOptionsPanel, &UIVMLogViewerOptionsPanel::sigChangeFont, this, &UIVMLogViewerWidget::sltChangeFont);
             connect(m_pOptionsPanel, &UIVMLogViewerOptionsPanel::sigResetToDefaults, this, &UIVMLogViewerWidget::sltResetOptionsToDefault);
+            connect(m_pOptionsPanel, &UIVMLogViewerOptionsPanel::sigHidePanel, this, &UIVMLogViewerWidget::sltHandleHidePanel);
+
             m_panelActionMap.insert(m_pOptionsPanel, m_pActionPool->action(UIActionIndex_M_Log_T_Options));
 
@@ -805,9 +818,11 @@
 }
 
-void UIVMLogViewerWidget::hidePanel(UIVMLogViewerPanel* panel)
-{
-    if (panel && panel->isVisible())
+void UIVMLogViewerWidget::hidePanel(UIDialogPanel* panel)
+{
+    if (!panel)
+        return;
+    if (panel->isVisible())
         panel->setVisible(false);
-    QMap<UIVMLogViewerPanel*, QAction*>::iterator iterator = m_panelActionMap.find(panel);
+    QMap<UIDialogPanel*, QAction*>::iterator iterator = m_panelActionMap.find(panel);
     if (iterator != m_panelActionMap.end())
     {
@@ -819,9 +834,9 @@
 }
 
-void UIVMLogViewerWidget::showPanel(UIVMLogViewerPanel* panel)
+void UIVMLogViewerWidget::showPanel(UIDialogPanel* panel)
 {
     if (panel && panel->isHidden())
         panel->setVisible(true);
-    QMap<UIVMLogViewerPanel*, QAction*>::iterator iterator = m_panelActionMap.find(panel);
+    QMap<UIDialogPanel*, QAction*>::iterator iterator = m_panelActionMap.find(panel);
     if (iterator != m_panelActionMap.end())
     {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h	(revision 76960)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h	(revision 76961)
@@ -41,4 +41,5 @@
 class QVBoxLayout;
 class UIActionPool;
+class UIDialogPanel;
 class UIToolBar;
 class UIVMLogPage;
@@ -121,4 +122,5 @@
        of UIVMLogPage is changed. */
     void sltLogPageFilteredChanged(bool isFiltered);
+    void sltHandleHidePanel(UIDialogPanel *pPanel);
 
     /** @name Slots to handle signals from settings panel
@@ -178,6 +180,6 @@
     void resetHighlighthing();
 
-    void hidePanel(UIVMLogViewerPanel* panel);
-    void showPanel(UIVMLogViewerPanel* panel);
+    void hidePanel(UIDialogPanel* panel);
+    void showPanel(UIDialogPanel* panel);
 
     /** Make sure escape key is assigned to only a single widget. This is done by checking
@@ -211,7 +213,7 @@
         UIVMLogViewerFilterPanel    *m_pFilterPanel;
         UIVMLogViewerBookmarksPanel *m_pBookmarksPanel;
-        UIVMLogViewerOptionsPanel  *m_pOptionsPanel;
-        QMap<UIVMLogViewerPanel*, QAction*> m_panelActionMap;
-        QList<UIVMLogViewerPanel*>          m_visiblePanelsList;
+        UIVMLogViewerOptionsPanel   *m_pOptionsPanel;
+        QMap<UIDialogPanel*, QAction*> m_panelActionMap;
+        QList<UIDialogPanel*>          m_visiblePanelsList;
     /** @} */
     QVBoxLayout         *m_pMainLayout;
@@ -230,8 +232,5 @@
         QFont m_font;
     /** @} */
-    friend class UIVMLogViewerBookmarksPanel;
     friend class UIVMLogViewerFilterPanel;
-    friend class UIVMLogViewerSearchPanel;
-    friend class UIVMLogViewerOptionsPanel;
     friend class UIVMLogViewerPanel;
     friend class UIVMLogViewerDialog;
