Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 73133)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 73134)
@@ -193,6 +193,23 @@
     }
 
-    /** Defines whether passed Video Capture Options @a enmOptions is @a flags (enabled). */
-    static QString setVideoCaptureOptionEnabled(const QString &strOptions,
+    /** Searches for ac_profile and return 1 for "low", 2 for "med", and 3 for "high". Returns 2
+        if ac_profile is missing */
+    static int getAudioQualityFromOptions(const QString &strOptions)
+    {
+        QList<VideoCaptureOption> aKeys;
+        QStringList aValues;
+        parseVideoCaptureOptions(strOptions, aKeys, aValues);
+        int iIndex = aKeys.indexOf(VideoCaptureOption_AC_Profile);
+        if (iIndex == -1)
+            return 2;
+        if (aValues.value(iIndex).compare("low", Qt::CaseInsensitive) == 0)
+            return 1;
+        if (aValues.value(iIndex).compare("high", Qt::CaseInsensitive) == 0)
+            return 3;
+        return 2;
+    }
+
+    /** Sets the video capture options for @a enmOptions to @a values. */
+    static QString setVideoCaptureOptions(const QString &strOptions,
                                                 const QVector<VideoCaptureOption> &enmOptions,
                                                 const QStringList &values)
@@ -421,4 +438,5 @@
     m_pScrollerVideoCaptureScreens->setValue(oldDisplayData.m_screens);
 
+    /* Load data from old 'Video Capture Option': */
     bool fAudioCapture = UIDataSettingsMachineDisplay::isVideoCaptureOptionEnabled(oldDisplayData.m_strVideoCaptureOptions,
                                                                                    UIDataSettingsMachineDisplay::VideoCaptureOption_AC);
@@ -431,4 +449,5 @@
     else if (fAudioCapture && !fVideoCapture)
         m_pComboBoxCaptureMode->setCurrentIndex(static_cast<int>(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly));
+    m_pSliderAudioCaptureQuality->setValue(UIDataSettingsMachineDisplay::getAudioQualityFromOptions(oldDisplayData.m_strVideoCaptureOptions));
 
     /* Polish page finally: */
@@ -481,5 +500,10 @@
     optionValues.push_back((m_pComboBoxCaptureMode->currentIndex() == static_cast<int>(UIDataSettingsMachineDisplay::CaptureMode_VideoAudio) ||
                             m_pComboBoxCaptureMode->currentIndex() == static_cast<int>(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly)) ? "true" : "false");
-    optionValues.push_back("low");
+    if (m_pSliderAudioCaptureQuality->value() == 1)
+        optionValues.push_back("low");
+    else if (m_pSliderAudioCaptureQuality->value() == 2)
+        optionValues.push_back("med");
+    else
+        optionValues.push_back("high");
 
     QVector<UIDataSettingsMachineDisplay::VideoCaptureOption> videoCaptureOptionVector;
@@ -488,7 +512,7 @@
     videoCaptureOptionVector.push_back(UIDataSettingsMachineDisplay::VideoCaptureOption_AC_Profile);
 
-    newDisplayData.m_strVideoCaptureOptions = UIDataSettingsMachineDisplay::setVideoCaptureOptionEnabled(m_pCache->base().m_strVideoCaptureOptions,
-                                                                                                         videoCaptureOptionVector,
-                                                                                                         optionValues);
+    newDisplayData.m_strVideoCaptureOptions = UIDataSettingsMachineDisplay::setVideoCaptureOptions(m_pCache->base().m_strVideoCaptureOptions,
+                                                                                                   videoCaptureOptionVector,
+                                                                                                   optionValues);
 
     /* Cache new display data: */
@@ -692,5 +716,7 @@
     m_pLabelVideoCaptureQualityMed->setText(tr("medium", "quality"));
     m_pLabelVideoCaptureQualityMax->setText(tr("high", "quality"));
-
+    m_pLabelAudioCaptureQualityMin->setText(tr("low", "quality"));
+    m_pLabelAudioCaptureQualityMed->setText(tr("medium", "quality"));
+    m_pLabelAudioCaptureQualityMax->setText(tr("high", "quality"));
     updateVideoCaptureFileSizeHint();
 }
@@ -923,5 +949,4 @@
         /* Prepare 'Video Capture' tab: */
         prepareTabVideoCapture();
-        prepareModeCombo();
         /* Prepare connections: */
         prepareConnections();
@@ -1048,4 +1073,12 @@
     /* Tab and it's layout created in the .ui file. */
     {
+        /* Capture mode selection combo box. */
+        AssertPtrReturnVoid(m_pComboBoxCaptureMode);
+        {
+            m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoAudio, "Video/Audio");
+            m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoOnly, "Video Only");
+            m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly, "Audio Only");
+        }
+
         /* File-path selector created in the .ui file. */
         AssertPtrReturnVoid(m_pEditorVideoCapturePath);
@@ -1151,14 +1184,19 @@
             m_pEditorVideoCaptureBitRate->setMaximum(VIDEO_CAPTURE_BIT_RATE_MAX);
         }
-    }
-}
-
-void UIMachineSettingsDisplay::prepareModeCombo()
-{
-    if (!m_pComboBoxCaptureMode)
-        return;
-    m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoAudio, "Video/Audio");
-    m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoOnly, "Video Only");
-    m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly, "Audio Only");
+
+         /* Frame-rate slider created in the .ui file. */
+        AssertPtrReturnVoid(m_pSliderAudioCaptureQuality);
+        {
+            /* Configure slider: */
+            m_pSliderAudioCaptureQuality->setMinimum(1);
+            m_pSliderAudioCaptureQuality->setMaximum(3);
+            m_pSliderAudioCaptureQuality->setPageStep(1);
+            m_pSliderAudioCaptureQuality->setSingleStep(1);
+            m_pSliderAudioCaptureQuality->setTickInterval(1);
+            m_pSliderAudioCaptureQuality->setSnappingEnabled(true);
+            m_pSliderAudioCaptureQuality->setOptimalHint(1, 2);
+            m_pSliderAudioCaptureQuality->setWarningHint(2, 3);
+        }
+    }
 }
 
@@ -1611,4 +1649,5 @@
             if (fSuccess && newDisplayData.m_strVideoCaptureOptions != oldDisplayData.m_strVideoCaptureOptions)
             {
+                printf("%s\n", qPrintable(newDisplayData.m_strVideoCaptureOptions));
                 m_machine.SetVideoCaptureOptions(newDisplayData.m_strVideoCaptureOptions);
                 fSuccess = m_machine.isOk();
@@ -1651,6 +1690,6 @@
     m_pEditorVideoCaptureFrameRate->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture);
 
-    m_pLabelVideoCaptureRate->setEnabled(fIsVideoCaptureOptionsEnabled);
-    m_pContainerSliderVideoCaptureQuality->setEnabled(fIsVideoCaptureOptionsEnabled);
+    m_pLabelVideoCaptureRate->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture);
+    m_pContainerSliderVideoCaptureQuality->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture);
     m_pEditorVideoCaptureBitRate->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture);
     m_pScrollerVideoCaptureScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fVideoCapture);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 73133)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h	(revision 73134)
@@ -126,6 +126,4 @@
     /** Prepares 'Video Capture' tab. */
     void prepareTabVideoCapture();
-    /** Populates Capture Mode combobox with related items. */
-    void prepareModeCombo();
     /** Prepares connections. */
     void prepareConnections();
@@ -152,5 +150,4 @@
     /** Calculates Video Capture quality for passed @a iFrameWidth, @a iFrameHeight, @a iFrameRate and @a iBitRate. */
     static int calculateQuality(int iFrameWidth, int iFrameHeight, int iFrameRate, int iBitRate);
-
     /** Saves existing display data from the cache. */
     bool saveDisplayData();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui	(revision 73133)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui	(revision 73134)
@@ -664,8 +664,75 @@
               </widget>
              </item>
-             <item row="7" column="1">
+              <item row="7" column="0">
+              <widget class="QLabel" name="m_pAudioCaptureQualityLabel">
+               <property name="text">
+                <string>&amp;Audio Quality:</string>
+               </property>
+               <property name="alignment">
+                <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+               </property>
+               <property name="buddy">
+                <cstring>m_pSliderAudioCaptureQuality</cstring>
+               </property>
+              </widget>
+             </item>
+             <item row="7" column="1" rowspan="2">
+              <widget class="QWidget" name="m_pContainerSliderAudioCaptureQuality">
+               <layout class="QGridLayout" name="m_pContainerLayoutSliderAudioCaptureQuality">
+                <property name="spacing">
+                 <number>0</number>
+                </property>
+                <item row="0" column="0" colspan="5">
+                 <widget class="QIAdvancedSlider" name="m_pSliderAudioCaptureQuality">
+                  <property name="whatsThis">
+                   <string>Controls the &lt;b>quality&lt;/b>. Increasing this value will make the video look better at the cost of an increased file size.</string>
+                  </property>
+                  <property name="orientation">
+                   <enum>Qt::Horizontal</enum>
+                  </property>
+                 </widget>
+                </item>
+                <item row="1" column="0">
+                 <widget class="QLabel" name="m_pLabelAudioCaptureQualityMin"/>
+                </item>
+                <item row="1" column="1">
+                 <spacer name="m_pStretchAudioCaptureQualityLeft">
+                  <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_pLabelAudioCaptureQualityMed"/>
+                </item>
+                <item row="1" column="3">
+                 <spacer name="m_pStretchAudioCaptureQualityRight">
+                  <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="4">
+                 <widget class="QLabel" name="m_pLabelAudioCaptureQualityMax"/>
+                </item>
+               </layout>
+              </widget>
+             </item>
+             <item row="9" column="1">
               <widget class="QLabel" name="m_pLabelVideoCaptureSizeHint"/>
              </item>
-             <item row="8" column="0">
+             <item row="10" column="0">
               <widget class="QLabel" name="m_pLabelVideoCaptureScreens">
                <property name="text">
@@ -680,5 +747,5 @@
               </widget>
              </item>
-             <item row="8" column="1" colspan="3">
+             <item row="10" column="1" colspan="3">
               <widget class="UIFilmContainer" name="m_pScrollerVideoCaptureScreens">
                <property name="whatsThis">
