Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 53400)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 53401)
@@ -3275,4 +3275,10 @@
 }
 
+void UIExtraDataManager::setScaleFactor(double dScaleFactor, const QString &strID)
+{
+    /* Set corresponding extra-data value: */
+    setExtraDataString(GUI_ScaleFactor, QString::number(dScaleFactor), strID);
+}
+
 QRect UIExtraDataManager::informationWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QString &strID)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 53400)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 53401)
@@ -454,6 +454,8 @@
         bool hidLedsSyncState(const QString &strID);
 
-        /** Returns scale-factor. */
+        /** Returns the scale-factor. */
         double scaleFactor(const QString &strID);
+        /** Defines the @a dScaleFactor. */
+        void setScaleFactor(double dScaleFactor, const QString &strID);
     /** @} */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 53400)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 53401)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2008-2013 Oracle Corporation
+ * Copyright (C) 2008-2014 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -142,4 +142,5 @@
 
     /* Cache Machine Window data: */
+    displayData.m_dScaleFactor = gEDataManager->scaleFactor(m_machine.GetId());
     displayData.m_fShowMiniToolBar = gEDataManager->miniToolbarEnabled(m_machine.GetId());
     displayData.m_fMiniToolBarAtTop = gEDataManager->miniToolbarAlignment(m_machine.GetId()) == Qt::AlignTop;
@@ -197,4 +198,5 @@
     m_pStatusBarEditor->setMachineID(strMachineID);
     m_pMenuBarEditor->setActionPool(m_pActionPool);
+    m_pEditorGuestScreenScale->setValue(displayData.m_dScaleFactor * 100);
     m_pCheckBoxShowMiniToolBar->setChecked(displayData.m_fShowMiniToolBar);
     m_pComboToolBarAlignment->setChecked(displayData.m_fMiniToolBarAtTop);
@@ -243,4 +245,5 @@
 
     /* Gather Machine Window data from page: */
+    displayData.m_dScaleFactor = (double)m_pEditorGuestScreenScale->value() / 100;
     displayData.m_fShowMiniToolBar = m_pCheckBoxShowMiniToolBar->isChecked();
     displayData.m_fMiniToolBarAtTop = m_pComboToolBarAlignment->isChecked();
@@ -331,4 +334,5 @@
         if (isMachineInValidMode())
         {
+            gEDataManager->setScaleFactor(displayData.m_dScaleFactor, m_machine.GetId());
             gEDataManager->setMiniToolbarEnabled(displayData.m_fShowMiniToolBar, m_machine.GetId());
             gEDataManager->setMiniToolbarAlignment(displayData.m_fMiniToolBarAtTop ? Qt::AlignTop : Qt::AlignBottom, m_machine.GetId());
@@ -497,5 +501,7 @@
 
     /* Machine Window tab-order: */
-    setTabOrder(m_pEditorVideoCaptureBitRate, m_pCheckBoxShowMiniToolBar);
+    setTabOrder(m_pEditorVideoCaptureBitRate, m_pSliderGuestScreenScale);
+    setTabOrder(m_pSliderGuestScreenScale, m_pEditorGuestScreenScale);
+    setTabOrder(m_pEditorGuestScreenScale, m_pCheckBoxShowMiniToolBar);
     setTabOrder(m_pCheckBoxShowMiniToolBar, m_pComboToolBarAlignment);
 }
@@ -723,4 +729,20 @@
     m_pSliderVideoCaptureQuality->blockSignals(false);
     updateVideoCaptureSizeHint();
+}
+
+void UIMachineSettingsDisplay::sltHandleGuestScreenScaleSliderChange()
+{
+    /* Apply proposed scale-factor: */
+    m_pEditorGuestScreenScale->blockSignals(true);
+    m_pEditorGuestScreenScale->setValue(m_pSliderGuestScreenScale->value());
+    m_pEditorGuestScreenScale->blockSignals(false);
+}
+
+void UIMachineSettingsDisplay::sltHandleGuestScreenScaleEditorChange()
+{
+    /* Apply proposed scale-factor: */
+    m_pSliderGuestScreenScale->blockSignals(true);
+    m_pSliderGuestScreenScale->setValue(m_pEditorGuestScreenScale->value());
+    m_pSliderGuestScreenScale->blockSignals(false);
 }
 
@@ -887,4 +909,19 @@
     /* Create personal action-pool: */
     m_pActionPool = UIActionPool::create(UIActionPoolType_Runtime);
+
+    /* Prepare scale-factor slider: */
+    m_pSliderGuestScreenScale->setMinimum(100);
+    m_pSliderGuestScreenScale->setMaximum(200);
+    m_pSliderGuestScreenScale->setPageStep(10);
+    m_pSliderGuestScreenScale->setSingleStep(1);
+    m_pSliderGuestScreenScale->setTickInterval(10);
+    m_pSliderGuestScreenScale->setSnappingEnabled(true);
+    connect(m_pSliderGuestScreenScale, SIGNAL(valueChanged(int)), this, SLOT(sltHandleGuestScreenScaleSliderChange()));
+
+    /* Prepare scale-factor editor: */
+    m_pEditorGuestScreenScale->setMinimum(100);
+    m_pEditorGuestScreenScale->setMaximum(200);
+    vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorGuestScreenScale, 5);
+    connect(m_pEditorGuestScreenScale, SIGNAL(valueChanged(int)), this, SLOT(sltHandleGuestScreenScaleEditorChange()));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 53400)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 53401)
@@ -4,5 +4,5 @@
 
 /*
- * Copyright (C) 2008-2013 Oracle Corporation
+ * Copyright (C) 2008-2014 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -52,4 +52,5 @@
         , m_iVideoCaptureFrameRate(0)
         , m_iVideoCaptureBitRate(0)
+        , m_dScaleFactor(1)
         , m_fShowMiniToolBar(false)
         , m_fMiniToolBarAtTop(false)
@@ -78,4 +79,5 @@
                (m_iVideoCaptureBitRate == other.m_iVideoCaptureBitRate) &&
                (m_screens == other.m_screens) &&
+               (m_dScaleFactor == other.m_dScaleFactor) &&
                (m_fShowMiniToolBar == other.m_fShowMiniToolBar) &&
                (m_fMiniToolBarAtTop == other.m_fMiniToolBarAtTop);
@@ -113,4 +115,5 @@
 
     /* Variables: Machine Window stuff: */
+    double m_dScaleFactor;
     bool m_fShowMiniToolBar;
     bool m_fMiniToolBarAtTop;
@@ -185,4 +188,8 @@
     void sltHandleVideoCaptureQualitySliderChange();
     void sltHandleVideoCaptureBitRateEditorChange();
+
+    /* Handlers: Guest-screen scale-factor stuff: */
+    void sltHandleGuestScreenScaleSliderChange();
+    void sltHandleGuestScreenScaleEditorChange();
 
 private:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui	(revision 53400)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui	(revision 53401)
@@ -3,5 +3,5 @@
  VBox frontends: Qt4 GUI ("VirtualBox"):
 
- Copyright (C) 2008-2013 Oracle Corporation
+ Copyright (C) 2008-2014 Oracle Corporation
 
  This file is part of VirtualBox Open Source Edition (OSE), as
@@ -650,5 +650,5 @@
       </attribute>
       <layout class="QGridLayout" name="m_pLayoutTabMachineWindow">
-       <item row="0" column="0" colspan="2">
+       <item row="0" column="0" colspan="3">
         <widget class="UIMenuBarEditorWidget" name="m_pMenuBarEditor">
          <property name="whatsThis">
@@ -658,4 +658,68 @@
        </item>
        <item row="1" column="0">
+        <widget class="QLabel" name="m_pLabelGuestScreenScale">
+         <property name="text">
+          <string>Screen Scale Factor:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1" rowspan="2">
+        <layout class="QGridLayout" name="m_pLayoutGuestScreenScaleSlider">
+         <property name="spacing">
+          <number>0</number>
+         </property>
+         <item row="0" column="0" colspan="3">
+          <widget class="QIAdvancedSlider" name="m_pSliderGuestScreenScale">
+           <property name="whatsThis">
+            <string>This setting determines the guest-screen scale-factor.</string>
+           </property>
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="m_pLabelGuestScreenScaleMin">
+           <property name="text">
+            <string>100%</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="1">
+          <spacer name="m_pSpacerGuestScreenScale">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>0</width>
+             <height>0</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="1" column="2">
+          <widget class="QLabel" name="m_pLabelGuestScreenScaleMax">
+           <property name="text">
+            <string>200%</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="2">
+        <widget class="QSpinBox" name="m_pEditorGuestScreenScale">
+         <property name="whatsThis">
+          <string>This setting determines the guest-screen scale-factor.</string>
+         </property>
+         <property name="suffix">
+          <string>%</string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
         <widget class="QLabel" name="m_pLabelMiniToolBar">
          <property name="text">
@@ -667,5 +731,5 @@
         </widget>
        </item>
-       <item row="1" column="1">
+       <item row="3" column="1" colspan="2">
         <widget class="QCheckBox" name="m_pCheckBoxShowMiniToolBar">
          <property name="sizePolicy">
@@ -686,5 +750,5 @@
         </widget>
        </item>
-       <item row="2" column="1">
+       <item row="4" column="1" colspan="2">
         <widget class="QCheckBox" name="m_pComboToolBarAlignment">
          <property name="sizePolicy">
@@ -705,5 +769,5 @@
         </widget>
        </item>
-       <item row="3" column="0" colspan="2">
+       <item row="5" column="0" colspan="3">
         <spacer name="m_pSpacer">
          <property name="orientation">
@@ -718,5 +782,5 @@
         </spacer>
        </item>
-       <item row="4" column="0" colspan="2">
+       <item row="6" column="0" colspan="3">
         <widget class="UIStatusBarEditorWidget" name="m_pStatusBarEditor">
          <property name="whatsThis">
