Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h	(revision 51654)
@@ -91,4 +91,5 @@
 template<> bool canConvert<GuruMeditationHandlerType>();
 template<> bool canConvert<HiDPIOptimizationType>();
+template<> bool canConvert<MiniToolbarAlignment>();
 
 /* Declare COM canConvert specializations: */
@@ -164,4 +165,6 @@
 template<> QString toInternalString(const HiDPIOptimizationType &optimizationType);
 template<> HiDPIOptimizationType fromInternalString<HiDPIOptimizationType>(const QString &strOptimizationType);
+template<> QString toInternalString(const MiniToolbarAlignment &miniToolbarAlignment);
+template<> MiniToolbarAlignment fromInternalString<MiniToolbarAlignment>(const QString &strMiniToolbarAlignment);
 
 /* Declare COM conversion specializations: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp	(revision 51654)
@@ -55,4 +55,5 @@
 template<> bool canConvert<GuruMeditationHandlerType>() { return true; }
 template<> bool canConvert<HiDPIOptimizationType>() { return true; }
+template<> bool canConvert<MiniToolbarAlignment>() { return true; }
 
 /* QString <= SizeSuffix: */
@@ -932,5 +933,5 @@
     /* Here we have some fancy stuff allowing us
      * to search through the keys using 'case-insensitive' rule: */
-    QStringList keys;    QList<GlobalSettingsPageType> values;
+    QStringList keys;     QList<GlobalSettingsPageType> values;
     keys << "General";    values << GlobalSettingsPageType_General;
     keys << "Input";      values << GlobalSettingsPageType_Input;
@@ -1237,2 +1238,31 @@
 }
 
+/* QString <= MiniToolbarAlignment: */
+template<> QString toInternalString(const MiniToolbarAlignment &miniToolbarAlignment)
+{
+    /* Return corresponding QString representation for passed enum value: */
+    switch (miniToolbarAlignment)
+    {
+        case MiniToolbarAlignment_Bottom: return "Bottom";
+        case MiniToolbarAlignment_Top:    return "Top";
+        default: AssertMsgFailed(("No text for '%d'", miniToolbarAlignment)); break;
+    }
+    /* Return QString() by default: */
+    return QString();
+}
+
+/* MiniToolbarAlignment <= QString: */
+template<> MiniToolbarAlignment fromInternalString<MiniToolbarAlignment>(const QString &strMiniToolbarAlignment)
+{
+    /* Here we have some fancy stuff allowing us
+     * to search through the keys using 'case-insensitive' rule: */
+    QStringList keys; QList<MiniToolbarAlignment> values;
+    keys << "Bottom"; values << MiniToolbarAlignment_Bottom;
+    keys << "Top";    values << MiniToolbarAlignment_Top;
+    /* Bottom type for unknown words: */
+    if (!keys.contains(strMiniToolbarAlignment, Qt::CaseInsensitive))
+        return MiniToolbarAlignment_Bottom;
+    /* Corresponding type for known words: */
+    return values.at(keys.indexOf(QRegExp(strMiniToolbarAlignment, Qt::CaseInsensitive)));
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 51654)
@@ -406,4 +406,10 @@
 };
 
+/** Runtime UI: Mini-toolbar alignment. */
+enum MiniToolbarAlignment
+{
+    MiniToolbarAlignment_Bottom,
+    MiniToolbarAlignment_Top
+};
 
 #endif /* !___UIExtraDataDefs_h___ */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51654)
@@ -955,4 +955,50 @@
 }
 
+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);
+}
+
 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 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51654)
@@ -277,4 +277,19 @@
     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);
+
 private slots:
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 51654)
@@ -234,21 +234,13 @@
 void UIMachineWindowFullscreen::prepareMiniToolbar()
 {
-    /* Get machine: */
-    CMachine m = machine();
-
-    /* Make sure mini-toolbar is necessary: */
-    bool fIsActive = m.GetExtraData(GUI_ShowMiniToolBar) != "no";
-    if (!fIsActive)
-        return;
-
-    /* Get the mini-toolbar alignment: */
-    bool fIsAtTop = m.GetExtraData(GUI_MiniToolBarAlignment) == "top";
-    /* Get the mini-toolbar auto-hide feature availability: */
-    bool fIsAutoHide = m.GetExtraData(GUI_MiniToolBarAutoHide) != "off";
+    /* Make sure mini-toolbar is not restricted: */
+    if (!gEDataManager->showMiniToolbar(vboxGlobal().managedVMUuid()))
+        return;
+
     /* Create mini-toolbar: */
     m_pMiniToolBar = new UIRuntimeMiniToolBar(this,
-                                              fIsAtTop ? Qt::AlignTop : Qt::AlignBottom,
                                               IntegrationMode_Embedded,
-                                              fIsAutoHide);
+                                              gEDataManager->miniToolbarAlignment(vboxGlobal().managedVMUuid()),
+                                              gEDataManager->autoHideMiniToolbar(vboxGlobal().managedVMUuid()));
     QList<QMenu*> menus;
     RuntimeMenuType restrictedMenus = gEDataManager->restrictedRuntimeMenuTypes(vboxGlobal().managedVMUuid());
@@ -275,5 +267,5 @@
 
     /* Save mini-toolbar settings: */
-    machine().SetExtraData(GUI_MiniToolBarAutoHide, m_pMiniToolBar->autoHide() ? QString() : "off");
+    gEDataManager->setAutoHideMiniToolbar(m_pMiniToolBar->autoHide(), vboxGlobal().managedVMUuid());
     /* Delete mini-toolbar: */
     delete m_pMiniToolBar;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 51654)
@@ -128,21 +128,13 @@
 void UIMachineWindowSeamless::prepareMiniToolbar()
 {
-    /* Get machine: */
-    CMachine m = machine();
-
-    /* Make sure mini-toolbar is necessary: */
-    bool fIsActive = m.GetExtraData(GUI_ShowMiniToolBar) != "no";
-    if (!fIsActive)
+    /* Make sure mini-toolbar is not restricted: */
+    if (!gEDataManager->showMiniToolbar(vboxGlobal().managedVMUuid()))
         return;
 
-    /* Get the mini-toolbar alignment: */
-    bool fIsAtTop = m.GetExtraData(GUI_MiniToolBarAlignment) == "top";
-    /* Get the mini-toolbar auto-hide feature availability: */
-    bool fIsAutoHide = m.GetExtraData(GUI_MiniToolBarAutoHide) != "off";
     /* Create mini-toolbar: */
     m_pMiniToolBar = new UIRuntimeMiniToolBar(this,
-                                              fIsAtTop ? Qt::AlignTop : Qt::AlignBottom,
                                               IntegrationMode_External,
-                                              fIsAutoHide);
+                                              gEDataManager->miniToolbarAlignment(vboxGlobal().managedVMUuid()),
+                                              gEDataManager->autoHideMiniToolbar(vboxGlobal().managedVMUuid()));
     m_pMiniToolBar->show();
     QList<QMenu*> menus;
@@ -170,5 +162,5 @@
 
     /* Save mini-toolbar settings: */
-    machine().SetExtraData(GUI_MiniToolBarAutoHide, m_pMiniToolBar->autoHide() ? QString() : "off");
+    gEDataManager->setAutoHideMiniToolbar(m_pMiniToolBar->autoHide(), vboxGlobal().managedVMUuid());
     /* Delete mini-toolbar: */
     delete m_pMiniToolBar;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 51654)
@@ -23,7 +23,8 @@
 
 /* GUI includes: */
+#include "QIWidgetValidator.h"
 #include "UIMachineSettingsGeneral.h"
+#include "UIExtraDataManager.h"
 #include "UIMessageCenter.h"
-#include "QIWidgetValidator.h"
 #include "UIConverter.h"
 
@@ -106,8 +107,6 @@
     generalData.m_strName = m_machine.GetName();
     generalData.m_strGuestOsTypeId = m_machine.GetOSTypeId();
-    QString strShowMiniToolBar = m_machine.GetExtraData(GUI_ShowMiniToolBar);
-    generalData.m_fShowMiniToolBar = strShowMiniToolBar != "no";
-    QString strMiniToolBarAlignment = m_machine.GetExtraData(GUI_MiniToolBarAlignment);
-    generalData.m_fMiniToolBarAtTop = strMiniToolBarAlignment == "top";
+    generalData.m_fShowMiniToolBar = gEDataManager->showMiniToolbar(m_machine.GetId());
+    generalData.m_fMiniToolBarAtTop = gEDataManager->miniToolbarAlignment(m_machine.GetId()) == Qt::AlignTop;
     generalData.m_strSnapshotsFolder = m_machine.GetSnapshotFolder();
     generalData.m_strSnapshotsHomeDir = QFileInfo(m_machine.GetSettingsFilePath()).absolutePath();
@@ -189,6 +188,6 @@
             m_machine.SetClipboardMode(generalData.m_clipboardMode);
             m_machine.SetDnDMode(generalData.m_dndMode);
-            m_machine.SetExtraData(GUI_ShowMiniToolBar, generalData.m_fShowMiniToolBar ? "yes" : "no");
-            m_machine.SetExtraData(GUI_MiniToolBarAlignment, generalData.m_fMiniToolBarAtTop ? "top" : "bottom");
+            gEDataManager->setShowMiniToolbar(generalData.m_fShowMiniToolBar, m_machine.GetId());
+            gEDataManager->setMiniToolbarAlignment(generalData.m_fMiniToolBarAtTop ? Qt::AlignTop : Qt::AlignBottom, m_machine.GetId());
             /* Description tab: */
             m_machine.SetDescription(generalData.m_strDescription);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp	(revision 51654)
@@ -42,11 +42,11 @@
 
 UIRuntimeMiniToolBar::UIRuntimeMiniToolBar(QWidget *pParent,
+                                           IntegrationMode integrationMode,
                                            Qt::Alignment alignment,
-                                           IntegrationMode integrationMode,
-                                           bool fAutoHide /* = true*/)
+                                           bool fAutoHide /* = true */)
     : QWidget(pParent)
     /* Variables: General stuff: */
+    , m_integrationMode(integrationMode)
     , m_alignment(alignment)
-    , m_integrationMode(integrationMode)
     , m_fAutoHide(fAutoHide)
     /* Variables: Contents stuff: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.h	(revision 51653)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.h	(revision 51654)
@@ -71,6 +71,6 @@
     /* Constructor/destructor: */
     UIRuntimeMiniToolBar(QWidget *pParent,
+                         IntegrationMode integrationMode,
                          Qt::Alignment alignment,
-                         IntegrationMode integrationMode,
                          bool fAutoHide = true);
     ~UIRuntimeMiniToolBar();
@@ -131,6 +131,6 @@
 
     /* Variables: General stuff: */
+    IntegrationMode m_integrationMode;
     Qt::Alignment m_alignment;
-    IntegrationMode m_integrationMode;
     bool m_fAutoHide;
 
