Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp	(revision 51670)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp	(revision 51671)
@@ -106,7 +106,7 @@
 #ifdef Q_WS_MAC
 /* Runtime UI: Mac-dock definitions: */
+const char* UIExtraDataDefs::GUI_PresentationModeEnabled = "GUI/PresentationModeEnabled";
 const char* UIExtraDataDefs::GUI_RealtimeDockIconUpdateEnabled = "GUI/RealtimeDockIconUpdateEnabled";
 const char* UIExtraDataDefs::GUI_RealtimeDockIconUpdateMonitor = "GUI/RealtimeDockIconUpdateMonitor";
-const char* UIExtraDataDefs::GUI_PresentationModeEnabled = "GUI/PresentationModeEnabled";
 #endif /* Q_WS_MAC */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 51670)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 51671)
@@ -114,7 +114,7 @@
 #ifdef Q_WS_MAC
     /* Runtime UI: Mac-dock declarations: */
+    extern const char* GUI_PresentationModeEnabled;
     extern const char* GUI_RealtimeDockIconUpdateEnabled;
     extern const char* GUI_RealtimeDockIconUpdateMonitor;
-    extern const char* GUI_PresentationModeEnabled;
 #endif /* Q_WS_MAC */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51670)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51671)
@@ -1090,4 +1090,34 @@
 }
 
+#ifdef Q_WS_MAC
+bool UIExtraDataManager::presentationModeEnabled(const QString &strID) const
+{
+    /* 'False' unless feature allowed: */
+    return isFeatureAllowed(GUI_PresentationModeEnabled, strID);
+}
+
+bool UIExtraDataManager::realtimeDockIconUpdateEnabled(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_RealtimeDockIconUpdateEnabled, strID);
+}
+
+void UIExtraDataManager::setRealtimeDockIconUpdateEnabled(bool fEnabled, const QString &strID)
+{
+    /* 'False' if feature restricted, null-string otherwise: */
+    setExtraDataString(GUI_RealtimeDockIconUpdateEnabled, toFeatureRestricted(!fEnabled), strID);
+}
+
+int UIExtraDataManager::realtimeDockIconUpdateMonitor(const QString &strID) const
+{
+    return extraDataString(GUI_RealtimeDockIconUpdateMonitor, strID).toInt();
+}
+
+void UIExtraDataManager::setRealtimeDockIconUpdateMonitor(int iIndex, const QString &strID)
+{
+    setExtraDataString(GUI_RealtimeDockIconUpdateMonitor, iIndex ? QString::number(iIndex) : QString(), strID);
+}
+#endif /* Q_WS_MAC */
+
 MachineCloseAction UIExtraDataManager::defaultMachineCloseAction(const QString &strID) const
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51670)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51671)
@@ -312,4 +312,19 @@
     void setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QString &strID);
 
+#ifdef Q_WS_MAC
+    /** Mac OS X: Returns whether 'presentation mode' should be enabled. */
+    bool presentationModeEnabled(const QString &strID) const;
+
+    /** Mac OS X: Returns whether Dock icon should be updated at runtime. */
+    bool realtimeDockIconUpdateEnabled(const QString &strID) const;
+    /** Mac OS X: Defines whether Dock icon update should be fEnabled at runtime. */
+    void setRealtimeDockIconUpdateEnabled(bool fEnabled, const QString &strID);
+
+    /** Mac OS X: Returns guest-screen which Dock icon should reflect at runtime. */
+    int realtimeDockIconUpdateMonitor(const QString &strID) const;
+    /** Mac OS X: Defines guest-screen @a iIndex which Dock icon should reflect at runtime. */
+    void setRealtimeDockIconUpdateMonitor(int iIndex, const QString &strID);
+#endif /* Q_WS_MAC */
+
     /** Returns default machine close action. */
     MachineCloseAction defaultMachineCloseAction(const QString &strID) const;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 51670)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 51671)
@@ -97,9 +97,4 @@
 # include <QX11Info>
 #endif /* Q_WS_X11 */
-
-#ifdef Q_WS_MAC
-/* Namespaces: */
-using namespace UIExtraDataDefs;
-#endif /* Q_WS_MAC */
 
 
@@ -1008,5 +1003,6 @@
     {
         pDockSettingsMenu->addSeparator();
-        m_DockIconPreviewMonitor = qMin(session().GetMachine().GetExtraData(GUI_RealtimeDockIconUpdateMonitor).toInt(), cGuestScreens - 1);
+        m_DockIconPreviewMonitor = qMin(gEDataManager->realtimeDockIconUpdateMonitor(vboxGlobal().managedVMUuid()),
+                                        cGuestScreens - 1);
         m_pDockPreviewSelectMonitorGroup = new QActionGroup(this);
         for (int i = 0; i < cGuestScreens; ++i)
@@ -1032,8 +1028,7 @@
     m_pDockIconPreview = new UIDockIconPreview(uisession(), vboxGlobal().vmGuestOSTypeIcon(osTypeId));
 
-    QString strTest = session().GetMachine().GetExtraData(GUI_RealtimeDockIconUpdateEnabled).toLower();
-    /* Default to true if it is an empty value */
-    bool f = (strTest.isEmpty() || strTest == "true");
-    if (f)
+    /* Should the dock-icon be updated at runtime? */
+    bool fEnabled = gEDataManager->realtimeDockIconUpdateEnabled(vboxGlobal().managedVMUuid());
+    if (fEnabled)
         pDockEnablePreviewMonitor->setChecked(true);
     else
@@ -1043,7 +1038,5 @@
             m_pDockPreviewSelectMonitorGroup->setEnabled(false);
     }
-
-    /* Default to true if it is an empty value */
-    setDockIconPreviewEnabled(f);
+    setDockIconPreviewEnabled(fEnabled);
     updateDockOverlay();
 }
@@ -2173,9 +2166,6 @@
     if (!machine.isNull())
     {
-        bool fEnabled = true;
-        if (pAction == gActionPool->action(UIActionIndexRuntime_Toggle_DockDisableMonitor))
-            fEnabled = false;
-
-        machine.SetExtraData(GUI_RealtimeDockIconUpdateEnabled, fEnabled ? "true" : "false");
+        bool fEnabled = pAction != gActionPool->action(UIActionIndexRuntime_Toggle_DockDisableMonitor);
+        gEDataManager->setRealtimeDockIconUpdateEnabled(fEnabled, vboxGlobal().managedVMUuid());
         updateDockOverlay();
     }
@@ -2187,6 +2177,5 @@
     if (!machine.isNull())
     {
-        int monitor = pAction->data().toInt();
-        machine.SetExtraData(GUI_RealtimeDockIconUpdateMonitor, QString::number(monitor));
+        gEDataManager->setRealtimeDockIconUpdateMonitor(pAction->data().toInt(), vboxGlobal().managedVMUuid());
         updateDockOverlay();
     }
@@ -2202,5 +2191,6 @@
             m_pDockPreviewSelectMonitorGroup->setEnabled(fEnabled);
             CMachine machine = session().GetMachine();
-            m_DockIconPreviewMonitor = qMin(machine.GetExtraData(GUI_RealtimeDockIconUpdateMonitor).toInt(), (int)machine.GetMonitorCount() - 1);
+            m_DockIconPreviewMonitor = qMin(gEDataManager->realtimeDockIconUpdateMonitor(vboxGlobal().managedVMUuid()),
+                                            (int)machine.GetMonitorCount() - 1);
         }
         /* Resize the dock icon in the case the preview monitor has changed. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp	(revision 51670)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp	(revision 51671)
@@ -32,9 +32,4 @@
 # include "UIFrameBuffer.h"
 # include <Carbon/Carbon.h>
-#endif /* Q_WS_MAC */
-
-#ifdef Q_WS_MAC
-/* Namespaces: */
-using namespace UIExtraDataDefs;
 #endif /* Q_WS_MAC */
 
@@ -631,8 +626,5 @@
             if (m_pScreenLayout->isHostTaskbarCovert())
             {
-                /* Load 'presentation mode' preference: */
-                QString strPresentationMode = vboxGlobal().virtualBox().GetExtraData(GUI_PresentationModeEnabled).toLower();
-                /* Default to 'false' if it is an empty value: */
-                if (strPresentationMode.isEmpty() || strPresentationMode == "false")
+                if (gEDataManager->presentationModeEnabled(vboxGlobal().managedVMUuid()))
                     SetSystemUIMode(kUIModeAllHidden, 0);
                 else
