Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp	(revision 56735)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp	(revision 56736)
@@ -81,4 +81,26 @@
 }
 
+#ifndef Q_WS_MAC
+bool UIMenuBarEditorWidget::isMenuBarEnabled() const
+{
+    /* For VM settings only: */
+    AssertReturn(m_fStartedFromVMSettings, false);
+
+    /* Acquire enable-checkbox if possible: */
+    AssertPtrReturn(m_pCheckBoxEnable, false);
+    return m_pCheckBoxEnable->isChecked();
+}
+
+void UIMenuBarEditorWidget::setMenuBarEnabled(bool fEnabled)
+{
+    /* For VM settings only: */
+    AssertReturnVoid(m_fStartedFromVMSettings);
+
+    /* Update enable-checkbox if possible: */
+    AssertPtrReturnVoid(m_pCheckBoxEnable);
+    m_pCheckBoxEnable->setChecked(fEnabled);
+}
+#endif /* !Q_WS_MAC */
+
 void UIMenuBarEditorWidget::sltHandleConfigurationChange(const QString &strMachineID)
 {
@@ -87,29 +109,7 @@
         return;
 
-#ifndef Q_WS_MAC
-    /* Update enable-checkbox: */
-    updateEnableCheckbox();
-#endif /* !Q_WS_MAC */
-
     /* Update menus: */
     updateMenus();
 }
-
-#ifndef RT_OS_DARWIN
-void UIMenuBarEditorWidget::sltHandleMenuBarEnableToggle(bool fEnabled)
-{
-    /* Toggle enable-checkbox if necessary: */
-    if (m_fStartedFromVMSettings && m_pCheckBoxEnable)
-    {
-        /* Check whether this value is really changed: */
-        const bool fMenuBarEnabled = gEDataManager->menuBarEnabled(machineID());
-        if (fMenuBarEnabled != fEnabled)
-        {
-            /* Set new value: */
-            gEDataManager->setMenuBarEnabled(fEnabled, machineID());
-        }
-    }
-}
-#endif /* !RT_OS_DARWIN */
 
 void UIMenuBarEditorWidget::sltHandleMenuBarMenuClick()
@@ -315,9 +315,6 @@
                 /* Configure enable-checkbox: */
                 m_pCheckBoxEnable->setFocusPolicy(Qt::StrongFocus);
-                connect(m_pCheckBoxEnable, SIGNAL(toggled(bool)), this, SLOT(sltHandleMenuBarEnableToggle(bool)));
                 /* Add enable-checkbox into main-layout: */
                 m_pMainLayout->addWidget(m_pCheckBoxEnable);
-                /* Update enable-checkbox: */
-                updateEnableCheckbox();
             }
         }
@@ -348,7 +345,10 @@
     prepareMenuHelp();
 
-    /* Listen for the menu-bar configuration changes: */
-    connect(gEDataManager, SIGNAL(sigMenuBarConfigurationChange(const QString&)),
-            this, SLOT(sltHandleConfigurationChange(const QString&)));
+    /* Listen for the menu-bar configuration changes if necessary: */
+    if (!m_fStartedFromVMSettings)
+    {
+        connect(gEDataManager, SIGNAL(sigMenuBarConfigurationChange(const QString&)),
+                this, SLOT(sltHandleConfigurationChange(const QString&)));
+    }
 
     /* Update menus: */
@@ -656,17 +656,4 @@
 }
 
-#ifndef Q_WS_MAC
-void UIMenuBarEditorWidget::updateEnableCheckbox()
-{
-    /* Update enable-checkbox if necessary: */
-    if (m_fStartedFromVMSettings && m_pCheckBoxEnable)
-    {
-        m_pCheckBoxEnable->blockSignals(true);
-        m_pCheckBoxEnable->setChecked(gEDataManager->menuBarEnabled(machineID()));
-        m_pCheckBoxEnable->blockSignals(false);
-    }
-}
-#endif /* !Q_WS_MAC */
-
 void UIMenuBarEditorWidget::updateMenus()
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.h	(revision 56735)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.h	(revision 56736)
@@ -85,4 +85,11 @@
     void setActionPool(UIActionPool *pActionPool);
 
+#ifndef Q_WS_MAC
+    /** Returns whether the menu-bar enabled. */
+    bool isMenuBarEnabled() const;
+    /** Defines whether the menu-bar @a fEnabled. */
+    void setMenuBarEnabled(bool fEnabled);
+#endif /* !Q_WS_MAC */
+
 private slots:
 
@@ -90,8 +97,4 @@
     void sltHandleConfigurationChange(const QString &strMachineID);
 
-#ifndef RT_OS_DARWIN
-    /** Non Mac OS X: Handles menu-bar enable toggle. */
-    void sltHandleMenuBarEnableToggle(bool fEnabled);
-#endif /* !RT_OS_DARWIN */
     /** Handles menu-bar menu click. */
     void sltHandleMenuBarMenuClick();
@@ -141,8 +144,4 @@
     void prepareMenuHelp();
 
-#ifndef Q_WS_MAC
-    /** Non Mac OS X: Update enable-checkbox routine. */
-    void updateEnableCheckbox();
-#endif /* !Q_WS_MAC */
     /** Update menus routine. */
     void updateMenus();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp	(revision 56735)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp	(revision 56736)
@@ -283,4 +283,24 @@
 }
 
+bool UIStatusBarEditorWidget::isStatusBarEnabled() const
+{
+    /* For VM settings only: */
+    AssertReturn(m_fStartedFromVMSettings, false);
+
+    /* Acquire enable-checkbox if possible: */
+    AssertPtrReturn(m_pCheckBoxEnable, false);
+    return m_pCheckBoxEnable->isChecked();
+}
+
+void UIStatusBarEditorWidget::setStatusBarEnabled(bool fEnabled)
+{
+    /* For VM settings only: */
+    AssertReturnVoid(m_fStartedFromVMSettings);
+
+    /* Update enable-checkbox if possible: */
+    AssertPtrReturnVoid(m_pCheckBoxEnable);
+    m_pCheckBoxEnable->setChecked(fEnabled);
+}
+
 void UIStatusBarEditorWidget::sltHandleConfigurationChange(const QString &strMachineID)
 {
@@ -289,24 +309,6 @@
         return;
 
-    /* Update enable-checkbox: */
-    updateEnableCheckbox();
-
     /* Update status buttons: */
     updateStatusButtons();
-}
-
-void UIStatusBarEditorWidget::sltHandleStatusBarEnableToggle(bool fEnabled)
-{
-    /* Toggle enable-checkbox if necessary: */
-    if (m_fStartedFromVMSettings && m_pCheckBoxEnable)
-    {
-        /* Check whether this value is really changed: */
-        const bool fStatusBarEnabled = gEDataManager->statusBarEnabled(machineID());
-        if (fStatusBarEnabled != fEnabled)
-        {
-            /* Set new value: */
-            gEDataManager->setStatusBarEnabled(fEnabled, machineID());
-        }
-    }
 }
 
@@ -400,9 +402,6 @@
                 /* Configure enable-checkbox: */
                 m_pCheckBoxEnable->setFocusPolicy(Qt::StrongFocus);
-                connect(m_pCheckBoxEnable, SIGNAL(toggled(bool)), this, SLOT(sltHandleStatusBarEnableToggle(bool)));
                 /* Add enable-checkbox into main-layout: */
                 m_pMainLayout->addWidget(m_pCheckBoxEnable);
-                /* Update enable-checkbox: */
-                updateEnableCheckbox();
             }
         }
@@ -444,7 +443,10 @@
     }
 
-    /* Listen for the status-bar configuration changes: */
-    connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QString&)),
-            this, SLOT(sltHandleConfigurationChange(const QString&)));
+    /* Listen for the status-bar configuration changes if necessary: */
+    if (!m_fStartedFromVMSettings)
+    {
+        connect(gEDataManager, SIGNAL(sigStatusBarConfigurationChange(const QString&)),
+                this, SLOT(sltHandleConfigurationChange(const QString&)));
+    }
 
     /* Update status buttons: */
@@ -465,15 +467,4 @@
         /* Insert status button into map: */
         m_buttons.insert(type, pButton);
-    }
-}
-
-void UIStatusBarEditorWidget::updateEnableCheckbox()
-{
-    /* Update enable-checkbox if necessary: */
-    if (m_fStartedFromVMSettings && m_pCheckBoxEnable)
-    {
-        m_pCheckBoxEnable->blockSignals(true);
-        m_pCheckBoxEnable->setChecked(gEDataManager->statusBarEnabled(machineID()));
-        m_pCheckBoxEnable->blockSignals(false);
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.h	(revision 56735)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.h	(revision 56736)
@@ -73,4 +73,9 @@
     void setMachineID(const QString &strMachineID);
 
+    /** Returns whether the status-bar enabled. */
+    bool isStatusBarEnabled() const;
+    /** Defines whether the status-bar @a fEnabled. */
+    void setStatusBarEnabled(bool fEnabled);
+
 private slots:
 
@@ -78,6 +83,4 @@
     void sltHandleConfigurationChange(const QString &strMachineID);
 
-    /** Handles status-bar enable toggle. */
-    void sltHandleStatusBarEnableToggle(bool fEnabled);
     /** Handles button click. */
     void sltHandleButtonClick();
@@ -95,6 +98,4 @@
     void prepareStatusButton(IndicatorType type);
 
-    /** Update enable-checkbox routine. */
-    void updateEnableCheckbox();
     /** Update status buttons routine. */
     void updateStatusButtons();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp	(revision 56735)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.cpp	(revision 56736)
@@ -55,5 +55,7 @@
 
     /* Cache interface data: */
+    interfaceData.m_fStatusBarEnabled = gEDataManager->statusBarEnabled(m_machine.GetId());
 #ifndef Q_WS_MAC
+    interfaceData.m_fMenuBarEnabled = gEDataManager->menuBarEnabled(m_machine.GetId());
     interfaceData.m_fShowMiniToolBar = gEDataManager->miniToolbarEnabled(m_machine.GetId());
     interfaceData.m_fMiniToolBarAtTop = gEDataManager->miniToolbarAlignment(m_machine.GetId()) == Qt::AlignTop;
@@ -75,10 +77,10 @@
 
     /* Prepare interface data: */
+    m_pStatusBarEditor->setStatusBarEnabled(interfaceData.m_fStatusBarEnabled);
 #ifndef Q_WS_MAC
+    m_pMenuBarEditor->setMenuBarEnabled(interfaceData.m_fMenuBarEnabled);
     m_pCheckBoxShowMiniToolBar->setChecked(interfaceData.m_fShowMiniToolBar);
     m_pComboToolBarAlignment->setChecked(interfaceData.m_fMiniToolBarAtTop);
-#else /* Q_WS_MAC */
-    Q_UNUSED(interfaceData);
-#endif /* Q_WS_MAC */
+#endif /* !Q_WS_MAC */
 
     /* Polish page finally: */
@@ -97,5 +99,7 @@
 
     /* Gather interface data from page: */
+    interfaceData.m_fStatusBarEnabled = m_pStatusBarEditor->isStatusBarEnabled();
 #ifndef Q_WS_MAC
+    interfaceData.m_fMenuBarEnabled = m_pMenuBarEditor->isMenuBarEnabled();
     interfaceData.m_fShowMiniToolBar = m_pCheckBoxShowMiniToolBar->isChecked();
     interfaceData.m_fMiniToolBarAtTop = m_pComboToolBarAlignment->isChecked();
@@ -122,10 +126,10 @@
         if (isMachineInValidMode())
         {
+            gEDataManager->setStatusBarEnabled(interfaceData.m_fStatusBarEnabled, m_machine.GetId());
 #ifndef Q_WS_MAC
+            gEDataManager->setMenuBarEnabled(interfaceData.m_fMenuBarEnabled, m_machine.GetId());
             gEDataManager->setMiniToolbarEnabled(interfaceData.m_fShowMiniToolBar, m_machine.GetId());
             gEDataManager->setMiniToolbarAlignment(interfaceData.m_fMiniToolBarAtTop ? Qt::AlignTop : Qt::AlignBottom, m_machine.GetId());
-#else /* Q_WS_MAC */
-            Q_UNUSED(interfaceData);
-#endif /* Q_WS_MAC */
+#endif /* !Q_WS_MAC */
         }
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h	(revision 56735)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsInterface.h	(revision 56736)
@@ -31,6 +31,8 @@
     /* Constructor: */
     UIDataSettingsMachineInterface()
+        : m_fStatusBarEnabled(false)
 #ifndef Q_WS_MAC
-        : m_fShowMiniToolBar(false)
+        , m_fMenuBarEnabled(false)
+        , m_fShowMiniToolBar(false)
         , m_fMiniToolBarAtTop(false)
 #endif /* !Q_WS_MAC */
@@ -40,11 +42,11 @@
     bool equal(const UIDataSettingsMachineInterface &other) const
     {
+        return    (m_fStatusBarEnabled == other.m_fStatusBarEnabled)
 #ifndef Q_WS_MAC
-        return (m_fShowMiniToolBar == other.m_fShowMiniToolBar) &&
-               (m_fMiniToolBarAtTop == other.m_fMiniToolBarAtTop);
-#else /* Q_WS_MAC */
-        Q_UNUSED(other);
-        return true;
-#endif /* Q_WS_MAC */
+               && (m_fMenuBarEnabled == other.m_fMenuBarEnabled)
+               && (m_fShowMiniToolBar == other.m_fShowMiniToolBar)
+               && (m_fMiniToolBarAtTop == other.m_fMiniToolBarAtTop)
+#endif /* !Q_WS_MAC */
+               ;
     }
 
@@ -54,5 +56,7 @@
 
     /* Variables: */
+    bool m_fStatusBarEnabled;
 #ifndef Q_WS_MAC
+    bool m_fMenuBarEnabled;
     bool m_fShowMiniToolBar;
     bool m_fMiniToolBarAtTop;
