Index: trunk/src/VBox/Frontends/VirtualBox/src/UIVMInfoDialog.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/UIVMInfoDialog.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/UIVMInfoDialog.cpp	(revision 51679)
@@ -479,5 +479,5 @@
 
         /* Maximize (if necessary): */
-        if (gEDataManager->isInformationWindowShouldBeMaximized(vboxGlobal().managedVMUuid()))
+        if (gEDataManager->informationWindowShouldBeMaximized(vboxGlobal().managedVMUuid()))
             showMaximized();
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp	(revision 51679)
@@ -19,7 +19,30 @@
 #include "UIExtraDataDefs.h"
 
-/* Global definitions: */
+/* General: */
 const char* UIExtraDataDefs::GUI_LanguageId = "GUI/LanguageID";
+
+/* Messaging: */
+const char* UIExtraDataDefs::GUI_SuppressMessages = "GUI/SuppressMessages";
+const char* UIExtraDataDefs::GUI_InvertMessageOption = "GUI/InvertMessageOption";
+#if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG)
 const char* UIExtraDataDefs::GUI_PreventBetaWarning = "GUI/PreventBetaWarning";
+#endif /* !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) */
+
+#ifdef VBOX_GUI_WITH_NETWORK_MANAGER
+/* Application Update: */
+const char* UIExtraDataDefs::GUI_PreventApplicationUpdate = "GUI/PreventApplicationUpdate";
+const char* UIExtraDataDefs::GUI_UpdateDate = "GUI/UpdateDate";
+const char* UIExtraDataDefs::GUI_UpdateCheckCount = "GUI/UpdateCheckCount";
+#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
+
+/* Settings: */
+const char* UIExtraDataDefs::GUI_RestrictedGlobalSettingsPages = "GUI/RestrictedGlobalSettingsPages";
+const char* UIExtraDataDefs::GUI_RestrictedMachineSettingsPages = "GUI/RestrictedMachineSettingsPages";
+
+/* Settings: Keyboard: */
+const char* UIExtraDataDefs::GUI_Input_SelectorShortcuts = "GUI/Input/SelectorShortcuts";
+const char* UIExtraDataDefs::GUI_Input_MachineShortcuts = "GUI/Input/MachineShortcuts";
+
+/* Settings: Storage: */
 const char* UIExtraDataDefs::GUI_RecentFolderHD = "GUI/RecentFolderHD";
 const char* UIExtraDataDefs::GUI_RecentFolderCD = "GUI/RecentFolderCD";
@@ -29,43 +52,30 @@
 const char* UIExtraDataDefs::GUI_RecentListFD = "GUI/RecentListFD";
 
-/* Message-center definitions: */
-const char* UIExtraDataDefs::GUI_SuppressMessages = "GUI/SuppressMessages";
-const char* UIExtraDataDefs::GUI_InvertMessageOption = "GUI/InvertMessageOption";
-
-/* Settings-dialog definitions: */
-const char* UIExtraDataDefs::GUI_RestrictedGlobalSettingsPages = "GUI/RestrictedGlobalSettingsPages";
-const char* UIExtraDataDefs::GUI_RestrictedMachineSettingsPages = "GUI/RestrictedMachineSettingsPages";
-
-/* Wizards definitions: */
-const char* UIExtraDataDefs::GUI_FirstRun = "GUI/FirstRun";
-const char* UIExtraDataDefs::GUI_HideDescriptionForWizards = "GUI/HideDescriptionForWizards";
-
-#ifdef VBOX_GUI_WITH_NETWORK_MANAGER
-/* Update-manager definitions: */
-const char* UIExtraDataDefs::GUI_PreventApplicationUpdate = "GUI/PreventApplicationUpdate";
-const char* UIExtraDataDefs::GUI_UpdateDate = "GUI/UpdateDate";
-const char* UIExtraDataDefs::GUI_UpdateCheckCount = "GUI/UpdateCheckCount";
-#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
-
-/* Selector UI definitions: */
-const char* UIExtraDataDefs::GUI_Input_SelectorShortcuts = "GUI/Input/SelectorShortcuts";
+/* VirtualBox Manager: */
 const char* UIExtraDataDefs::GUI_LastSelectorWindowPosition = "GUI/LastWindowPosition";
 const char* UIExtraDataDefs::GUI_SplitterSizes = "GUI/SplitterSizes";
 const char* UIExtraDataDefs::GUI_Toolbar = "GUI/Toolbar";
 const char* UIExtraDataDefs::GUI_Statusbar = "GUI/Statusbar";
+const char* UIExtraDataDefs::GUI_GroupDefinitions = "GUI/GroupDefinitions";
+const char* UIExtraDataDefs::GUI_LastItemSelected = "GUI/LastItemSelected";
+const char* UIExtraDataDefs::GUI_DetailsPageBoxes = "GUI/DetailsPageBoxes";
 const char* UIExtraDataDefs::GUI_PreviewUpdate = "GUI/PreviewUpdate";
-const char* UIExtraDataDefs::GUI_DetailsPageBoxes = "GUI/DetailsPageBoxes";
-const char* UIExtraDataDefs::GUI_LastItemSelected = "GUI/LastItemSelected";
-const char* UIExtraDataDefs::GUI_GroupDefinitions = "GUI/GroupDefinitions";
+
+/* Wizards: */
+const char* UIExtraDataDefs::GUI_HideDescriptionForWizards = "GUI/HideDescriptionForWizards";
+
+/* Virtual Machine: */
 const char* UIExtraDataDefs::GUI_HideFromManager = "GUI/HideFromManager";
+const char* UIExtraDataDefs::GUI_HideDetails = "GUI/HideDetails";
 const char* UIExtraDataDefs::GUI_PreventReconfiguration = "GUI/PreventReconfiguration";
 const char* UIExtraDataDefs::GUI_PreventSnapshotOperations = "GUI/PreventSnapshotOperations";
-const char* UIExtraDataDefs::GUI_HideDetails = "GUI/HideDetails";
-
-/* Runtime UI definitions: */
+const char* UIExtraDataDefs::GUI_FirstRun = "GUI/FirstRun";
 #ifndef Q_WS_MAC
 const char* UIExtraDataDefs::GUI_MachineWindowIcons = "GUI/MachineWindowIcons";
 const char* UIExtraDataDefs::GUI_MachineWindowNamePostfix = "GUI/MachineWindowNamePostfix";
 #endif /* !Q_WS_MAC */
+const char* UIExtraDataDefs::GUI_LastNormalWindowPosition = "GUI/LastNormalWindowPosition";
+const char* UIExtraDataDefs::GUI_LastScaleWindowPosition = "GUI/LastScaleWindowPosition";
+const char* UIExtraDataDefs::GUI_Geometry_State_Max = "max";
 const char* UIExtraDataDefs::GUI_RestrictedRuntimeMenus = "GUI/RestrictedRuntimeMenus";
 #ifdef Q_WS_MAC
@@ -80,37 +90,13 @@
 const char* UIExtraDataDefs::GUI_RestrictedRuntimeHelpMenuActions = "GUI/RestrictedRuntimeHelpMenuActions";
 const char* UIExtraDataDefs::GUI_RestrictedVisualStates = "GUI/RestrictedVisualStates";
-const char* UIExtraDataDefs::GUI_Input_MachineShortcuts = "GUI/Input/MachineShortcuts";
-const char* UIExtraDataDefs::GUI_LastNormalWindowPosition = "GUI/LastNormalWindowPosition";
-const char* UIExtraDataDefs::GUI_LastScaleWindowPosition = "GUI/LastScaleWindowPosition";
-const char* UIExtraDataDefs::GUI_Geometry_State_Max = "max";
-const char* UIExtraDataDefs::GUI_LastGuestSizeHint = "GUI/LastGuestSizeHint";
-const char* UIExtraDataDefs::GUI_LastGuestSizeHintWasFullscreen = "GUI/LastGuestSizeHintWasFullscreen";
 const char* UIExtraDataDefs::GUI_Fullscreen = "GUI/Fullscreen";
 const char* UIExtraDataDefs::GUI_Seamless = "GUI/Seamless";
 const char* UIExtraDataDefs::GUI_Scale = "GUI/Scale";
+const char* UIExtraDataDefs::GUI_AutoresizeGuest = "GUI/AutoresizeGuest";
+const char* UIExtraDataDefs::GUI_LastGuestSizeHint = "GUI/LastGuestSizeHint";
+const char* UIExtraDataDefs::GUI_LastGuestSizeHintWasFullscreen = "GUI/LastGuestSizeHintWasFullscreen";
 const char* UIExtraDataDefs::GUI_VirtualScreenToHostScreen = "GUI/VirtualScreenToHostScreen";
-const char* UIExtraDataDefs::GUI_AutoresizeGuest = "GUI/AutoresizeGuest";
 const char* UIExtraDataDefs::GUI_AutomountGuestScreens = "GUI/AutomountGuestScreens";
-const char* UIExtraDataDefs::GUI_PassCAD = "GUI/PassCAD";
-const char* UIExtraDataDefs::GUI_DefaultCloseAction = "GUI/DefaultCloseAction";
-const char* UIExtraDataDefs::GUI_RestrictedStatusBarIndicators = "GUI/RestrictedStatusBarIndicators";
-const char* UIExtraDataDefs::GUI_HidLedsSync = "GUI/HidLedsSync";
-const char* UIExtraDataDefs::GUI_GuruMeditationHandler = "GUI/GuruMeditationHandler";
-const char* UIExtraDataDefs::GUI_HiDPI_Optimization = "GUI/HiDPI/Optimization";
-
-/* Runtime UI: Mini-toolbar definitions: */
-const char* UIExtraDataDefs::GUI_ShowMiniToolBar = "GUI/ShowMiniToolBar";
-const char* UIExtraDataDefs::GUI_MiniToolBarAlignment = "GUI/MiniToolBarAlignment";
-const char* UIExtraDataDefs::GUI_MiniToolBarAutoHide = "GUI/MiniToolBarAutoHide";
-
-#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";
-#endif /* Q_WS_MAC */
-
 #ifdef VBOX_WITH_VIDEOHWACCEL
-/* Runtime UI: Video-acceleration definitions: */
 const char* UIExtraDataDefs::GUI_Accelerate2D_StretchLinear = "GUI/Accelerate2D/StretchLinear";
 const char* UIExtraDataDefs::GUI_Accelerate2D_PixformatYV12 = "GUI/Accelerate2D/PixformatYV12";
@@ -119,15 +105,29 @@
 const char* UIExtraDataDefs::GUI_Accelerate2D_PixformatAYUV = "GUI/Accelerate2D/PixformatAYUV";
 #endif /* VBOX_WITH_VIDEOHWACCEL */
+const char* UIExtraDataDefs::GUI_HiDPI_Optimization = "GUI/HiDPI/Optimization";
+const char* UIExtraDataDefs::GUI_ShowMiniToolBar = "GUI/ShowMiniToolBar";
+const char* UIExtraDataDefs::GUI_MiniToolBarAutoHide = "GUI/MiniToolBarAutoHide";
+const char* UIExtraDataDefs::GUI_MiniToolBarAlignment = "GUI/MiniToolBarAlignment";
+const char* UIExtraDataDefs::GUI_RestrictedStatusBarIndicators = "GUI/RestrictedStatusBarIndicators";
+#ifdef Q_WS_MAC
+const char* UIExtraDataDefs::GUI_PresentationModeEnabled = "GUI/PresentationModeEnabled";
+const char* UIExtraDataDefs::GUI_RealtimeDockIconUpdateEnabled = "GUI/RealtimeDockIconUpdateEnabled";
+const char* UIExtraDataDefs::GUI_RealtimeDockIconUpdateMonitor = "GUI/RealtimeDockIconUpdateMonitor";
+#endif /* Q_WS_MAC */
+const char* UIExtraDataDefs::GUI_PassCAD = "GUI/PassCAD";
+const char* UIExtraDataDefs::GUI_GuruMeditationHandler = "GUI/GuruMeditationHandler";
+const char* UIExtraDataDefs::GUI_HidLedsSync = "GUI/HidLedsSync";
 
-/* Runtime UI: Close-dialog definitions: */
+/* Virtual Machine: Information dialog: */
+const char* UIExtraDataDefs::GUI_InformationWindowGeometry = "GUI/InformationWindowGeometry";
+
+/* Virtual Machine: Close dialog: */
+const char* UIExtraDataDefs::GUI_DefaultCloseAction = "GUI/DefaultCloseAction";
 const char* UIExtraDataDefs::GUI_RestrictedCloseActions = "GUI/RestrictedCloseActions";
 const char* UIExtraDataDefs::GUI_LastCloseAction = "GUI/LastCloseAction";
 const char* UIExtraDataDefs::GUI_CloseActionHook = "GUI/CloseActionHook";
 
-/* Runtime UI: Information-window definitions: */
-const char* UIExtraDataDefs::GUI_Geometry_InformationWindow = "GUI/Geometry/InformationWindow";
-
 #ifdef VBOX_WITH_DEBUGGER_GUI
-/* Runtime UI: Debugger GUI definitions: */
+/* Virtual Machine: Debug UI: */
 const char* UIExtraDataDefs::GUI_Dbg_Enabled = "GUI/Dbg/Enabled";
 const char* UIExtraDataDefs::GUI_Dbg_AutoShow = "GUI/Dbg/AutoShow";
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 51679)
@@ -27,117 +27,222 @@
 namespace UIExtraDataDefs
 {
-    /* Global declarations: */
-    extern const char* GUI_LanguageId;
-    extern const char* GUI_PreventBetaWarning;
-    extern const char* GUI_RecentFolderHD;
-    extern const char* GUI_RecentFolderCD;
-    extern const char* GUI_RecentFolderFD;
-    extern const char* GUI_RecentListHD;
-    extern const char* GUI_RecentListCD;
-    extern const char* GUI_RecentListFD;
-
-    /* Message-center declarations: */
-    extern const char* GUI_SuppressMessages;
-    extern const char* GUI_InvertMessageOption;
-
-    /* Settings-dialog declarations: */
-    extern const char* GUI_RestrictedGlobalSettingsPages;
-    extern const char* GUI_RestrictedMachineSettingsPages;
-
-    /* Wizard declarations: */
-    extern const char* GUI_FirstRun;
-    extern const char* GUI_HideDescriptionForWizards;
+    /** @name General
+      * @{ */
+        /** VBox language ID. */
+        extern const char* GUI_LanguageId;
+    /** @} */
+
+    /** @name Messaging
+      * @{ */
+        /** Holds the list of supressed messages for the Message/Popup center frameworks. */
+        extern const char* GUI_SuppressMessages;
+        /** Holds the list of messages for the Message/Popup center frameworks with inverted check-box state. */
+        extern const char* GUI_InvertMessageOption;
+#if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG)
+        /** Holds version for which user wants to prevent BETA build warning. */
+        extern const char* GUI_PreventBetaWarning;
+#endif /* !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) */
+    /** @} */
 
 #ifdef VBOX_GUI_WITH_NETWORK_MANAGER
-    /* Update-manager declarations: */
-    extern const char* GUI_PreventApplicationUpdate;
-    extern const char* GUI_UpdateDate;
-    extern const char* GUI_UpdateCheckCount;
+    /** @name Application Update
+      * @{ */
+        /** Holds whether Application Update functionality enabled. */
+        extern const char* GUI_PreventApplicationUpdate;
+        /** Holds Application Update data. */
+        extern const char* GUI_UpdateDate;
+        /** Holds Application Update check counter. */
+        extern const char* GUI_UpdateCheckCount;
+    /** @} */
 #endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
 
-    /* Selector UI declarations: */
-    extern const char* GUI_Input_SelectorShortcuts;
-    extern const char* GUI_LastSelectorWindowPosition;
-    extern const char* GUI_SplitterSizes;
-    extern const char* GUI_Toolbar;
-    extern const char* GUI_Statusbar;
-    extern const char* GUI_PreviewUpdate;
-    extern const char* GUI_DetailsPageBoxes;
-    extern const char* GUI_LastItemSelected;
-    extern const char* GUI_GroupDefinitions;
-    extern const char* GUI_HideFromManager;
-    extern const char* GUI_PreventReconfiguration;
-    extern const char* GUI_PreventSnapshotOperations;
-    extern const char* GUI_HideDetails;
-
-    /* Runtime UI declarations: */
+    /** @name Settings
+      * @{ */
+        /** Holds restricted Plobal Settings pages. */
+        extern const char* GUI_RestrictedGlobalSettingsPages;
+        /** Holds restricted Machine Settings pages. */
+        extern const char* GUI_RestrictedMachineSettingsPages;
+    /** @} */
+
+    /** @name Settings: Keyboard
+      * @{ */
+        /** Holds Selector UI shortcut overrides. */
+        extern const char* GUI_Input_SelectorShortcuts;
+        /** Holds Runtime UI shortcut overrides. */
+        extern const char* GUI_Input_MachineShortcuts;
+    /** @} */
+
+    /** @name Settings: Storage
+      * @{ */
+        /** Holds recent folder for hard-drives. */
+        extern const char* GUI_RecentFolderHD;
+        /** Holds recent folder for optical-disks. */
+        extern const char* GUI_RecentFolderCD;
+        /** Holds recent folder for floppy-disks. */
+        extern const char* GUI_RecentFolderFD;
+        /** Holds the list of recently used hard-drives. */
+        extern const char* GUI_RecentListHD;
+        /** Holds the list of recently used optical-disks. */
+        extern const char* GUI_RecentListCD;
+        /** Holds the list of recently used floppy-disks. */
+        extern const char* GUI_RecentListFD;
+    /** @} */
+
+    /** @name VirtualBox Manager
+      * @{ */
+        /** Holds selector-window geometry. */
+        extern const char* GUI_LastSelectorWindowPosition;
+        /** Holds selector-window splitter hints. */
+        extern const char* GUI_SplitterSizes;
+        /** Holds whether selector-window tool-bar visible. */
+        extern const char* GUI_Toolbar;
+        /** Holds whether selector-window status-bar visible. */
+        extern const char* GUI_Statusbar;
+        /** Prefix used by composite extra-data keys,
+          * which holds selector-window chooser-pane' groups definitions. */
+        extern const char* GUI_GroupDefinitions;
+        /** Holds last item chosen in selector-window chooser-pane. */
+        extern const char* GUI_LastItemSelected;
+        /** Holds selector-window details-pane' elements. */
+        extern const char* GUI_DetailsPageBoxes;
+        /** Holds selector-window details-pane' preview update interval. */
+        extern const char* GUI_PreviewUpdate;
+    /** @} */
+
+    /** @name Wizards
+      * @{ */
+        /** Holds wizard types for which descriptions should be hidden. */
+        extern const char* GUI_HideDescriptionForWizards;
+    /** @} */
+
+    /** @name Virtual Machine
+      * @{ */
+        /** Holds whether machine shouldn't be shown in selector-window chooser-pane. */
+        extern const char* GUI_HideFromManager;
+        /** Holds whether machine shouldn't be shown in selector-window details-pane. */
+        extern const char* GUI_HideDetails;
+        /** Holds whether machine reconfiguration disabled. */
+        extern const char* GUI_PreventReconfiguration;
+        /** Holds whether machine snapshot operations disabled. */
+        extern const char* GUI_PreventSnapshotOperations;
+        /** Holds whether this machine is first time started. */
+        extern const char* GUI_FirstRun;
 #ifndef Q_WS_MAC
-    extern const char* GUI_MachineWindowIcons;
-    extern const char* GUI_MachineWindowNamePostfix;
+        /** Except Mac OS X: Holds redefined machine-window icon names. */
+        extern const char* GUI_MachineWindowIcons;
+        /** Except Mac OS X: Holds redefined machine-window name postfix. */
+        extern const char* GUI_MachineWindowNamePostfix;
 #endif /* !Q_WS_MAC */
-    extern const char* GUI_RestrictedRuntimeMenus;
+        /** Prefix used by composite extra-data keys,
+          * which holds normal machine-window geometry per screen-index. */
+        extern const char* GUI_LastNormalWindowPosition;
+        /** Prefix used by composite extra-data keys,
+          * which holds scaled machine-window geometry per screen-index. */
+        extern const char* GUI_LastScaleWindowPosition;
+        /** Holds machine-window geometry maximized state flag. */
+        extern const char* GUI_Geometry_State_Max;
+        /** Holds restricted Runtime UI menu types. */
+        extern const char* GUI_RestrictedRuntimeMenus;
 #ifdef Q_WS_MAC
-    extern const char* GUI_RestrictedRuntimeApplicationMenuActions;
+        /** Mac OS X: Holds restricted Runtime UI action types for Application menu. */
+        extern const char* GUI_RestrictedRuntimeApplicationMenuActions;
 #endif /* Q_WS_MAC */
-    extern const char* GUI_RestrictedRuntimeMachineMenuActions;
-    extern const char* GUI_RestrictedRuntimeViewMenuActions;
-    extern const char* GUI_RestrictedRuntimeDevicesMenuActions;
+        /** Holds restricted Runtime UI action types for Machine menu. */
+        extern const char* GUI_RestrictedRuntimeMachineMenuActions;
+        /** Holds restricted Runtime UI action types for View menu. */
+        extern const char* GUI_RestrictedRuntimeViewMenuActions;
+        /** Holds restricted Runtime UI action types for Devices menu. */
+        extern const char* GUI_RestrictedRuntimeDevicesMenuActions;
 #ifdef VBOX_WITH_DEBUGGER_GUI
-    extern const char* GUI_RestrictedRuntimeDebuggerMenuActions;
+        /** Holds restricted Runtime UI action types for Debugger menu. */
+        extern const char* GUI_RestrictedRuntimeDebuggerMenuActions;
 #endif /* VBOX_WITH_DEBUGGER_GUI */
-    extern const char* GUI_RestrictedRuntimeHelpMenuActions;
-    extern const char* GUI_RestrictedVisualStates;
-    extern const char* GUI_Input_MachineShortcuts;
-    extern const char* GUI_LastNormalWindowPosition;
-    extern const char* GUI_LastScaleWindowPosition;
-    extern const char* GUI_Geometry_State_Max;
-    extern const char* GUI_LastGuestSizeHint;
-    extern const char* GUI_LastGuestSizeHintWasFullscreen;
-    extern const char* GUI_Fullscreen;
-    extern const char* GUI_Seamless;
-    extern const char* GUI_Scale;
-    extern const char* GUI_VirtualScreenToHostScreen;
-    extern const char* GUI_AutoresizeGuest;
-    extern const char* GUI_AutomountGuestScreens;
-    extern const char* GUI_PassCAD;
-    extern const char* GUI_DefaultCloseAction;
-    extern const char* GUI_RestrictedStatusBarIndicators;
-    extern const char* GUI_HidLedsSync;
-    extern const char* GUI_GuruMeditationHandler;
-    extern const char* GUI_HiDPI_Optimization;
-
-    /* Runtime UI: Mini-toolbar declarations: */
-    extern const char* GUI_ShowMiniToolBar;
-    extern const char* GUI_MiniToolBarAlignment;
-    extern const char* GUI_MiniToolBarAutoHide;
-
+        /** Holds restricted Runtime UI action types for Help menu. */
+        extern const char* GUI_RestrictedRuntimeHelpMenuActions;
+        /** Holds restricted Runtime UI visual-states. */
+        extern const char* GUI_RestrictedVisualStates;
+        /** Holds whether full screen visual-state is requested. */
+        extern const char* GUI_Fullscreen;
+        /** Holds whether seamless visual-state is requested. */
+        extern const char* GUI_Seamless;
+        /** Holds whether scaled visual-state is requested. */
+        extern const char* GUI_Scale;
+        /** Holds whether guest-screen auto-resize according machine-window size is enabled. */
+        extern const char* GUI_AutoresizeGuest;
+        /** Prefix used by composite extra-data keys,
+          * which holds last guest-screen size-hint per screen-index. */
+        extern const char* GUI_LastGuestSizeHint;
+        /** Prefix used by composite extra-data keys,
+          * which holds whether guest size-hint was for full or seamless screen per screen-index. */
+        extern const char* GUI_LastGuestSizeHintWasFullscreen;
+        /** Prefix used by composite extra-data keys,
+          * which holds host-screen index per guest-screen index. */
+        extern const char* GUI_VirtualScreenToHostScreen;
+        /** Holds whether automatic mounting/unmounting of guest-screens enabled. */
+        extern const char* GUI_AutomountGuestScreens;
+#ifdef VBOX_WITH_VIDEOHWACCEL
+        /** Holds whether 2D acceleration should use linear sretch. */
+        extern const char* GUI_Accelerate2D_StretchLinear;
+        /** Holds whether 2D acceleration should use YV12 pixel format. */
+        extern const char* GUI_Accelerate2D_PixformatYV12;
+        /** Holds whether 2D acceleration should use UYVY pixel format. */
+        extern const char* GUI_Accelerate2D_PixformatUYVY;
+        /** Holds whether 2D acceleration should use YUY2 pixel format. */
+        extern const char* GUI_Accelerate2D_PixformatYUY2;
+        /** Holds whether 2D acceleration should use AYUV pixel format. */
+        extern const char* GUI_Accelerate2D_PixformatAYUV;
+#endif /* VBOX_WITH_VIDEOHWACCEL */
+        /** Holds Runtime UI HiDPI optimization type. */
+        extern const char* GUI_HiDPI_Optimization;
+        /** Holds whether mini-toolbar is enabled for full and seamless screens. */
+        extern const char* GUI_ShowMiniToolBar;
+        /** Holds whether mini-toolbar should auto-hide itself. */
+        extern const char* GUI_MiniToolBarAutoHide;
+        /** Holds mini-toolbar alignment. */
+        extern const char* GUI_MiniToolBarAlignment;
+        /** Holds restricted Runtime UI status-bar indicators. */
+        extern const char* GUI_RestrictedStatusBarIndicators;
 #ifdef Q_WS_MAC
-    /* Runtime UI: Mac-dock declarations: */
-    extern const char* GUI_PresentationModeEnabled;
-    extern const char* GUI_RealtimeDockIconUpdateEnabled;
-    extern const char* GUI_RealtimeDockIconUpdateMonitor;
+        /** Mac OS X: Holds whether 'presentation mode' enabled. */
+        extern const char* GUI_PresentationModeEnabled;
+        /** Mac OS X: Holds whether Dock icon should be updated at runtime. */
+        extern const char* GUI_RealtimeDockIconUpdateEnabled;
+        /** Mac OS X: Holds guest-screen which Dock icon should reflect at runtime. */
+        extern const char* GUI_RealtimeDockIconUpdateMonitor;
 #endif /* Q_WS_MAC */
-
-#ifdef VBOX_WITH_VIDEOHWACCEL
-    /* Runtime UI: Video-acceleration declarations: */
-    extern const char* GUI_Accelerate2D_StretchLinear;
-    extern const char* GUI_Accelerate2D_PixformatYV12;
-    extern const char* GUI_Accelerate2D_PixformatUYVY;
-    extern const char* GUI_Accelerate2D_PixformatYUY2;
-    extern const char* GUI_Accelerate2D_PixformatAYUV;
-#endif /* VBOX_WITH_VIDEOHWACCEL */
-
-    /* Runtime UI: Close-dialog declarations: */
-    extern const char* GUI_RestrictedCloseActions;
-    extern const char* GUI_LastCloseAction;
-    extern const char* GUI_CloseActionHook;
-
-    /* Runtime UI: Information-window declarations: */
-    extern const char* GUI_Geometry_InformationWindow;
+        /** Holds whether machine should pass CAD to guest. */
+        extern const char* GUI_PassCAD;
+        /** Holds redefined guru-meditation handler type. */
+        extern const char* GUI_GuruMeditationHandler;
+        /** Holds whether machine should perform HID LEDs synchronization. */
+        extern const char* GUI_HidLedsSync;
+    /** @} */
+
+    /** @name Virtual Machine: Information dialog
+      * @{ */
+        /** Holds information-window geometry. */
+        extern const char* GUI_InformationWindowGeometry;
+    /** @} */
+
+    /** @name Virtual Machine: Close dialog
+      * @{ */
+        /** Holds default machine close action. */
+        extern const char* GUI_DefaultCloseAction;
+        /** Holds restricted machine close actions. */
+        extern const char* GUI_RestrictedCloseActions;
+        /** Holds last machine close action. */
+        extern const char* GUI_LastCloseAction;
+        /** Holds machine close hook script name as simple string. */
+        extern const char* GUI_CloseActionHook;
+    /** @} */
 
 #ifdef VBOX_WITH_DEBUGGER_GUI
-    /* Runtime UI: Debugger GUI declarations: */
-    extern const char* GUI_Dbg_Enabled;
-    extern const char* GUI_Dbg_AutoShow;
+    /** @name Virtual Machine Debug UI
+      * @{ */
+        /** Holds whether debugger UI enabled. */
+        extern const char* GUI_Dbg_Enabled;
+        /** Holds whether debugger UI should be auto-shown. */
+        extern const char* GUI_Dbg_AutoShow;
+    /** @} */
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51679)
@@ -158,13 +158,30 @@
 }
 
-QString UIExtraDataManager::preventBETAwarningForVersion() const
+QStringList UIExtraDataManager::suppressedMessages() const
+{
+    return extraDataStringList(GUI_SuppressMessages);
+}
+
+void UIExtraDataManager::setSuppressedMessages(const QStringList &list)
+{
+    setExtraDataStringList(GUI_SuppressMessages, list);
+}
+
+QStringList UIExtraDataManager::messagesWithInvertedOption() const
+{
+    return extraDataStringList(GUI_InvertMessageOption);
+}
+
+#if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG)
+QString UIExtraDataManager::preventBetaBuildWarningForVersion() const
 {
     return extraDataString(GUI_PreventBetaWarning);
 }
+#endif /* !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) */
 
 #ifdef VBOX_GUI_WITH_NETWORK_MANAGER
-bool UIExtraDataManager::shouldWeAllowApplicationUpdate() const
-{
-    /* Allow unless 'forbidden' flag is set: */
+bool UIExtraDataManager::applicationUpdateEnabled() const
+{
+    /* 'True' unless 'restriction' feature allowed: */
     return !isFeatureAllowed(GUI_PreventApplicationUpdate);
 }
@@ -188,5 +205,5 @@
     {
         bool ok = false;
-        int uCheckCount = strCheckCount.toULongLong(&ok);
+        qulonglong uCheckCount = strCheckCount.toULongLong(&ok);
         if (ok) uResult = uCheckCount;
     }
@@ -201,4 +218,34 @@
 }
 #endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
+
+QList<GlobalSettingsPageType> UIExtraDataManager::restrictedGlobalSettingsPages() const
+{
+    /* Prepare result: */
+    QList<GlobalSettingsPageType> result;
+    /* Get restricted global-settings-pages: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedGlobalSettingsPages))
+    {
+        GlobalSettingsPageType value = gpConverter->fromInternalString<GlobalSettingsPageType>(strValue);
+        if (value != GlobalSettingsPageType_Invalid)
+            result << value;
+    }
+    /* Return result: */
+    return result;
+}
+
+QList<MachineSettingsPageType> UIExtraDataManager::restrictedMachineSettingsPages(const QString &strID) const
+{
+    /* Prepare result: */
+    QList<MachineSettingsPageType> result;
+    /* Get restricted machine-settings-pages: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedMachineSettingsPages, strID))
+    {
+        MachineSettingsPageType value = gpConverter->fromInternalString<MachineSettingsPageType>(strValue);
+        if (value != MachineSettingsPageType_Invalid)
+            result << value;
+    }
+    /* Return result: */
+    return result;
+}
 
 QStringList UIExtraDataManager::shortcutOverrides(const QString &strPoolExtraDataID) const
@@ -271,20 +318,203 @@
 }
 
-QStringList UIExtraDataManager::suppressedMessages() const
-{
-    return extraDataStringList(GUI_SuppressMessages);
-}
-
-void UIExtraDataManager::setSuppressedMessages(const QStringList &value)
-{
-    setExtraDataStringList(GUI_SuppressMessages, value);
-}
-
-QStringList UIExtraDataManager::messagesWithInvertedOption() const
-{
-    return extraDataStringList(GUI_InvertMessageOption);
-}
-
-WizardMode UIExtraDataManager::modeForWizard(WizardType type)
+QRect UIExtraDataManager::selectorWindowGeometry(QWidget *pWidget) const
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_LastSelectorWindowPosition);
+
+    /* Parse loaded data: */
+    int iX = 0, iY = 0, iW = 0, iH = 0;
+    bool fOk = data.size() >= 4;
+    do
+    {
+        if (!fOk) break;
+        iX = data[0].toInt(&fOk);
+        if (!fOk) break;
+        iY = data[1].toInt(&fOk);
+        if (!fOk) break;
+        iW = data[2].toInt(&fOk);
+        if (!fOk) break;
+        iH = data[3].toInt(&fOk);
+    }
+    while (0);
+
+    /* Use geometry (loaded or default): */
+    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(0, 0, 770, 550);
+
+    /* Take widget into account: */
+    if (pWidget)
+        geometry.setSize(geometry.size().expandedTo(pWidget->minimumSizeHint()));
+
+    /* Get screen-geometry [of screen with point (iX, iY) if possible]: */
+    const QRect screenGeometry = fOk ? QApplication::desktop()->availableGeometry(QPoint(iX, iY)) :
+                                       QApplication::desktop()->availableGeometry();
+
+    /* Make sure resulting geometry is within current bounds: */
+    geometry = geometry.intersected(screenGeometry);
+
+    /* Move default-geometry to screen-geometry' center: */
+    if (!fOk)
+        geometry.moveCenter(screenGeometry.center());
+
+    /* Return result: */
+    return geometry;
+}
+
+bool UIExtraDataManager::selectorWindowShouldBeMaximized() const
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_LastSelectorWindowPosition);
+
+    /* Make sure 5th item has required value: */
+    return data.size() == 5 && data[4] == GUI_Geometry_State_Max;
+}
+
+void UIExtraDataManager::setSelectorWindowGeometry(const QRect &geometry, bool fMaximized)
+{
+    /* Serialize passed values: */
+    QStringList data;
+    data << QString::number(geometry.x());
+    data << QString::number(geometry.y());
+    data << QString::number(geometry.width());
+    data << QString::number(geometry.height());
+    if (fMaximized)
+        data << GUI_Geometry_State_Max;
+
+    /* Re-cache corresponding extra-data: */
+    setExtraDataStringList(GUI_LastSelectorWindowPosition, data);
+}
+
+QList<int> UIExtraDataManager::selectorWindowSplitterHints() const
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_SplitterSizes);
+
+    /* Parse loaded data: */
+    QList<int> hints;
+    hints << (data.size() > 0 ? data[0].toInt() : 0);
+    hints << (data.size() > 1 ? data[1].toInt() : 0);
+
+    /* Return hints: */
+    return hints;
+}
+
+void UIExtraDataManager::setSelectorWindowSplitterHints(const QList<int> &hints)
+{
+    /* Parse passed hints: */
+    QStringList data;
+    data << (hints.size() > 0 ? QString::number(hints[0]) : QString());
+    data << (hints.size() > 1 ? QString::number(hints[1]) : QString());
+
+    /* Re-cache corresponding extra-data: */
+    setExtraDataStringList(GUI_SplitterSizes, data);
+}
+
+bool UIExtraDataManager::selectorWindowToolBarVisible() const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_Toolbar);
+}
+
+void UIExtraDataManager::setSelectorWindowToolBarVisible(bool fVisible)
+{
+    /* 'False' if feature restricted, null-string otherwise: */
+    setExtraDataString(GUI_Toolbar, toFeatureRestricted(!fVisible));
+}
+
+bool UIExtraDataManager::selectorWindowStatusBarVisible() const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_Statusbar);
+}
+
+void UIExtraDataManager::setSelectorWindowStatusBarVisible(bool fVisible)
+{
+    /* 'False' if feature restricted, null-string otherwise: */
+    setExtraDataString(GUI_Statusbar, toFeatureRestricted(!fVisible));
+}
+
+void UIExtraDataManager::clearSelectorWindowGroupsDefinitions()
+{
+    /* Read-only access global extra-data map: */
+    const ExtraDataMap &data = m_data[m_sstrGlobalID];
+    /* Wipe-out each the group definition record: */
+    foreach (const QString &strKey, data.keys())
+        if (strKey.startsWith(GUI_GroupDefinitions))
+            setExtraDataString(strKey, QString());
+}
+
+QStringList UIExtraDataManager::selectorWindowGroupsDefinitions(const QString &strGroupID) const
+{
+    return extraDataStringList(GUI_GroupDefinitions + strGroupID);
+}
+
+void UIExtraDataManager::setSelectorWindowGroupsDefinitions(const QString &strGroupID, const QStringList &definitions)
+{
+    setExtraDataStringList(GUI_GroupDefinitions + strGroupID, definitions);
+}
+
+QString UIExtraDataManager::selectorWindowLastItemChosen() const
+{
+    return extraDataString(GUI_LastItemSelected);
+}
+
+void UIExtraDataManager::setSelectorWindowLastItemChosen(const QString &strItemID)
+{
+    setExtraDataString(GUI_LastItemSelected, strItemID);
+}
+
+QMap<DetailsElementType, bool> UIExtraDataManager::selectorWindowDetailsElements()
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_DetailsPageBoxes);
+
+    /* Desearialize passed elements: */
+    QMap<DetailsElementType, bool> elements;
+    foreach (QString strItem, data)
+    {
+        bool fOpened = true;
+        if (strItem.endsWith("Closed", Qt::CaseInsensitive))
+        {
+            fOpened = false;
+            strItem.remove("Closed");
+        }
+        DetailsElementType type = gpConverter->fromInternalString<DetailsElementType>(strItem);
+        if (type != DetailsElementType_Invalid)
+            elements[type] = fOpened;
+    }
+
+    /* Return elements: */
+    return elements;
+}
+
+void UIExtraDataManager::setSelectorWindowDetailsElements(const QMap<DetailsElementType, bool> &elements)
+{
+    /* Prepare corresponding extra-data: */
+    QStringList data;
+
+    /* Searialize passed elements: */
+    foreach (DetailsElementType type, elements.keys())
+    {
+        QString strValue = gpConverter->toInternalString(type);
+        if (!elements[type])
+            strValue += "Closed";
+        data << strValue;
+    }
+
+    /* Re-cache corresponding extra-data: */
+    setExtraDataStringList(GUI_DetailsPageBoxes, data);
+}
+
+PreviewUpdateIntervalType UIExtraDataManager::selectorWindowPreviewUpdateInterval() const
+{
+    return gpConverter->fromInternalString<PreviewUpdateIntervalType>(extraDataString(GUI_PreviewUpdate));
+}
+
+void UIExtraDataManager::setSelectorWindowPreviewUpdateInterval(PreviewUpdateIntervalType interval)
+{
+    setExtraDataString(GUI_PreviewUpdate, gpConverter->toInternalString(interval));
+}
+
+WizardMode UIExtraDataManager::modeForWizardType(WizardType type)
 {
     /* Some wizard use only 'basic' mode: */
@@ -296,10 +526,10 @@
 }
 
-void UIExtraDataManager::setModeForWizard(WizardType type, WizardMode mode)
+void UIExtraDataManager::setModeForWizardType(WizardType type, WizardMode mode)
 {
     /* Get wizard name: */
     const QString strWizardName = gpConverter->toInternalString(type);
     /* Get current value: */
-    QStringList oldValue = extraDataStringList(GUI_HideDescriptionForWizards);
+    const QStringList oldValue = extraDataStringList(GUI_HideDescriptionForWizards);
     QStringList newValue = oldValue;
     /* Include wizard-name into expert-mode wizard list if necessary: */
@@ -314,8 +544,65 @@
 }
 
-QRect UIExtraDataManager::selectorWindowGeometry(QWidget *pWidget) const
-{
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_LastSelectorWindowPosition);
+bool UIExtraDataManager::showMachineInSelectorChooser(const QString &strID) const
+{
+    /* 'True' unless 'restriction' feature allowed: */
+    return !isFeatureAllowed(GUI_HideFromManager, strID);
+}
+
+bool UIExtraDataManager::showMachineInSelectorDetails(const QString &strID) const
+{
+    /* 'True' unless 'restriction' feature allowed: */
+    return !isFeatureAllowed(GUI_HideDetails, strID);
+}
+
+bool UIExtraDataManager::machineReconfigurationEnabled(const QString &strID) const
+{
+    /* 'True' unless 'restriction' feature allowed: */
+    return !isFeatureAllowed(GUI_PreventReconfiguration, strID);
+}
+
+bool UIExtraDataManager::machineSnapshotOperationsEnabled(const QString &strID) const
+{
+    /* 'True' unless 'restriction' feature allowed: */
+    return !isFeatureAllowed(GUI_PreventSnapshotOperations, strID);
+}
+
+bool UIExtraDataManager::machineFirstTimeStarted(const QString &strID) const
+{
+    /* 'True' only if feature is allowed: */
+    return isFeatureAllowed(GUI_FirstRun, strID);
+}
+
+void UIExtraDataManager::setMachineFirstTimeStarted(bool fFirstTimeStarted, const QString &strID)
+{
+    /* 'True' if feature allowed, null-string otherwise: */
+    setExtraDataString(GUI_FirstRun, toFeatureAllowed(fFirstTimeStarted), strID);
+}
+
+#ifndef Q_WS_MAC
+QStringList UIExtraDataManager::machineWindowIconNames(const QString &strID) const
+{
+    return extraDataStringList(GUI_MachineWindowIcons, strID);
+}
+
+QString UIExtraDataManager::machineWindowNamePostfix(const QString &strID) const
+{
+    return extraDataString(GUI_MachineWindowNamePostfix, strID);
+}
+#endif /* !Q_WS_MAC */
+
+QRect UIExtraDataManager::machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID) const
+{
+    /* Choose corresponding key: */
+    QString strKey;
+    switch (visualStateType)
+    {
+        case UIVisualStateType_Normal: strKey = extraDataKeyPerScreen(GUI_LastNormalWindowPosition, uScreenIndex); break;
+        case UIVisualStateType_Scale:  strKey = extraDataKeyPerScreen(GUI_LastScaleWindowPosition, uScreenIndex); break;
+        default: AssertFailedReturn(QRect());
+    }
+
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(strKey, strID);
 
     /* Parse loaded data: */
@@ -335,30 +622,21 @@
     while (0);
 
-    /* Use geometry (loaded or default): */
-    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(0, 0, 770, 550);
-
-    /* Take widget into account: */
-    if (pWidget)
-        geometry.setSize(geometry.size().expandedTo(pWidget->minimumSizeHint()));
-
-    /* Get screen-geometry [of screen with point (iX, iY) if possible]: */
-    const QRect screenGeometry = fOk ? QApplication::desktop()->availableGeometry(QPoint(iX, iY)) :
-                                       QApplication::desktop()->availableGeometry();
-
-    /* Make sure resulting geometry is within current bounds: */
-    geometry = geometry.intersected(screenGeometry);
-
-    /* Move default-geometry to screen-geometry' center: */
-    if (!fOk)
-        geometry.moveCenter(screenGeometry.center());
-
-    /* Return result: */
-    return geometry;
-}
-
-bool UIExtraDataManager::isSelectorWindowShouldBeMaximized() const
-{
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_LastSelectorWindowPosition);
+    /* Return geometry (loaded or null): */
+    return fOk ? QRect(iX, iY, iW, iH) : QRect();
+}
+
+bool UIExtraDataManager::machineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID) const
+{
+    /* Choose corresponding key: */
+    QString strKey;
+    switch (visualStateType)
+    {
+        case UIVisualStateType_Normal: strKey = extraDataKeyPerScreen(GUI_LastNormalWindowPosition, uScreenIndex); break;
+        case UIVisualStateType_Scale:  strKey = extraDataKeyPerScreen(GUI_LastScaleWindowPosition, uScreenIndex); break;
+        default: AssertFailedReturn(false);
+    }
+
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(strKey, strID);
 
     /* Make sure 5th item has required value: */
@@ -366,6 +644,15 @@
 }
 
-void UIExtraDataManager::setSelectorWindowGeometry(const QRect &geometry, bool fMaximized)
-{
+void UIExtraDataManager::setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QString &strID)
+{
+    /* Choose corresponding key: */
+    QString strKey;
+    switch (visualStateType)
+    {
+        case UIVisualStateType_Normal: strKey = extraDataKeyPerScreen(GUI_LastNormalWindowPosition, uScreenIndex); break;
+        case UIVisualStateType_Scale:  strKey = extraDataKeyPerScreen(GUI_LastScaleWindowPosition, uScreenIndex); break;
+        default: AssertFailedReturnVoid();
+    }
+
     /* Serialize passed values: */
     QStringList data;
@@ -378,159 +665,392 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(GUI_LastSelectorWindowPosition, data);
-}
-
-QList<int> UIExtraDataManager::selectorWindowSplitterHints() const
-{
-    /* Load corresponding extra-data list: */
-    const QStringList data = extraDataStringList(GUI_SplitterSizes);
+    setExtraDataStringList(strKey, data, strID);
+}
+
+RuntimeMenuType UIExtraDataManager::restrictedRuntimeMenuTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuType result = RuntimeMenuType_Invalid;
+    /* Get restricted runtime-menu-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMenus, strID))
+    {
+        RuntimeMenuType value = gpConverter->fromInternalString<RuntimeMenuType>(strValue);
+        if (value != RuntimeMenuType_Invalid)
+            result = static_cast<RuntimeMenuType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+
+#ifdef Q_WS_MAC
+RuntimeMenuApplicationActionType UIExtraDataManager::restrictedRuntimeMenuApplicationActionTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuApplicationActionType result = RuntimeMenuApplicationActionType_Invalid;
+    /* Get restricted runtime-application-menu action-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeApplicationMenuActions, strID))
+    {
+        RuntimeMenuApplicationActionType value = gpConverter->fromInternalString<RuntimeMenuApplicationActionType>(strValue);
+        if (value != RuntimeMenuApplicationActionType_Invalid)
+            result = static_cast<RuntimeMenuApplicationActionType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+#endif /* Q_WS_MAC */
+
+RuntimeMenuMachineActionType UIExtraDataManager::restrictedRuntimeMenuMachineActionTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuMachineActionType result = RuntimeMenuMachineActionType_Invalid;
+    /* Get restricted runtime-machine-menu action-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMachineMenuActions, strID))
+    {
+        RuntimeMenuMachineActionType value = gpConverter->fromInternalString<RuntimeMenuMachineActionType>(strValue);
+        if (value != RuntimeMenuMachineActionType_Invalid)
+            result = static_cast<RuntimeMenuMachineActionType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+
+RuntimeMenuViewActionType UIExtraDataManager::restrictedRuntimeMenuViewActionTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuViewActionType result = RuntimeMenuViewActionType_Invalid;
+    /* Get restricted runtime-view-menu action-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeViewMenuActions, strID))
+    {
+        RuntimeMenuViewActionType value = gpConverter->fromInternalString<RuntimeMenuViewActionType>(strValue);
+        if (value != RuntimeMenuViewActionType_Invalid)
+            result = static_cast<RuntimeMenuViewActionType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+
+RuntimeMenuDevicesActionType UIExtraDataManager::restrictedRuntimeMenuDevicesActionTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuDevicesActionType result = RuntimeMenuDevicesActionType_Invalid;
+    /* Get restricted runtime-devices-menu action-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDevicesMenuActions, strID))
+    {
+        RuntimeMenuDevicesActionType value = gpConverter->fromInternalString<RuntimeMenuDevicesActionType>(strValue);
+        if (value != RuntimeMenuDevicesActionType_Invalid)
+            result = static_cast<RuntimeMenuDevicesActionType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+
+#ifdef VBOX_WITH_DEBUGGER_GUI
+RuntimeMenuDebuggerActionType UIExtraDataManager::restrictedRuntimeMenuDebuggerActionTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuDebuggerActionType result = RuntimeMenuDebuggerActionType_Invalid;
+    /* Get restricted runtime-debugger-menu action-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDebuggerMenuActions, strID))
+    {
+        RuntimeMenuDebuggerActionType value = gpConverter->fromInternalString<RuntimeMenuDebuggerActionType>(strValue);
+        if (value != RuntimeMenuDebuggerActionType_Invalid)
+            result = static_cast<RuntimeMenuDebuggerActionType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+#endif /* VBOX_WITH_DEBUGGER_GUI */
+
+RuntimeMenuHelpActionType UIExtraDataManager::restrictedRuntimeMenuHelpActionTypes(const QString &strID) const
+{
+    /* Prepare result: */
+    RuntimeMenuHelpActionType result = RuntimeMenuHelpActionType_Invalid;
+    /* Get restricted runtime-help-menu action-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeHelpMenuActions, strID))
+    {
+        RuntimeMenuHelpActionType value = gpConverter->fromInternalString<RuntimeMenuHelpActionType>(strValue);
+        if (value != RuntimeMenuHelpActionType_Invalid)
+            result = static_cast<RuntimeMenuHelpActionType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+
+UIVisualStateType UIExtraDataManager::restrictedVisualStates(const QString &strID) const
+{
+    /* Prepare result: */
+    UIVisualStateType result = UIVisualStateType_Invalid;
+    /* Get restricted visual-state-types: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedVisualStates, strID))
+    {
+        UIVisualStateType value = gpConverter->fromInternalString<UIVisualStateType>(strValue);
+        if (value != UIVisualStateType_Invalid)
+            result = static_cast<UIVisualStateType>(result | value);
+    }
+    /* Return result: */
+    return result;
+}
+
+UIVisualStateType UIExtraDataManager::requestedVisualState(const QString &strID) const
+{
+    if (isFeatureAllowed(GUI_Fullscreen, strID)) return UIVisualStateType_Fullscreen;
+    if (isFeatureAllowed(GUI_Seamless, strID)) return UIVisualStateType_Seamless;
+    if (isFeatureAllowed(GUI_Scale, strID)) return UIVisualStateType_Scale;
+    return UIVisualStateType_Normal;
+}
+
+void UIExtraDataManager::setRequestedVisualState(UIVisualStateType visualState, const QString &strID)
+{
+    setExtraDataString(GUI_Fullscreen, toFeatureAllowed(visualState == UIVisualStateType_Fullscreen), strID);
+    setExtraDataString(GUI_Seamless, toFeatureAllowed(visualState == UIVisualStateType_Seamless), strID);
+    setExtraDataString(GUI_Scale, toFeatureAllowed(visualState == UIVisualStateType_Scale), strID);
+}
+
+bool UIExtraDataManager::guestScreenAutoResizeEnabled(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_AutoresizeGuest, strID);
+}
+
+void UIExtraDataManager::setGuestScreenAutoResizeEnabled(bool fEnabled, const QString &strID)
+{
+    /* 'False' if feature restricted, null-string otherwise: */
+    setExtraDataString(GUI_AutoresizeGuest, toFeatureRestricted(!fEnabled), strID);
+}
+
+QSize UIExtraDataManager::lastGuestSizeHint(ulong uScreenIndex, const QString &strID) const
+{
+    /* Choose corresponding key: */
+    const QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHint, uScreenIndex);
+
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(strKey, strID);
 
     /* Parse loaded data: */
-    QList<int> hints;
-    hints << (data.size() > 0 ? data[0].toInt() : 0);
-    hints << (data.size() > 1 ? data[1].toInt() : 0);
-
-    /* Return hints: */
-    return hints;
-}
-
-void UIExtraDataManager::setSelectorWindowSplitterHints(const QList<int> &hints)
-{
-    /* Parse passed hints: */
+    int iW = 0, iH = 0;
+    bool fOk = data.size() == 2;
+    do
+    {
+        if (!fOk) break;
+        iW = data[0].toInt(&fOk);
+        if (!fOk) break;
+        iH = data[1].toInt(&fOk);
+    }
+    while (0);
+
+    /* Return size (loaded or invalid): */
+    return fOk ? QSize(iW, iH) : QSize();
+}
+
+void UIExtraDataManager::setLastGuestSizeHint(ulong uScreenIndex, const QSize &sizeHint, const QString &strID)
+{
+    /* Choose corresponding key: */
+    const QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHint, uScreenIndex);
+
+    /* Serialize passed values: */
     QStringList data;
-    data << (hints.size() > 0 ? QString::number(hints[0]) : QString());
-    data << (hints.size() > 1 ? QString::number(hints[1]) : QString());
+    data << QString::number(sizeHint.width());
+    data << QString::number(sizeHint.height());
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(GUI_SplitterSizes, data);
-}
-
-bool UIExtraDataManager::selectorWindowToolBarVisible() const
+    setExtraDataStringList(strKey, data, strID);
+}
+
+bool UIExtraDataManager::wasLastGuestSizeHintForFullScreen(ulong uScreenIndex, const QString &strID) const
+{
+    /* Choose corresponding key: */
+    const QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHintWasFullscreen, uScreenIndex);
+
+    /* 'True' only if feature is allowed: */
+    return isFeatureAllowed(strKey, strID);
+}
+
+void UIExtraDataManager::markLastGuestSizeHintAsFullScreen(ulong uScreenIndex, bool fWas, const QString &strID)
+{
+    /* Choose corresponding key: */
+    const QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHintWasFullscreen, uScreenIndex);
+
+    /* 'True' if feature allowed, null-string otherwise: */
+    return setExtraDataString(strKey, toFeatureAllowed(fWas), strID);
+}
+
+int UIExtraDataManager::hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QString &strID)
+{
+    /* Choose corresponding key: */
+    const QString strKey = extraDataKeyPerScreen(GUI_VirtualScreenToHostScreen, iGuestScreenIndex, true);
+
+    /* Get value and convert it to index: */
+    const QString strValue = extraDataString(strKey, strID);
+    bool fOk = false;
+    const int iHostScreenIndex = strValue.toULong(&fOk);
+
+    /* Return corresponding index: */
+    return fOk ? iHostScreenIndex : -1;
+}
+
+void UIExtraDataManager::setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QString &strID)
+{
+    /* Choose corresponding key: */
+    const QString strKey = extraDataKeyPerScreen(GUI_VirtualScreenToHostScreen, iGuestScreenIndex, true);
+
+    /* Save passed index under corresponding value: */
+    setExtraDataString(strKey, iHostScreenIndex != -1 ? QString::number(iHostScreenIndex) : QString(), strID);
+}
+
+bool UIExtraDataManager::autoMountGuestScreensEnabled(const QString &strID) const
+{
+    /* Show only if 'allowed' flag is set: */
+    return isFeatureAllowed(GUI_AutomountGuestScreens, strID);
+}
+
+#ifdef VBOX_WITH_VIDEOHWACCEL
+bool UIExtraDataManager::useLinearStretch(const QString &strID) const
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Toolbar);
-}
-
-void UIExtraDataManager::setSelectorWindowToolBarVisible(bool fVisible)
-{
-    /* Remember if feature restricted: */
-    setExtraDataString(GUI_Toolbar, toFeatureRestricted(!fVisible));
-}
-
-bool UIExtraDataManager::selectorWindowStatusBarVisible() const
+    return !isFeatureRestricted(GUI_Accelerate2D_StretchLinear, strID);
+}
+
+bool UIExtraDataManager::usePixelFormatYV12(const QString &strID) const
 {
     /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Statusbar);
-}
-
-void UIExtraDataManager::setSelectorWindowStatusBarVisible(bool fVisible)
-{
-    /* Remember if feature restricted: */
-    setExtraDataString(GUI_Statusbar, toFeatureRestricted(!fVisible));
-}
-
-void UIExtraDataManager::clearSelectorWindowGroupsDefinitions()
-{
-    /* Read-only access global extra-data map: */
-    const ExtraDataMap &data = m_data[m_sstrGlobalID];
-    /* Wipe-out each the group definition record: */
-    foreach (const QString &strKey, data.keys())
-        if (strKey.startsWith(GUI_GroupDefinitions))
-            setExtraDataString(strKey, QString());
-}
-
-QStringList UIExtraDataManager::selectorWindowGroupsDefinitions(const QString &strGroupID) const
-{
-    return extraDataStringList(GUI_GroupDefinitions + strGroupID);
-}
-
-void UIExtraDataManager::setSelectorWindowGroupsDefinitions(const QString &strGroupID, const QStringList &definitions)
-{
-    setExtraDataStringList(GUI_GroupDefinitions + strGroupID, definitions);
-}
-
-QString UIExtraDataManager::selectorWindowLastItemChosen() const
-{
-    return extraDataString(GUI_LastItemSelected);
-}
-
-void UIExtraDataManager::setSelectorWindowLastItemChosen(const QString &strItemID)
-{
-    setExtraDataString(GUI_LastItemSelected, strItemID);
-}
-
-QMap<DetailsElementType, bool> UIExtraDataManager::selectorWindowDetailsElements()
-{
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_DetailsPageBoxes);
-
-    /* Prepare elements: */
-    QMap<DetailsElementType, bool> elements;
-    /* Enumerate all the data items: */
-    foreach (QString strItem, data)
-    {
-        bool fOpened = true;
-        if (strItem.endsWith("Closed", Qt::CaseInsensitive))
-        {
-            fOpened = false;
-            strItem.remove("Closed");
-        }
-        DetailsElementType type = gpConverter->fromInternalString<DetailsElementType>(strItem);
-        if (type != DetailsElementType_Invalid)
-            elements[type] = fOpened;
-    }
-
-    /* Return elements: */
-    return elements;
-}
-
-void UIExtraDataManager::setSelectorWindowDetailsElements(const QMap<DetailsElementType, bool> &elements)
-{
-    /* Prepare corresponding extra-data: */
-    QStringList data;
-
-    /* Searialize passed elements: */
-    foreach (DetailsElementType type, elements.keys())
-    {
-        QString strValue = gpConverter->toInternalString(type);
-        if (!elements[type])
-            strValue += "Closed";
-        data << strValue;
-    }
-
-    /* Save corresponding extra-data: */
-    setExtraDataStringList(GUI_DetailsPageBoxes, data);
-}
-
-PreviewUpdateIntervalType UIExtraDataManager::selectorWindowPreviewUpdateInterval() const
-{
-    return gpConverter->fromInternalString<PreviewUpdateIntervalType>(extraDataString(GUI_PreviewUpdate));
-}
-
-void UIExtraDataManager::setSelectorWindowPreviewUpdateInterval(PreviewUpdateIntervalType interval)
-{
-    setExtraDataString(GUI_PreviewUpdate, gpConverter->toInternalString(interval));
-}
-
-#ifdef VBOX_WITH_DEBUGGER_GUI
-QString UIExtraDataManager::debugFlagValue(const QString &strDebugFlagKey) const
-{
-    return extraDataString(strDebugFlagKey).toLower().trimmed();
-}
-#endif /* VBOX_WITH_DEBUGGER_GUI */
-
-QRect UIExtraDataManager::machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strId) const
-{
-    /* Choose corresponding key: */
-    QString strKey;
-    switch (visualStateType)
-    {
-        case UIVisualStateType_Normal: strKey = extraDataKeyPerScreen(GUI_LastNormalWindowPosition, uScreenIndex); break;
-        case UIVisualStateType_Scale:  strKey = extraDataKeyPerScreen(GUI_LastScaleWindowPosition, uScreenIndex); break;
-        default: AssertFailedReturn(QRect());
-    }
-
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(strKey, strId);
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYV12, strID);
+}
+
+bool UIExtraDataManager::usePixelFormatUYVY(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatUYVY, strID);
+}
+
+bool UIExtraDataManager::usePixelFormatYUY2(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYUY2, strID);
+}
+
+bool UIExtraDataManager::usePixelFormatAYUV(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_Accelerate2D_PixformatAYUV, strID);
+}
+#endif /* VBOX_WITH_VIDEOHWACCEL */
+
+HiDPIOptimizationType UIExtraDataManager::hiDPIOptimizationType(const QString &strID) const
+{
+    return gpConverter->fromInternalString<HiDPIOptimizationType>(extraDataString(GUI_HiDPI_Optimization, strID));
+}
+
+bool UIExtraDataManager::miniToolbarEnabled(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_ShowMiniToolBar, strID);
+}
+
+void UIExtraDataManager::setMiniToolbarEnabled(bool fEnabled, const QString &strID)
+{
+    /* 'False' if feature restricted, null-string otherwise: */
+    setExtraDataString(GUI_ShowMiniToolBar, toFeatureRestricted(!fEnabled), strID);
+}
+
+bool UIExtraDataManager::autoHideMiniToolbar(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_MiniToolBarAutoHide, strID);
+}
+
+void UIExtraDataManager::setAutoHideMiniToolbar(bool fAutoHide, const QString &strID)
+{
+    /* 'False' if feature restricted, null-string otherwise: */
+    setExtraDataString(GUI_MiniToolBarAutoHide, toFeatureRestricted(!fAutoHide), strID);
+}
+
+Qt::AlignmentFlag UIExtraDataManager::miniToolbarAlignment(const QString &strID) const
+{
+    /* Return Qt::AlignBottom unless MiniToolbarAlignment_Top specified separately: */
+    switch (gpConverter->fromInternalString<MiniToolbarAlignment>(extraDataString(GUI_MiniToolBarAlignment, strID)))
+    {
+        case MiniToolbarAlignment_Top: return Qt::AlignTop;
+        default: break;
+    }
+    return Qt::AlignBottom;
+}
+
+void UIExtraDataManager::setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QString &strID)
+{
+    /* Remove record unless Qt::AlignTop specified separately: */
+    switch (alignment)
+    {
+        case Qt::AlignTop: setExtraDataString(GUI_MiniToolBarAlignment, gpConverter->toInternalString(MiniToolbarAlignment_Top), strID); return;
+        default: break;
+    }
+    setExtraDataString(GUI_MiniToolBarAlignment, QString(), strID);
+}
+
+QList<IndicatorType> UIExtraDataManager::restrictedStatusBarIndicators(const QString &strID) const
+{
+    /* Prepare result: */
+    QList<IndicatorType> result;
+    /* Get restricted status-bar-indicators: */
+    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedStatusBarIndicators, strID))
+    {
+        IndicatorType value = gpConverter->fromInternalString<IndicatorType>(strValue);
+        if (value != IndicatorType_Invalid)
+            result << value;
+    }
+    /* Return result: */
+    return result;
+}
+
+#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 */
+
+bool UIExtraDataManager::passCADtoGuest(const QString &strID) const
+{
+    /* 'False' unless feature allowed: */
+    return isFeatureAllowed(GUI_PassCAD, strID);
+}
+
+GuruMeditationHandlerType UIExtraDataManager::guruMeditationHandlerType(const QString &strID) const
+{
+    return gpConverter->fromInternalString<GuruMeditationHandlerType>(extraDataString(GUI_GuruMeditationHandler, strID));
+}
+
+bool UIExtraDataManager::hidLedsSyncState(const QString &strID) const
+{
+    /* 'True' unless feature restricted: */
+    return !isFeatureRestricted(GUI_HidLedsSync, strID);
+}
+
+QRect UIExtraDataManager::informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID) const
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_InformationWindowGeometry, strID);
 
     /* Parse loaded data: */
@@ -550,21 +1070,30 @@
     while (0);
 
-    /* Return geometry (loaded or null): */
-    return fOk ? QRect(iX, iY, iW, iH) : QRect();
-}
-
-bool UIExtraDataManager::isMachineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strId) const
-{
-    /* Choose corresponding key: */
-    QString strKey;
-    switch (visualStateType)
-    {
-        case UIVisualStateType_Normal: strKey = extraDataKeyPerScreen(GUI_LastNormalWindowPosition, uScreenIndex); break;
-        case UIVisualStateType_Scale:  strKey = extraDataKeyPerScreen(GUI_LastScaleWindowPosition, uScreenIndex); break;
-        default: AssertFailedReturn(false);
-    }
-
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(strKey, strId);
+    /* Use geometry (loaded or default): */
+    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(0, 0, 600, 450);
+
+    /* Take hint-widget into account: */
+    if (pWidget)
+        geometry.setSize(geometry.size().expandedTo(pWidget->minimumSizeHint()));
+
+    /* Get screen-geometry [of screen with point (iX, iY) if possible]: */
+    const QRect screenGeometry = fOk ? QApplication::desktop()->availableGeometry(QPoint(iX, iY)) :
+                                       QApplication::desktop()->availableGeometry();
+
+    /* Make sure resulting geometry is within current bounds: */
+    geometry = geometry.intersected(screenGeometry);
+
+    /* Move default-geometry to pParentWidget' geometry center: */
+    if (!fOk && pParentWidget)
+        geometry.moveCenter(pParentWidget->geometry().center());
+
+    /* Return result: */
+    return geometry;
+}
+
+bool UIExtraDataManager::informationWindowShouldBeMaximized(const QString &strID) const
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_InformationWindowGeometry, strID);
 
     /* Make sure 5th item has required value: */
@@ -572,15 +1101,6 @@
 }
 
-void UIExtraDataManager::setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QString &strId)
-{
-    /* Choose corresponding key: */
-    QString strKey;
-    switch (visualStateType)
-    {
-        case UIVisualStateType_Normal: strKey = extraDataKeyPerScreen(GUI_LastNormalWindowPosition, uScreenIndex); break;
-        case UIVisualStateType_Scale:  strKey = extraDataKeyPerScreen(GUI_LastScaleWindowPosition, uScreenIndex); break;
-        default: AssertFailedReturnVoid();
-    }
-
+void UIExtraDataManager::setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QString &strID)
+{
     /* Serialize passed values: */
     QStringList data;
@@ -593,530 +1113,6 @@
 
     /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(strKey, data, strId);
-}
-
-QSize UIExtraDataManager::lastGuestSizeHint(ulong uScreenIndex, const QString &strId) const
-{
-    /* Choose corresponding key: */
-    QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHint, uScreenIndex);
-
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(strKey, strId);
-
-    /* Parse loaded data: */
-    int iW = 0, iH = 0;
-    bool fOk = data.size() == 2;
-    do
-    {
-        if (!fOk) break;
-        iW = data[0].toInt(&fOk);
-        if (!fOk) break;
-        iH = data[1].toInt(&fOk);
-    }
-    while (0);
-
-    /* Return size (loaded or invalid): */
-    return fOk ? QSize(iW, iH) : QSize();
-}
-
-void UIExtraDataManager::setLastGuestSizeHint(ulong uScreenIndex, const QSize &size, const QString &strId)
-{
-    /* Choose corresponding key: */
-    QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHint, uScreenIndex);
-
-    /* Serialize passed values: */
-    QStringList data;
-    data << QString::number(size.width());
-    data << QString::number(size.height());
-
-    /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(strKey, data, strId);
-}
-
-bool UIExtraDataManager::wasLastGuestSizeHintForFullScreen(ulong uScreenIndex, const QString &strId) const
-{
-    /* Choose corresponding key: */
-    const QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHintWasFullscreen, uScreenIndex);
-
-    /* True only if was stated directly: */
-    return isFeatureAllowed(strKey, strId);
-}
-
-void UIExtraDataManager::markLastGuestSizeHintAsFullScreen(ulong uScreenIndex, bool fWas, const QString &strId)
-{
-    /* Choose corresponding key: */
-    const QString strKey = extraDataKeyPerScreen(GUI_LastGuestSizeHintWasFullscreen, uScreenIndex);
-
-    /* State directly only if was true: */
-    return setExtraDataString(strKey, toFeatureAllowed(fWas), strId);
-}
-
-bool UIExtraDataManager::isFirstRun(const QString &strId) const
-{
-    return isFeatureAllowed(GUI_FirstRun, strId);
-}
-
-void UIExtraDataManager::setFirstRun(bool fIsFirstRun, const QString &strId)
-{
-    setExtraDataString(GUI_FirstRun, toFeatureAllowed(fIsFirstRun), strId);
-}
-
-bool UIExtraDataManager::shouldWeShowMachine(const QString &strID) const
-{
-    /* Show unless 'forbidden' flag is set: */
-    return !isFeatureAllowed(GUI_HideFromManager, strID);
-}
-
-bool UIExtraDataManager::shouldWeShowMachineDetails(const QString &strID) const
-{
-    /* Show unless 'forbidden' flag is set: */
-    return !isFeatureAllowed(GUI_HideDetails, strID);
-}
-
-bool UIExtraDataManager::shouldWeAllowMachineReconfiguration(const QString &strID) const
-{
-    /* Show unless 'forbidden' flag is set: */
-    return !isFeatureAllowed(GUI_PreventReconfiguration, strID);
-}
-
-bool UIExtraDataManager::shouldWeAllowMachineSnapshotOperations(const QString &strID) const
-{
-    /* Show unless 'forbidden' flag is set: */
-    return !isFeatureAllowed(GUI_PreventSnapshotOperations, strID);
-}
-
-bool UIExtraDataManager::shouldWeAutoMountGuestScreens(const QString &strID) const
-{
-    /* Show only if 'allowed' flag is set: */
-    return isFeatureAllowed(GUI_AutomountGuestScreens, strID);
-}
-
-RuntimeMenuType UIExtraDataManager::restrictedRuntimeMenuTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuType result = RuntimeMenuType_Invalid;
-    /* Load restricted runtime-menu-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMenus, strID))
-    {
-        RuntimeMenuType value = gpConverter->fromInternalString<RuntimeMenuType>(strValue);
-        if (value != RuntimeMenuType_Invalid)
-            result = static_cast<RuntimeMenuType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-
-#ifdef Q_WS_MAC
-RuntimeMenuApplicationActionType UIExtraDataManager::restrictedRuntimeMenuApplicationActionTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuApplicationActionType result = RuntimeMenuApplicationActionType_Invalid;
-    /* Load restricted runtime-application-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeApplicationMenuActions, strID))
-    {
-        RuntimeMenuApplicationActionType value = gpConverter->fromInternalString<RuntimeMenuApplicationActionType>(strValue);
-        if (value != RuntimeMenuApplicationActionType_Invalid)
-            result = static_cast<RuntimeMenuApplicationActionType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-#endif /* Q_WS_MAC */
-
-RuntimeMenuMachineActionType UIExtraDataManager::restrictedRuntimeMenuMachineActionTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuMachineActionType result = RuntimeMenuMachineActionType_Invalid;
-    /* Load restricted runtime-machine-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeMachineMenuActions, strID))
-    {
-        RuntimeMenuMachineActionType value = gpConverter->fromInternalString<RuntimeMenuMachineActionType>(strValue);
-        if (value != RuntimeMenuMachineActionType_Invalid)
-            result = static_cast<RuntimeMenuMachineActionType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-
-RuntimeMenuViewActionType UIExtraDataManager::restrictedRuntimeMenuViewActionTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuViewActionType result = RuntimeMenuViewActionType_Invalid;
-    /* Load restricted runtime-view-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeViewMenuActions, strID))
-    {
-        RuntimeMenuViewActionType value = gpConverter->fromInternalString<RuntimeMenuViewActionType>(strValue);
-        if (value != RuntimeMenuViewActionType_Invalid)
-            result = static_cast<RuntimeMenuViewActionType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-
-RuntimeMenuDevicesActionType UIExtraDataManager::restrictedRuntimeMenuDevicesActionTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuDevicesActionType result = RuntimeMenuDevicesActionType_Invalid;
-    /* Load restricted runtime-devices-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDevicesMenuActions, strID))
-    {
-        RuntimeMenuDevicesActionType value = gpConverter->fromInternalString<RuntimeMenuDevicesActionType>(strValue);
-        if (value != RuntimeMenuDevicesActionType_Invalid)
-            result = static_cast<RuntimeMenuDevicesActionType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-
-#ifdef VBOX_WITH_DEBUGGER_GUI
-RuntimeMenuDebuggerActionType UIExtraDataManager::restrictedRuntimeMenuDebuggerActionTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuDebuggerActionType result = RuntimeMenuDebuggerActionType_Invalid;
-    /* Load restricted runtime-debugger-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeDebuggerMenuActions, strID))
-    {
-        RuntimeMenuDebuggerActionType value = gpConverter->fromInternalString<RuntimeMenuDebuggerActionType>(strValue);
-        if (value != RuntimeMenuDebuggerActionType_Invalid)
-            result = static_cast<RuntimeMenuDebuggerActionType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-#endif /* VBOX_WITH_DEBUGGER_GUI */
-
-RuntimeMenuHelpActionType UIExtraDataManager::restrictedRuntimeMenuHelpActionTypes(const QString &strID) const
-{
-    /* Prepare result: */
-    RuntimeMenuHelpActionType result = RuntimeMenuHelpActionType_Invalid;
-    /* Load restricted runtime-help-menu action-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedRuntimeHelpMenuActions, strID))
-    {
-        RuntimeMenuHelpActionType value = gpConverter->fromInternalString<RuntimeMenuHelpActionType>(strValue);
-        if (value != RuntimeMenuHelpActionType_Invalid)
-            result = static_cast<RuntimeMenuHelpActionType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-
-UIVisualStateType UIExtraDataManager::restrictedVisualStates(const QString &strID) const
-{
-    /* Prepare result: */
-    UIVisualStateType result = UIVisualStateType_Invalid;
-    /* Load restricted visual-state-types: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedVisualStates, strID))
-    {
-        UIVisualStateType value = gpConverter->fromInternalString<UIVisualStateType>(strValue);
-        if (value != UIVisualStateType_Invalid)
-            result = static_cast<UIVisualStateType>(result | value);
-    }
-    /* Return result: */
-    return result;
-}
-
-UIVisualStateType UIExtraDataManager::requestedVisualState(const QString &strID) const
-{
-    if (isFeatureAllowed(GUI_Fullscreen, strID)) return UIVisualStateType_Fullscreen;
-    if (isFeatureAllowed(GUI_Seamless, strID)) return UIVisualStateType_Seamless;
-    if (isFeatureAllowed(GUI_Scale, strID)) return UIVisualStateType_Scale;
-    return UIVisualStateType_Normal;
-}
-
-void UIExtraDataManager::setRequestedVisualState(UIVisualStateType visualState, const QString &strID)
-{
-    setExtraDataString(GUI_Fullscreen, toFeatureAllowed(visualState == UIVisualStateType_Fullscreen), strID);
-    setExtraDataString(GUI_Seamless, toFeatureAllowed(visualState == UIVisualStateType_Seamless), strID);
-    setExtraDataString(GUI_Scale, toFeatureAllowed(visualState == UIVisualStateType_Scale), strID);
-}
-
-bool UIExtraDataManager::guestScreenAutoResize(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_AutoresizeGuest, strID);
-}
-
-void UIExtraDataManager::setGuestScreenAutoResize(bool fEnabled, const QString &strID)
-{
-    /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_AutoresizeGuest, toFeatureRestricted(!fEnabled), strID);
-}
-
-#ifdef VBOX_WITH_VIDEOHWACCEL
-bool UIExtraDataManager::useLinearStretch(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_StretchLinear, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatYV12(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYV12, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatUYVY(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatUYVY, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatYUY2(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatYUY2, strID);
-}
-
-bool UIExtraDataManager::usePixelFormatAYUV(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_Accelerate2D_PixformatAYUV, strID);
-}
-#endif /* VBOX_WITH_VIDEOHWACCEL */
-
-int UIExtraDataManager::hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QString &strID)
-{
-    /* Choose corresponding key: */
-    const QString strKey = extraDataKeyPerScreen(GUI_VirtualScreenToHostScreen, iGuestScreenIndex, true);
-
-    /* Load value and convert it to index: */
-    const QString strValue = extraDataString(strKey, strID);
-    bool fOk = false;
-    const int iHostScreenIndex = strValue.toULong(&fOk);
-
-    /* Return corresponding index: */
-    return fOk ? iHostScreenIndex : -1;
-}
-
-void UIExtraDataManager::setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QString &strID)
-{
-    /* Choose corresponding key: */
-    const QString strKey = extraDataKeyPerScreen(GUI_VirtualScreenToHostScreen, iGuestScreenIndex, true);
-
-    /* Save passed index under corresponding value: */
-    setExtraDataString(strKey, iHostScreenIndex != -1 ? QString::number(iHostScreenIndex) : QString(), strID);
-}
-
-QList<IndicatorType> UIExtraDataManager::restrictedStatusBarIndicators(const QString &strID) const
-{
-    /* Prepare result: */
-    QList<IndicatorType> result;
-    /* Load restricted status-bar-indicators: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedStatusBarIndicators, strID))
-    {
-        IndicatorType value = gpConverter->fromInternalString<IndicatorType>(strValue);
-        if (value != IndicatorType_Invalid)
-            result << value;
-    }
-    /* Return result: */
-    return result;
-}
-
-QList<GlobalSettingsPageType> UIExtraDataManager::restrictedGlobalSettingsPages() const
-{
-    /* Prepare result: */
-    QList<GlobalSettingsPageType> result;
-    /* Load restricted global-settings-pages: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedGlobalSettingsPages))
-    {
-        GlobalSettingsPageType value = gpConverter->fromInternalString<GlobalSettingsPageType>(strValue);
-        if (value != GlobalSettingsPageType_Invalid)
-            result << value;
-    }
-    /* Return result: */
-    return result;
-}
-
-QList<MachineSettingsPageType> UIExtraDataManager::restrictedMachineSettingsPages(const QString &strID) const
-{
-    /* Prepare result: */
-    QList<MachineSettingsPageType> result;
-    /* Load restricted machine-settings-pages: */
-    foreach (const QString &strValue, extraDataStringList(GUI_RestrictedMachineSettingsPages, strID))
-    {
-        MachineSettingsPageType value = gpConverter->fromInternalString<MachineSettingsPageType>(strValue);
-        if (value != MachineSettingsPageType_Invalid)
-            result << value;
-    }
-    /* Return result: */
-    return result;
-}
-
-#ifndef Q_WS_MAC
-QStringList UIExtraDataManager::machineWindowIconNames(const QString &strID) const
-{
-    return extraDataStringList(GUI_MachineWindowIcons, strID);
-}
-
-QString UIExtraDataManager::machineWindowNamePostfix(const QString &strID) const
-{
-    return extraDataString(GUI_MachineWindowNamePostfix, strID);
-}
-#endif /* !Q_WS_MAC */
-
-QRect UIExtraDataManager::informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID) const
-{
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_Geometry_InformationWindow, strID);
-
-    /* Parse loaded data: */
-    int iX = 0, iY = 0, iW = 0, iH = 0;
-    bool fOk = data.size() >= 4;
-    do
-    {
-        if (!fOk) break;
-        iX = data[0].toInt(&fOk);
-        if (!fOk) break;
-        iY = data[1].toInt(&fOk);
-        if (!fOk) break;
-        iW = data[2].toInt(&fOk);
-        if (!fOk) break;
-        iH = data[3].toInt(&fOk);
-    }
-    while (0);
-
-    /* Use geometry (loaded or default): */
-    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(0, 0, 600, 450);
-
-    /* Take hint-widget into account: */
-    if (pWidget)
-        geometry.setSize(geometry.size().expandedTo(pWidget->minimumSizeHint()));
-
-    /* Get screen-geometry [of screen with point (iX, iY) if possible]: */
-    const QRect screenGeometry = fOk ? QApplication::desktop()->availableGeometry(QPoint(iX, iY)) :
-                                       QApplication::desktop()->availableGeometry();
-
-    /* Make sure resulting geometry is within current bounds: */
-    geometry = geometry.intersected(screenGeometry);
-
-    /* Move default-geometry to pParentWidget' geometry center: */
-    if (!fOk && pParentWidget)
-        geometry.moveCenter(pParentWidget->geometry().center());
-
-    /* Return result: */
-    return geometry;
-}
-
-bool UIExtraDataManager::isInformationWindowShouldBeMaximized(const QString &strID) const
-{
-    /* Load corresponding extra-data: */
-    const QStringList data = extraDataStringList(GUI_Geometry_InformationWindow, strID);
-
-    /* Make sure 5th item has required value: */
-    return data.size() == 5 && data[4] == GUI_Geometry_State_Max;
-}
-
-void UIExtraDataManager::setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QString &strID)
-{
-    /* Serialize passed values: */
-    QStringList data;
-    data << QString::number(geometry.x());
-    data << QString::number(geometry.y());
-    data << QString::number(geometry.width());
-    data << QString::number(geometry.height());
-    if (fMaximized)
-        data << GUI_Geometry_State_Max;
-
-    /* Re-cache corresponding extra-data: */
-    setExtraDataStringList(GUI_Geometry_InformationWindow, data, strID);
-}
-
-GuruMeditationHandlerType UIExtraDataManager::guruMeditationHandlerType(const QString &strID) const
-{
-    return gpConverter->fromInternalString<GuruMeditationHandlerType>(extraDataString(GUI_GuruMeditationHandler, strID));
-}
-
-HiDPIOptimizationType UIExtraDataManager::hiDPIOptimizationType(const QString &strID) const
-{
-    return gpConverter->fromInternalString<HiDPIOptimizationType>(extraDataString(GUI_HiDPI_Optimization, strID));
-}
-
-bool UIExtraDataManager::passCADtoGuest(const QString &strID) const
-{
-    /* 'False' unless feature allowed: */
-    return isFeatureAllowed(GUI_PassCAD, strID);
-}
-
-bool UIExtraDataManager::hidLedsSyncState(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_HidLedsSync, strID);
-}
-
-bool UIExtraDataManager::showMiniToolbar(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_ShowMiniToolBar, strID);
-}
-
-void UIExtraDataManager::setShowMiniToolbar(bool fShown, const QString &strID)
-{
-    /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_ShowMiniToolBar, toFeatureRestricted(!fShown), strID);
-}
-
-bool UIExtraDataManager::autoHideMiniToolbar(const QString &strID) const
-{
-    /* 'True' unless feature restricted: */
-    return !isFeatureRestricted(GUI_MiniToolBarAutoHide, strID);
-}
-
-void UIExtraDataManager::setAutoHideMiniToolbar(bool fAutoHide, const QString &strID)
-{
-    /* 'False' if feature restricted, null-string otherwise: */
-    setExtraDataString(GUI_MiniToolBarAutoHide, toFeatureRestricted(!fAutoHide), strID);
-}
-
-Qt::AlignmentFlag UIExtraDataManager::miniToolbarAlignment(const QString &strID) const
-{
-    /* Return Qt::AlignBottom unless MiniToolbarAlignment_Top specified separately: */
-    switch (gpConverter->fromInternalString<MiniToolbarAlignment>(extraDataString(GUI_MiniToolBarAlignment, strID)))
-    {
-        case MiniToolbarAlignment_Top: return Qt::AlignTop;
-        default: break;
-    }
-    return Qt::AlignBottom;
-}
-
-void UIExtraDataManager::setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QString &strID)
-{
-    /* Remove record unless Qt::AlignTop specified separately: */
-    switch (alignment)
-    {
-        case Qt::AlignTop: setExtraDataString(GUI_MiniToolBarAlignment, gpConverter->toInternalString(MiniToolbarAlignment_Top), strID); return;
-        default: break;
-    }
-    setExtraDataString(GUI_MiniToolBarAlignment, QString(), strID);
-}
-
-#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 */
+    setExtraDataStringList(GUI_InformationWindowGeometry, data, strID);
+}
 
 MachineCloseAction UIExtraDataManager::defaultMachineCloseAction(const QString &strID) const
@@ -1129,5 +1125,5 @@
     /* Prepare result: */
     MachineCloseAction result = MachineCloseAction_Invalid;
-    /* Load restricted machine-close-actions: */
+    /* Get restricted machine-close-actions: */
     foreach (const QString &strValue, extraDataStringList(GUI_RestrictedCloseActions, strID))
     {
@@ -1154,4 +1150,11 @@
     return extraDataString(GUI_CloseActionHook, strID);
 }
+
+#ifdef VBOX_WITH_DEBUGGER_GUI
+QString UIExtraDataManager::debugFlagValue(const QString &strDebugFlagKey) const
+{
+    return extraDataString(strDebugFlagKey).toLower().trimmed();
+}
+#endif /* VBOX_WITH_DEBUGGER_GUI */
 
 void UIExtraDataManager::sltExtraDataChange(QString strMachineID, QString strKey, QString strValue)
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51679)
@@ -73,270 +73,308 @@
     static void destroy();
 
-    /** Returns version for which user wants to prevent BETA warning. */
-    QString preventBETAwarningForVersion() const;
+    /** @name Messaging
+      * @{ */
+        /** Returns the list of supressed messages for the Message/Popup center frameworks. */
+        QStringList suppressedMessages() const;
+        /** Defines the @a list of supressed messages for the Message/Popup center frameworks. */
+        void setSuppressedMessages(const QStringList &list);
+
+        /** Returns the list of messages for the Message/Popup center frameworks with inverted check-box state. */
+        QStringList messagesWithInvertedOption() const;
+
+#if !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG)
+        /** Returns version for which user wants to prevent BETA build warning. */
+        QString preventBetaBuildWarningForVersion() const;
+#endif /* !defined(VBOX_BLEEDING_EDGE) && !defined(DEBUG) */
+    /** @} */
 
 #ifdef VBOX_GUI_WITH_NETWORK_MANAGER
-    /** Returns whether we should allow Application Update. */
-    bool shouldWeAllowApplicationUpdate() const;
-    /** Returns last Application Update date. */
-    QString applicationUpdateData() const;
-    /** Defines last Application Update date as @a strValue. */
-    void setApplicationUpdateData(const QString &strValue);
-    /** Returns Application Update check counter. */
-    qulonglong applicationUpdateCheckCounter() const;
-    /** Increments Application Update check counter. */
-    void incrementApplicationUpdateCheckCounter();
+    /** @name Application Update
+      * @{ */
+        /** Returns whether Application Update functionality enabled. */
+        bool applicationUpdateEnabled() const;
+
+        /** Returns Application Update data. */
+        QString applicationUpdateData() const;
+        /** Defines Application Update data as @a strValue. */
+        void setApplicationUpdateData(const QString &strValue);
+
+        /** Returns Application Update check counter. */
+        qulonglong applicationUpdateCheckCounter() const;
+        /** Increments Application Update check counter. */
+        void incrementApplicationUpdateCheckCounter();
+    /** @} */
 #endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
 
-    /** Returns shortcut overrides for shortcut-pool with @a strPoolExtraDataID. */
-    QStringList shortcutOverrides(const QString &strPoolExtraDataID) const;
-
-    /** Returns recent hard-drive folder. */
-    QString recentFolderForHardDrives() const;
-    /** Returns recent optical-disk folder. */
-    QString recentFolderForOpticalDisks() const;
-    /** Returns recent floppy-disk folder. */
-    QString recentFolderForFloppyDisks() const;
-    /** Defines recent hard-drive folder as @a strValue. */
-    void setRecentFolderForHardDrives(const QString &strValue);
-    /** Defines recent optical-disk folder as @a strValue. */
-    void setRecentFolderForOpticalDisks(const QString &strValue);
-    /** Defines recent floppy-disk folder as @a strValue. */
-    void setRecentFolderForFloppyDisks(const QString &strValue);
-
-    /** Returns recent hard-drive list. */
-    QStringList recentListOfHardDrives() const;
-    /** Returns recent optical-disk list. */
-    QStringList recentListOfOpticalDisks() const;
-    /** Returns recent floppy-disk list. */
-    QStringList recentListOfFloppyDisks() const;
-    /** Defines recent hard-drive list as @a value. */
-    void setRecentListOfHardDrives(const QStringList &value);
-    /** Defines recent optical-disk list as @a value. */
-    void setRecentListOfOpticalDisks(const QStringList &value);
-    /** Defines recent floppy-disk list as @a value. */
-    void setRecentListOfFloppyDisks(const QStringList &value);
-
-    /** Returns list of the supressed messages for the Message/Popup center frameworks. */
-    QStringList suppressedMessages() const;
-    /** Defines list of the supressed messages for the Message/Popup center frameworks as @a value. */
-    void setSuppressedMessages(const QStringList &value);
-
-    /** Returns list of the messages for the Message/Popup center frameworks with inverted check-box state. */
-    QStringList messagesWithInvertedOption() const;
-
-    /** Returns mode (basic/expert) for wizard of @a type. */
-    WizardMode modeForWizard(WizardType type);
-    /** Defines @a mode (basic/expert) for wizard of @a type. */
-    void setModeForWizard(WizardType type, WizardMode mode);
-
-    /** Returns selector-window geometry using @a pWidget as the hint. */
-    QRect selectorWindowGeometry(QWidget *pWidget) const;
-    /** Returns whether selector-window should be maximized or not. */
-    bool isSelectorWindowShouldBeMaximized() const;
-    /** Defines selector-window geometry to passed @a geometry which is @a fMaximized. */
-    void setSelectorWindowGeometry(const QRect &geometry, bool fMaximized);
-
-    /** Returns selector-window splitter hints. */
-    QList<int> selectorWindowSplitterHints() const;
-    /** Defines selector-window splitter @a hints. */
-    void setSelectorWindowSplitterHints(const QList<int> &hints);
-
-    /** Returns whether selector-window tool-bar visible. */
-    bool selectorWindowToolBarVisible() const;
-    /** Defines whether selector-window tool-bar @a fVisible. */
-    void setSelectorWindowToolBarVisible(bool fVisible);
-    /** Returns whether selector-window status-bar visible. */
-    bool selectorWindowStatusBarVisible() const;
-    /** Defines whether selector-window status-bar @a fVisible. */
-    void setSelectorWindowStatusBarVisible(bool fVisible);
-
-    /** Clears all the existing selector-window chooser-pane' group definitions. */
-    void clearSelectorWindowGroupsDefinitions();
-    /** Returns selector-window chooser-pane' groups definitions for passed @a strGroupID. */
-    QStringList selectorWindowGroupsDefinitions(const QString &strGroupID) const;
-    /** Defines selector-window chooser-pane' groups definitions for passed @a strGroupID as @a definitions. */
-    void setSelectorWindowGroupsDefinitions(const QString &strGroupID, const QStringList &definitions);
-
-    /** Returns last item chosen in selector-window chooser-pane. */
-    QString selectorWindowLastItemChosen() const;
-    /** Defines last item chosen in selector-window chooser-pane as @a strItemID. */
-    void setSelectorWindowLastItemChosen(const QString &strItemID);
-
-    /** Returns selector-window details-pane elements. */
-    QMap<DetailsElementType, bool> selectorWindowDetailsElements();
-    /** Defines selector-window details-pane @a elements. */
-    void setSelectorWindowDetailsElements(const QMap<DetailsElementType, bool> &elements);
-
-    /** Returns selector-window preview update interval. */
-    PreviewUpdateIntervalType selectorWindowPreviewUpdateInterval() const;
-    /** Defines selector-window preview update @a interval. */
-    void setSelectorWindowPreviewUpdateInterval(PreviewUpdateIntervalType interval);
+    /** @name Settings
+      * @{ */
+        /** Returns restricted global settings pages. */
+        QList<GlobalSettingsPageType> restrictedGlobalSettingsPages() const;
+        /** Returns restricted machine settings pages. */
+        QList<MachineSettingsPageType> restrictedMachineSettingsPages(const QString &strID) const;
+    /** @} */
+
+    /** @name Settings: Keyboard
+      * @{ */
+        /** Returns shortcut overrides for shortcut-pool with @a strPoolExtraDataID. */
+        QStringList shortcutOverrides(const QString &strPoolExtraDataID) const;
+    /** @} */
+
+    /** @name Settings: Storage
+      * @{ */
+        /** Returns recent folder for hard-drives. */
+        QString recentFolderForHardDrives() const;
+        /** Returns recent folder for optical-disks. */
+        QString recentFolderForOpticalDisks() const;
+        /** Returns recent folder for floppy-disks. */
+        QString recentFolderForFloppyDisks() const;
+        /** Defines recent folder for hard-drives as @a strValue. */
+        void setRecentFolderForHardDrives(const QString &strValue);
+        /** Defines recent folder for optical-disk as @a strValue. */
+        void setRecentFolderForOpticalDisks(const QString &strValue);
+        /** Defines recent folder for floppy-disk as @a strValue. */
+        void setRecentFolderForFloppyDisks(const QString &strValue);
+
+        /** Returns the list of recently used hard-drives. */
+        QStringList recentListOfHardDrives() const;
+        /** Returns the list of recently used optical-disk. */
+        QStringList recentListOfOpticalDisks() const;
+        /** Returns the list of recently used floppy-disk. */
+        QStringList recentListOfFloppyDisks() const;
+        /** Defines the list of recently used hard-drives as @a value. */
+        void setRecentListOfHardDrives(const QStringList &value);
+        /** Defines the list of recently used optical-disks as @a value. */
+        void setRecentListOfOpticalDisks(const QStringList &value);
+        /** Defines the list of recently used floppy-disks as @a value. */
+        void setRecentListOfFloppyDisks(const QStringList &value);
+    /** @} */
+
+    /** @name VirtualBox Manager
+      * @{ */
+        /** Returns selector-window geometry using @a pWidget as the hint. */
+        QRect selectorWindowGeometry(QWidget *pWidget) const;
+        /** Returns whether selector-window should be maximized. */
+        bool selectorWindowShouldBeMaximized() const;
+        /** Defines selector-window @a geometry and @a fMaximized state. */
+        void setSelectorWindowGeometry(const QRect &geometry, bool fMaximized);
+
+        /** Returns selector-window splitter hints. */
+        QList<int> selectorWindowSplitterHints() const;
+        /** Defines selector-window splitter @a hints. */
+        void setSelectorWindowSplitterHints(const QList<int> &hints);
+
+        /** Returns whether selector-window tool-bar visible. */
+        bool selectorWindowToolBarVisible() const;
+        /** Defines whether selector-window tool-bar @a fVisible. */
+        void setSelectorWindowToolBarVisible(bool fVisible);
+
+        /** Returns whether selector-window status-bar visible. */
+        bool selectorWindowStatusBarVisible() const;
+        /** Defines whether selector-window status-bar @a fVisible. */
+        void setSelectorWindowStatusBarVisible(bool fVisible);
+
+        /** Clears all the existing selector-window chooser-pane' group definitions. */
+        void clearSelectorWindowGroupsDefinitions();
+        /** Returns selector-window chooser-pane' groups definitions for passed @a strGroupID. */
+        QStringList selectorWindowGroupsDefinitions(const QString &strGroupID) const;
+        /** Defines selector-window chooser-pane' groups @a definitions for passed @a strGroupID. */
+        void setSelectorWindowGroupsDefinitions(const QString &strGroupID, const QStringList &definitions);
+
+        /** Returns last-item ID of the item chosen in selector-window chooser-pane. */
+        QString selectorWindowLastItemChosen() const;
+        /** Defines @a lastItemID of the item chosen in selector-window chooser-pane. */
+        void setSelectorWindowLastItemChosen(const QString &strItemID);
+
+        /** Returns selector-window details-pane' elements. */
+        QMap<DetailsElementType, bool> selectorWindowDetailsElements();
+        /** Defines selector-window details-pane' @a elements. */
+        void setSelectorWindowDetailsElements(const QMap<DetailsElementType, bool> &elements);
+
+        /** Returns selector-window details-pane' preview update interval. */
+        PreviewUpdateIntervalType selectorWindowPreviewUpdateInterval() const;
+        /** Defines selector-window details-pane' preview update @a interval. */
+        void setSelectorWindowPreviewUpdateInterval(PreviewUpdateIntervalType interval);
+    /** @} */
+
+    /** @name Wizards
+      * @{ */
+        /** Returns mode for wizard of passed @a type. */
+        WizardMode modeForWizardType(WizardType type);
+        /** Defines @a mode for wizard of passed @a type. */
+        void setModeForWizardType(WizardType type, WizardMode mode);
+    /** @} */
+
+    /** @name Virtual Machine
+      * @{ */
+        /** Returns whether machine should be shown in selector-window chooser-pane. */
+        bool showMachineInSelectorChooser(const QString &strID) const;
+        /** Returns whether machine should be shown in selector-window details-pane. */
+        bool showMachineInSelectorDetails(const QString &strID) const;
+
+        /** Returns whether machine reconfiguration enabled. */
+        bool machineReconfigurationEnabled(const QString &strID) const;
+        /** Returns whether machine snapshot operations enabled. */
+        bool machineSnapshotOperationsEnabled(const QString &strID) const;
+
+        /** Returns whether this machine is first time started. */
+        bool machineFirstTimeStarted(const QString &strID) const;
+        /** Returns whether this machine is fFirstTimeStarted. */
+        void setMachineFirstTimeStarted(bool fFirstTimeStarted, const QString &strID);
+
+#ifndef Q_WS_MAC
+        /** Except Mac OS X: Returns redefined machine-window icon names. */
+        QStringList machineWindowIconNames(const QString &strID) const;
+        /** Except Mac OS X: Returns redefined machine-window name postfix. */
+        QString machineWindowNamePostfix(const QString &strID) const;
+#endif /* !Q_WS_MAC */
+
+        /** Returns geometry for machine-window with @a uScreenIndex in @a visualStateType. */
+        QRect machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID) const;
+        /** Returns whether machine-window with @a uScreenIndex in @a visualStateType should be maximized. */
+        bool machineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strID) const;
+        /** Defines @a geometry and @a fMaximized state for machine-window with @a uScreenIndex in @a visualStateType. */
+        void setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QString &strID);
+
+        /** Returns restricted Runtime UI menu types. */
+        RuntimeMenuType restrictedRuntimeMenuTypes(const QString &strID) const;
+    #ifdef Q_WS_MAC
+        /** Mac OS X: Returns restricted Runtime UI action types for Application menu. */
+        RuntimeMenuApplicationActionType restrictedRuntimeMenuApplicationActionTypes(const QString &strID) const;
+    #endif /* Q_WS_MAC */
+        /** Returns restricted Runtime UI action types for Machine menu. */
+        RuntimeMenuMachineActionType restrictedRuntimeMenuMachineActionTypes(const QString &strID) const;
+        /** Returns restricted Runtime UI action types for View menu. */
+        RuntimeMenuViewActionType restrictedRuntimeMenuViewActionTypes(const QString &strID) const;
+        /** Returns restricted Runtime UI action types for Devices menu. */
+        RuntimeMenuDevicesActionType restrictedRuntimeMenuDevicesActionTypes(const QString &strID) const;
+    #ifdef VBOX_WITH_DEBUGGER_GUI
+        /** Returns restricted Runtime UI action types for Debugger menu. */
+        RuntimeMenuDebuggerActionType restrictedRuntimeMenuDebuggerActionTypes(const QString &strID) const;
+    #endif /* VBOX_WITH_DEBUGGER_GUI */
+        /** Returns restricted Runtime UI action types for Help menu. */
+        RuntimeMenuHelpActionType restrictedRuntimeMenuHelpActionTypes(const QString &strID) const;
+
+        /** Returns restricted Runtime UI visual-states. */
+        UIVisualStateType restrictedVisualStates(const QString &strID) const;
+
+        /** Returns requested Runtime UI visual-state. */
+        UIVisualStateType requestedVisualState(const QString &strID) const;
+        /** Defines requested Runtime UI visual-state as @a visualState. */
+        void setRequestedVisualState(UIVisualStateType visualState, const QString &strID);
+
+        /** Returns whether guest-screen auto-resize according machine-window size is enabled. */
+        bool guestScreenAutoResizeEnabled(const QString &strID) const;
+        /** Defines whether guest-screen auto-resize according machine-window size is @a fEnabled. */
+        void setGuestScreenAutoResizeEnabled(bool fEnabled, const QString &strID);
+
+        /** Returns last guest-screen size-hint for screen with @a uScreenIndex. */
+        QSize lastGuestSizeHint(ulong uScreenIndex, const QString &strID) const;
+        /** Defines last guest-screen @a sizeHint for screen with @a uScreenIndex. */
+        void setLastGuestSizeHint(ulong uScreenIndex, const QSize &sizeHint, const QString &strID);
+        /** Returns whether guest size-hint was for full or seamless screen with @a uScreenIndex. */
+        bool wasLastGuestSizeHintForFullScreen(ulong uScreenIndex, const QString &strID) const;
+        /** Defines whether guest size-hint @a fWas for full or seamless screen with @a uScreenIndex. */
+        void markLastGuestSizeHintAsFullScreen(ulong uScreenIndex, bool fWas, const QString &strID);
+
+        /** Returns host-screen index corresponding to passed guest-screen @a iGuestScreenIndex. */
+        int hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QString &strID);
+        /** Defines @a iHostScreenIndex corresponding to passed guest-screen @a iGuestScreenIndex. */
+        void setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QString &strID);
+
+        /** Returns whether automatic mounting/unmounting of guest-screens enabled. */
+        bool autoMountGuestScreensEnabled(const QString &strID) const;
+
+#ifdef VBOX_WITH_VIDEOHWACCEL
+        /** Returns whether 2D acceleration should use linear sretch. */
+        bool useLinearStretch(const QString &strID) const;
+        /** Returns whether 2D acceleration should use YV12 pixel format. */
+        bool usePixelFormatYV12(const QString &strID) const;
+        /** Returns whether 2D acceleration should use UYVY pixel format. */
+        bool usePixelFormatUYVY(const QString &strID) const;
+        /** Returns whether 2D acceleration should use YUY2 pixel format. */
+        bool usePixelFormatYUY2(const QString &strID) const;
+        /** Returns whether 2D acceleration should use AYUV pixel format. */
+        bool usePixelFormatAYUV(const QString &strID) const;
+#endif /* VBOX_WITH_VIDEOHWACCEL */
+
+        /** Returns Runtime UI HiDPI optimization type. */
+        HiDPIOptimizationType hiDPIOptimizationType(const QString &strID) const;
+
+        /** Returns whether mini-toolbar is enabled for full and seamless screens. */
+        bool miniToolbarEnabled(const QString &strID) const;
+        /** Defines whether mini-toolbar is @a fEnabled for full and seamless screens. */
+        void setMiniToolbarEnabled(bool fEnabled, const QString &strID);
+
+        /** Returns whether mini-toolbar should auto-hide itself. */
+        bool autoHideMiniToolbar(const QString &strID) const;
+        /** Defines whether mini-toolbar should @a fAutoHide itself. */
+        void setAutoHideMiniToolbar(bool fAutoHide, const QString &strID);
+
+        /** Returns mini-toolbar alignment. */
+        Qt::AlignmentFlag miniToolbarAlignment(const QString &strID) const;
+        /** Returns mini-toolbar @a alignment. */
+        void setMiniToolbarAlignment(Qt::AlignmentFlag alignment, const QString &strID);
+
+        /** Returns restricted Runtime UI status-bar indicators. */
+        QList<IndicatorType> restrictedStatusBarIndicators(const QString &strID) const;
+
+#ifdef Q_WS_MAC
+        /** Mac OS X: Returns whether 'presentation mode' 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 whether machine should pass CAD to guest. */
+        bool passCADtoGuest(const QString &strID) const;
+
+        /** Returns redefined guru-meditation handler type. */
+        GuruMeditationHandlerType guruMeditationHandlerType(const QString &strID) const;
+
+        /** Returns whether machine should perform HID LEDs synchronization. */
+        bool hidLedsSyncState(const QString &strID) const;
+    /** @} */
+
+    /** @name Virtual Machine: Information dialog
+      * @{ */
+        /** Returns information-window geometry using @a pWidget and @a pParentWidget as hints. */
+        QRect informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID) const;
+        /** Returns whether information-window should be maximized or not. */
+        bool informationWindowShouldBeMaximized(const QString &strID) const;
+        /** Defines information-window @a geometry and @a fMaximized state. */
+        void setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QString &strID);
+    /** @} */
+
+    /** @name Virtual Machine: Close dialog
+      * @{ */
+        /** Returns default machine close action. */
+        MachineCloseAction defaultMachineCloseAction(const QString &strID) const;
+        /** Returns restricted machine close actions. */
+        MachineCloseAction restrictedMachineCloseActions(const QString &strID) const;
+
+        /** Returns last machine close action. */
+        MachineCloseAction lastMachineCloseAction(const QString &strID) const;
+        /** Defines last @a machineCloseAction. */
+        void setLastMachineCloseAction(MachineCloseAction machineCloseAction, const QString &strID);
+
+        /** Returns machine close hook script name as simple string. */
+        QString machineCloseHookScript(const QString &strID) const;
+    /** @} */
 
 #ifdef VBOX_WITH_DEBUGGER_GUI
-    /** Returns debug flag value for passed @a strDebugFlagKey. */
-    QString debugFlagValue(const QString &strDebugFlagKey) const;
+    /** @name Virtual Machine: Debug UI
+      * @{ */
+        /** Returns debug flag value for passed @a strDebugFlagKey. */
+        QString debugFlagValue(const QString &strDebugFlagKey) const;
+    /** @} */
 #endif /* VBOX_WITH_DEBUGGER_GUI */
-
-    /** Returns geometry for machine-window with @a uScreenIndex in @a visualStateType. */
-    QRect machineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strId) const;
-    /** Returns whether machine-window with @a uScreenIndex in @a visualStateType should be maximized or not. */
-    bool isMachineWindowShouldBeMaximized(UIVisualStateType visualStateType, ulong uScreenIndex, const QString &strId) const;
-    /** Defines geometry for machine-window with @a uScreenIndex in @a visualStateType as @a geometry and @a fMaximized. */
-    void setMachineWindowGeometry(UIVisualStateType visualStateType, ulong uScreenIndex, const QRect &geometry, bool fMaximized, const QString &strId);
-
-    /** Returns last guest-screen size-hint for screen with @a uScreenIndex. */
-    QSize lastGuestSizeHint(ulong uScreenIndex, const QString &strId) const;
-    /** Defines last guest-screen size-hint for screen with @a uScreenIndex as @a size. */
-    void setLastGuestSizeHint(ulong uScreenIndex, const QSize &size, const QString &strId);
-    /** Returns whether guest size hint was for full or seamless screen with @a uScreenIndex. */
-    bool wasLastGuestSizeHintForFullScreen(ulong uScreenIndex, const QString &strId) const;
-    /** Defines whether guest size hint @a fWas for full or seamless screen with @a uScreenIndex. */
-    void markLastGuestSizeHintAsFullScreen(ulong uScreenIndex, bool fWas, const QString &strId);
-
-    /** Returns whether this machine started for the first time. */
-    bool isFirstRun(const QString &strId) const;
-    /** Defines whether this machine started for the first time. */
-    void setFirstRun(bool fIsFirstRun, const QString &strId);
-
-    /** Returns whether we should show machine. */
-    bool shouldWeShowMachine(const QString &strID) const;
-    /** Returns whether we should show machine details. */
-    bool shouldWeShowMachineDetails(const QString &strID) const;
-
-    /** Returns whether we should allow machine reconfiguration. */
-    bool shouldWeAllowMachineReconfiguration(const QString &strID) const;
-    /** Returns whether we should allow machine snapshot operations. */
-    bool shouldWeAllowMachineSnapshotOperations(const QString &strID) const;
-
-    /** Returns whether we should automatically mount/unmount guest-screens. */
-    bool shouldWeAutoMountGuestScreens(const QString &strID) const;
-
-    /** Returns restricted Runtime UI menu types. */
-    RuntimeMenuType restrictedRuntimeMenuTypes(const QString &strID) const;
-#ifdef Q_WS_MAC
-    /** Mac OS X: Returns restricted Runtime UI action types for Application menu. */
-    RuntimeMenuApplicationActionType restrictedRuntimeMenuApplicationActionTypes(const QString &strID) const;
-#endif /* Q_WS_MAC */
-    /** Returns restricted Runtime UI action types for Machine menu. */
-    RuntimeMenuMachineActionType restrictedRuntimeMenuMachineActionTypes(const QString &strID) const;
-    /** Returns restricted Runtime UI action types for View menu. */
-    RuntimeMenuViewActionType restrictedRuntimeMenuViewActionTypes(const QString &strID) const;
-    /** Returns restricted Runtime UI action types for Devices menu. */
-    RuntimeMenuDevicesActionType restrictedRuntimeMenuDevicesActionTypes(const QString &strID) const;
-#ifdef VBOX_WITH_DEBUGGER_GUI
-    /** Returns restricted Runtime UI action types for Debugger menu. */
-    RuntimeMenuDebuggerActionType restrictedRuntimeMenuDebuggerActionTypes(const QString &strID) const;
-#endif /* VBOX_WITH_DEBUGGER_GUI */
-    /** Returns restricted Runtime UI action types for Help menu. */
-    RuntimeMenuHelpActionType restrictedRuntimeMenuHelpActionTypes(const QString &strID) const;
-
-    /** Returns restricted Runtime UI visual-states. */
-    UIVisualStateType restrictedVisualStates(const QString &strID) const;
-
-    /** Returns requested Runtime UI visual-state. */
-    UIVisualStateType requestedVisualState(const QString &strID) const;
-    /** Defines requested Runtime UI visual-state as @a visualState. */
-    void setRequestedVisualState(UIVisualStateType visualState, const QString &strID);
-
-    /** Returns host-screen index corresponding to passed guest-screen @a iGuestScreenIndex. */
-    int hostScreenForPassedGuestScreen(int iGuestScreenIndex, const QString &strID);
-    /** Defines host-screen index corresponding to passed guest-screen @a iGuestScreenIndex as @a iHostScreenIndex. */
-    void setHostScreenForPassedGuestScreen(int iGuestScreenIndex, int iHostScreenIndex, const QString &strID);
-
-    /** Returns whether guest-screen should auto-resize according machine-window size. */
-    bool guestScreenAutoResize(const QString &strID) const;
-    /** Defines whether guest-screen auto-resize according machine-window size is @a fEnabled. */
-    void setGuestScreenAutoResize(bool fEnabled, const QString &strID);
-
-#ifdef VBOX_WITH_VIDEOHWACCEL
-    /** Returns whether 2D acceleration should use linear sretch. */
-    bool useLinearStretch(const QString &strID) const;
-    /** Returns whether 2D acceleration should use YV12 pixel format. */
-    bool usePixelFormatYV12(const QString &strID) const;
-    /** Returns whether 2D acceleration should use UYVY pixel format. */
-    bool usePixelFormatUYVY(const QString &strID) const;
-    /** Returns whether 2D acceleration should use YUY2 pixel format. */
-    bool usePixelFormatYUY2(const QString &strID) const;
-    /** Returns whether 2D acceleration should use AYUV pixel format. */
-    bool usePixelFormatAYUV(const QString &strID) const;
-#endif /* VBOX_WITH_VIDEOHWACCEL */
-
-    /** Returns restricted Runtime UI status-bar indicators. */
-    QList<IndicatorType> restrictedStatusBarIndicators(const QString &strID) const;
-
-    /** Returns global settings pages. */
-    QList<GlobalSettingsPageType> restrictedGlobalSettingsPages() const;
-    /** Returns machine settings pages. */
-    QList<MachineSettingsPageType> restrictedMachineSettingsPages(const QString &strID) const;
-
-#ifndef Q_WS_MAC
-    /** Except Mac OS X: Returns redefined machine-window icon names. */
-    QStringList machineWindowIconNames(const QString &strID) const;
-    /** Except Mac OS X: Returns redefined machine-window name postfix. */
-    QString machineWindowNamePostfix(const QString &strID) const;
-#endif /* !Q_WS_MAC */
-
-    /** Returns information-window geometry using @a pWidget and @a pParentWidget as hints. */
-    QRect informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID) const;
-    /** Returns whether information-window should be maximized or not. */
-    bool isInformationWindowShouldBeMaximized(const QString &strID) const;
-    /** Defines information-window geometry to passed @a geometry which is @a fMaximized. */
-    void setInformationWindowGeometry(const QRect &geometry, bool fMaximized, const QString &strID);
-
-    /** Returns redefined guru-meditation handler type. */
-    GuruMeditationHandlerType guruMeditationHandlerType(const QString &strID) const;
-
-    /** Returns Runtime UI HiDPI optimization type. */
-    HiDPIOptimizationType hiDPIOptimizationType(const QString &strID) const;
-
-    /** Returns whether VM should pass CAD to guest. */
-    bool passCADtoGuest(const QString &strID) const;
-
-    /** Returns whether VM should perform HID LEDs synchronization. */
-    bool hidLedsSyncState(const QString &strID) const;
-
-    /** Returns whether mini-toolbar should be shown for full and seamless screens. */
-    bool showMiniToolbar(const QString &strID) const;
-    /** Defines whether mini-toolbar should be @a fShown for full and seamless screens. */
-    void setShowMiniToolbar(bool fShown, const QString &strID);
-
-    /** Returns whether mini-toolbar should auto-hide itself. */
-    bool autoHideMiniToolbar(const QString &strID) const;
-    /** Defines whether mini-toolbar should @a fAutoHide itself. */
-    void setAutoHideMiniToolbar(bool fAutoHide, const QString &strID);
-
-    /** Returns mini-toolbar alignment. */
-    Qt::AlignmentFlag miniToolbarAlignment(const QString &strID) const;
-    /** Returns mini-toolbar @a alignment. */
-    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;
-    /** Returns restricted machine close actions. */
-    MachineCloseAction restrictedMachineCloseActions(const QString &strID) const;
-
-    /** Returns last machine close action. */
-    MachineCloseAction lastMachineCloseAction(const QString &strID) const;
-    /** Defines last @a machineCloseAction. */
-    void setLastMachineCloseAction(MachineCloseAction machineCloseAction, const QString &strID);
-
-    /** Returns machine close hook script name as simple string. */
-    QString machineCloseHookScript(const QString &strID) const;
 
 private slots:
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 51679)
@@ -374,5 +374,5 @@
 }
 
-void UIMessageCenter::showBETAWarning() const
+void UIMessageCenter::showBetaBuildWarning() const
 {
     alert(0, MessageType_Warning,
@@ -381,5 +381,5 @@
 }
 
-void UIMessageCenter::showBEBWarning() const
+void UIMessageCenter::showExperimentalBuildWarning() const
 {
     alert(0, MessageType_Warning,
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 51679)
@@ -153,6 +153,6 @@
 #endif /* RT_OS_LINUX */
     void cannotStartSelector() const;
-    void showBETAWarning() const;
-    void showBEBWarning() const;
+    void showBetaBuildWarning() const;
+    void showExperimentalBuildWarning() const;
 
     /* API: COM startup warnings: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/main.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/main.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/main.cpp	(revision 51679)
@@ -502,15 +502,12 @@
 
 #ifdef VBOX_BLEEDING_EDGE
-                msgCenter().showBEBWarning();
+                msgCenter().showExperimentalBuildWarning();
 #else /* VBOX_BLEEDING_EDGE */
 # ifndef DEBUG
                 /* Check for BETA version: */
-                QString vboxVersion(vboxGlobal().virtualBox().GetVersion());
-                if (vboxVersion.contains("BETA"))
-                {
-                    /* Allow to prevent this message: */
-                    if (gEDataManager->preventBETAwarningForVersion() != vboxVersion)
-                        msgCenter().showBETAWarning();
-                }
+                const QString vboxVersion(vboxGlobal().virtualBox().GetVersion());
+                if (   vboxVersion.contains("BETA")
+                    && gEDataManager->preventBetaBuildWarningForVersion() != vboxVersion)
+                    msgCenter().showBetaBuildWarning();
 # endif /* !DEBUG */
 #endif /* !VBOX_BLEEDING_EDGE*/
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 51679)
@@ -278,5 +278,5 @@
 
                 /* Finally, we are checking if current machine overrides this flag: */
-                if (m_fAttachedToHiddenMachinesOnly && gEDataManager->shouldWeShowMachine(strMachineID))
+                if (m_fAttachedToHiddenMachinesOnly && gEDataManager->showMachineInSelectorChooser(strMachineID))
                     m_fAttachedToHiddenMachinesOnly = false;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp	(revision 51679)
@@ -442,6 +442,5 @@
 #ifdef VBOX_WITH_UPDATE_REQUEST
     /* Ask updater to check for the first time: */
-    if (gEDataManager->shouldWeAllowApplicationUpdate() &&
-        !vboxGlobal().isVMConsoleProcess())
+    if (gEDataManager->applicationUpdateEnabled() && !vboxGlobal().isVMConsoleProcess())
         QTimer::singleShot(0, this, SLOT(sltCheckIfUpdateIsNecessary()));
 #endif /* VBOX_WITH_UPDATE_REQUEST */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp	(revision 51679)
@@ -80,5 +80,5 @@
      * and all guests screens need there own host screen. */
     CDisplay display = m_pMachineLogic->session().GetConsole().GetDisplay();
-    bool fShouldWeAutoMountGuestScreens = gEDataManager->shouldWeAutoMountGuestScreens(vboxGlobal().managedVMUuid());
+    bool fShouldWeAutoMountGuestScreens = gEDataManager->autoMountGuestScreensEnabled(vboxGlobal().managedVMUuid());
     LogRelFlow(("UIMultiScreenLayout::update: GUI/AutomountGuestScreens is %s.\n", fShouldWeAutoMountGuestScreens ? "enabled" : "disabled"));
     QDesktopWidget *pDW = QApplication::desktop();
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 51679)
@@ -1136,14 +1136,14 @@
 
         /* Is there should be First RUN Wizard? */
-        m_fIsFirstTimeStarted = gEDataManager->isFirstRun(vboxGlobal().managedVMUuid());
+        m_fIsFirstTimeStarted = gEDataManager->machineFirstTimeStarted(vboxGlobal().managedVMUuid());
 
         /* Should guest autoresize? */
         QAction *pGuestAutoresizeSwitch = gActionPool->action(UIActionIndexRuntime_Toggle_GuestAutoresize);
-        pGuestAutoresizeSwitch->setChecked(gEDataManager->guestScreenAutoResize(vboxGlobal().managedVMUuid()));
+        pGuestAutoresizeSwitch->setChecked(gEDataManager->guestScreenAutoResizeEnabled(vboxGlobal().managedVMUuid()));
 
         /* Should we allow reconfiguration? */
-        m_fReconfigurable = gEDataManager->shouldWeAllowMachineReconfiguration(vboxGlobal().managedVMUuid());
+        m_fReconfigurable = gEDataManager->machineReconfigurationEnabled(vboxGlobal().managedVMUuid());
         /* Should we allow snapshot operations? */
-        m_fSnapshotOperationsAllowed = gEDataManager->shouldWeAllowMachineSnapshotOperations(vboxGlobal().managedVMUuid());
+        m_fSnapshotOperationsAllowed = gEDataManager->machineSnapshotOperationsEnabled(vboxGlobal().managedVMUuid());
 
         /* What is the default close action and the restricted are? */
@@ -1174,8 +1174,8 @@
     {
         /* Disable First RUN Wizard: */
-        gEDataManager->setFirstRun(false, vboxGlobal().managedVMUuid());
+        gEDataManager->setMachineFirstTimeStarted(false, vboxGlobal().managedVMUuid());
 
         /* Remember if guest should autoresize: */
-        gEDataManager->setGuestScreenAutoResize(gActionPool->action(UIActionIndexRuntime_Toggle_GuestAutoresize)->isChecked(), vboxGlobal().managedVMUuid());
+        gEDataManager->setGuestScreenAutoResizeEnabled(gActionPool->action(UIActionIndexRuntime_Toggle_GuestAutoresize)->isChecked(), vboxGlobal().managedVMUuid());
 
 #if 0 /* Disabled for now! */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 51679)
@@ -235,5 +235,5 @@
 {
     /* Make sure mini-toolbar is not restricted: */
-    if (!gEDataManager->showMiniToolbar(vboxGlobal().managedVMUuid()))
+    if (!gEDataManager->miniToolbarEnabled(vboxGlobal().managedVMUuid()))
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 51679)
@@ -492,6 +492,6 @@
 
             /* Maximize (if necessary): */
-            if (gEDataManager->isMachineWindowShouldBeMaximized(machineLogic()->visualStateType(),
-                                                                m_uScreenId, vboxGlobal().managedVMUuid()))
+            if (gEDataManager->machineWindowShouldBeMaximized(machineLogic()->visualStateType(),
+                                                              m_uScreenId, vboxGlobal().managedVMUuid()))
                 setWindowState(windowState() | Qt::WindowMaximized);
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 51679)
@@ -117,6 +117,6 @@
 
             /* Maximize (if necessary): */
-            if (gEDataManager->isMachineWindowShouldBeMaximized(machineLogic()->visualStateType(),
-                                                                m_uScreenId, vboxGlobal().managedVMUuid()))
+            if (gEDataManager->machineWindowShouldBeMaximized(machineLogic()->visualStateType(),
+                                                              m_uScreenId, vboxGlobal().managedVMUuid()))
                 setWindowState(windowState() | Qt::WindowMaximized);
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 51679)
@@ -129,5 +129,5 @@
 {
     /* Make sure mini-toolbar is not restricted: */
-    if (!gEDataManager->showMiniToolbar(vboxGlobal().managedVMUuid()))
+    if (!gEDataManager->miniToolbarEnabled(vboxGlobal().managedVMUuid()))
         return;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 51679)
@@ -1320,5 +1320,5 @@
     pMenu->addAction(m_pNetworkAccessManager);
     m_pUpdateAction = gActionPool->action(UIActionIndex_Simple_CheckForUpdates);
-    if (gEDataManager->shouldWeAllowApplicationUpdate())
+    if (gEDataManager->applicationUpdateEnabled())
         pMenu->addAction(m_pUpdateAction);
     else
@@ -1513,5 +1513,5 @@
 
         /* Maximize (if necessary): */
-        if (gEDataManager->isSelectorWindowShouldBeMaximized())
+        if (gEDataManager->selectorWindowShouldBeMaximized())
             showMaximized();
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp	(revision 51679)
@@ -262,9 +262,9 @@
         /* Also take restrictions into account: */
         if (   m_configurationAccessLevel != ConfigurationAccessLevel_Null
-            && !gEDataManager->shouldWeAllowMachineReconfiguration(m_strId))
+            && !gEDataManager->machineReconfigurationEnabled(m_strId))
             m_configurationAccessLevel = ConfigurationAccessLevel_Null;
 
         /* Should we show details for this item? */
-        m_fHasDetails = gEDataManager->shouldWeShowMachineDetails(m_strId);
+        m_fHasDetails = gEDataManager->showMachineInSelectorDetails(m_strId);
     }
     else
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp	(revision 51679)
@@ -456,5 +456,5 @@
         mMachineId = aMachine.GetId();
         mSessionState = aMachine.GetSessionState();
-        m_fShapshotOperationsAllowed = gEDataManager->shouldWeAllowMachineSnapshotOperations(mMachineId);
+        m_fShapshotOperationsAllowed = gEDataManager->machineSnapshotOperationsEnabled(mMachineId);
     }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 51679)
@@ -598,5 +598,5 @@
         CMachine machine = vboxGlobal().virtualBox().FindMachine(strId);
         /* Should we show this machine? */
-        if (gEDataManager->shouldWeShowMachine(strId))
+        if (gEDataManager->showMachineInSelectorChooser(strId))
         {
             /* Add new machine-item: */
@@ -884,5 +884,5 @@
     /* Show machine if we should: */
     CMachine machine = vboxGlobal().virtualBox().FindMachine(strId);
-    if (gEDataManager->shouldWeShowMachine(strId))
+    if (gEDataManager->showMachineInSelectorChooser(strId))
         addMachineIntoTheTree(machine);
 
@@ -1613,5 +1613,5 @@
     {
         const QString strMachineID = machine.GetId();
-        if (!strMachineID.isEmpty() && gEDataManager->shouldWeShowMachine(strMachineID))
+        if (!strMachineID.isEmpty() && gEDataManager->showMachineInSelectorChooser(strMachineID))
             addMachineIntoTheTree(machine);
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 51679)
@@ -859,5 +859,5 @@
         /* Disable First RUN Wizard: */
         if (m_fResetFirstRunFlag)
-            gEDataManager->setFirstRun(false, m_strMachineId);
+            gEDataManager->setMachineFirstTimeStarted(false, m_strMachineId);
 
         /* Save settings finally: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 51679)
@@ -107,5 +107,5 @@
     generalData.m_strName = m_machine.GetName();
     generalData.m_strGuestOsTypeId = m_machine.GetOSTypeId();
-    generalData.m_fShowMiniToolBar = gEDataManager->showMiniToolbar(m_machine.GetId());
+    generalData.m_fShowMiniToolBar = gEDataManager->miniToolbarEnabled(m_machine.GetId());
     generalData.m_fMiniToolBarAtTop = gEDataManager->miniToolbarAlignment(m_machine.GetId()) == Qt::AlignTop;
     generalData.m_strSnapshotsFolder = m_machine.GetSnapshotFolder();
@@ -188,5 +188,5 @@
             m_machine.SetClipboardMode(generalData.m_clipboardMode);
             m_machine.SetDnDMode(generalData.m_dndMode);
-            gEDataManager->setShowMiniToolbar(generalData.m_fShowMiniToolBar, m_machine.GetId());
+            gEDataManager->setMiniToolbarEnabled(generalData.m_fShowMiniToolBar, m_machine.GetId());
             gEDataManager->setMiniToolbarAlignment(generalData.m_fMiniToolBarAtTop ? Qt::AlignTop : Qt::AlignBottom, m_machine.GetId());
             /* Description tab: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/UIWizard.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/UIWizard.cpp	(revision 51671)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/UIWizard.cpp	(revision 51679)
@@ -52,5 +52,5 @@
         cleanup();
 
-        /* Switch mode: */
+        /* Toggle mode: */
         switch (m_mode)
         {
@@ -59,7 +59,6 @@
             default: AssertMsgFailed(("Invalid mode: %d", m_mode)); break;
         }
-
-        /* Save mode settings: */
-        gEDataManager->setModeForWizard(m_type, m_mode);
+        /* Save mode: */
+        gEDataManager->setModeForWizardType(m_type, m_mode);
 
         /* Prepare: */
@@ -71,5 +70,5 @@
     : QIWithRetranslateUI<QWizard>(pParent)
     , m_type(type)
-    , m_mode(mode == WizardMode_Auto ? gEDataManager->modeForWizard(m_type) : mode)
+    , m_mode(mode == WizardMode_Auto ? gEDataManager->modeForWizardType(m_type) : mode)
 {
 #ifdef Q_WS_WIN
