Changeset 73134 in vbox
- Timestamp:
- Jul 14, 2018 8:23:03 PM (6 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine
- Files:
-
- 3 edited
-
UIMachineSettingsDisplay.cpp (modified) (11 diffs)
-
UIMachineSettingsDisplay.h (modified) (2 diffs)
-
UIMachineSettingsDisplay.ui (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
r73130 r73134 193 193 } 194 194 195 /** Defines whether passed Video Capture Options @a enmOptions is @a flags (enabled). */ 196 static QString setVideoCaptureOptionEnabled(const QString &strOptions, 195 /** Searches for ac_profile and return 1 for "low", 2 for "med", and 3 for "high". Returns 2 196 if ac_profile is missing */ 197 static int getAudioQualityFromOptions(const QString &strOptions) 198 { 199 QList<VideoCaptureOption> aKeys; 200 QStringList aValues; 201 parseVideoCaptureOptions(strOptions, aKeys, aValues); 202 int iIndex = aKeys.indexOf(VideoCaptureOption_AC_Profile); 203 if (iIndex == -1) 204 return 2; 205 if (aValues.value(iIndex).compare("low", Qt::CaseInsensitive) == 0) 206 return 1; 207 if (aValues.value(iIndex).compare("high", Qt::CaseInsensitive) == 0) 208 return 3; 209 return 2; 210 } 211 212 /** Sets the video capture options for @a enmOptions to @a values. */ 213 static QString setVideoCaptureOptions(const QString &strOptions, 197 214 const QVector<VideoCaptureOption> &enmOptions, 198 215 const QStringList &values) … … 421 438 m_pScrollerVideoCaptureScreens->setValue(oldDisplayData.m_screens); 422 439 440 /* Load data from old 'Video Capture Option': */ 423 441 bool fAudioCapture = UIDataSettingsMachineDisplay::isVideoCaptureOptionEnabled(oldDisplayData.m_strVideoCaptureOptions, 424 442 UIDataSettingsMachineDisplay::VideoCaptureOption_AC); … … 431 449 else if (fAudioCapture && !fVideoCapture) 432 450 m_pComboBoxCaptureMode->setCurrentIndex(static_cast<int>(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly)); 451 m_pSliderAudioCaptureQuality->setValue(UIDataSettingsMachineDisplay::getAudioQualityFromOptions(oldDisplayData.m_strVideoCaptureOptions)); 433 452 434 453 /* Polish page finally: */ … … 481 500 optionValues.push_back((m_pComboBoxCaptureMode->currentIndex() == static_cast<int>(UIDataSettingsMachineDisplay::CaptureMode_VideoAudio) || 482 501 m_pComboBoxCaptureMode->currentIndex() == static_cast<int>(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly)) ? "true" : "false"); 483 optionValues.push_back("low"); 502 if (m_pSliderAudioCaptureQuality->value() == 1) 503 optionValues.push_back("low"); 504 else if (m_pSliderAudioCaptureQuality->value() == 2) 505 optionValues.push_back("med"); 506 else 507 optionValues.push_back("high"); 484 508 485 509 QVector<UIDataSettingsMachineDisplay::VideoCaptureOption> videoCaptureOptionVector; … … 488 512 videoCaptureOptionVector.push_back(UIDataSettingsMachineDisplay::VideoCaptureOption_AC_Profile); 489 513 490 newDisplayData.m_strVideoCaptureOptions = UIDataSettingsMachineDisplay::setVideoCaptureOption Enabled(m_pCache->base().m_strVideoCaptureOptions,491 videoCaptureOptionVector,492 optionValues);514 newDisplayData.m_strVideoCaptureOptions = UIDataSettingsMachineDisplay::setVideoCaptureOptions(m_pCache->base().m_strVideoCaptureOptions, 515 videoCaptureOptionVector, 516 optionValues); 493 517 494 518 /* Cache new display data: */ … … 692 716 m_pLabelVideoCaptureQualityMed->setText(tr("medium", "quality")); 693 717 m_pLabelVideoCaptureQualityMax->setText(tr("high", "quality")); 694 718 m_pLabelAudioCaptureQualityMin->setText(tr("low", "quality")); 719 m_pLabelAudioCaptureQualityMed->setText(tr("medium", "quality")); 720 m_pLabelAudioCaptureQualityMax->setText(tr("high", "quality")); 695 721 updateVideoCaptureFileSizeHint(); 696 722 } … … 923 949 /* Prepare 'Video Capture' tab: */ 924 950 prepareTabVideoCapture(); 925 prepareModeCombo();926 951 /* Prepare connections: */ 927 952 prepareConnections(); … … 1048 1073 /* Tab and it's layout created in the .ui file. */ 1049 1074 { 1075 /* Capture mode selection combo box. */ 1076 AssertPtrReturnVoid(m_pComboBoxCaptureMode); 1077 { 1078 m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoAudio, "Video/Audio"); 1079 m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoOnly, "Video Only"); 1080 m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly, "Audio Only"); 1081 } 1082 1050 1083 /* File-path selector created in the .ui file. */ 1051 1084 AssertPtrReturnVoid(m_pEditorVideoCapturePath); … … 1151 1184 m_pEditorVideoCaptureBitRate->setMaximum(VIDEO_CAPTURE_BIT_RATE_MAX); 1152 1185 } 1153 } 1154 } 1155 1156 void UIMachineSettingsDisplay::prepareModeCombo() 1157 { 1158 if (!m_pComboBoxCaptureMode) 1159 return; 1160 m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoAudio, "Video/Audio"); 1161 m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_VideoOnly, "Video Only"); 1162 m_pComboBoxCaptureMode->insertItem(UIDataSettingsMachineDisplay::CaptureMode_AudioOnly, "Audio Only"); 1186 1187 /* Frame-rate slider created in the .ui file. */ 1188 AssertPtrReturnVoid(m_pSliderAudioCaptureQuality); 1189 { 1190 /* Configure slider: */ 1191 m_pSliderAudioCaptureQuality->setMinimum(1); 1192 m_pSliderAudioCaptureQuality->setMaximum(3); 1193 m_pSliderAudioCaptureQuality->setPageStep(1); 1194 m_pSliderAudioCaptureQuality->setSingleStep(1); 1195 m_pSliderAudioCaptureQuality->setTickInterval(1); 1196 m_pSliderAudioCaptureQuality->setSnappingEnabled(true); 1197 m_pSliderAudioCaptureQuality->setOptimalHint(1, 2); 1198 m_pSliderAudioCaptureQuality->setWarningHint(2, 3); 1199 } 1200 } 1163 1201 } 1164 1202 … … 1611 1649 if (fSuccess && newDisplayData.m_strVideoCaptureOptions != oldDisplayData.m_strVideoCaptureOptions) 1612 1650 { 1651 printf("%s\n", qPrintable(newDisplayData.m_strVideoCaptureOptions)); 1613 1652 m_machine.SetVideoCaptureOptions(newDisplayData.m_strVideoCaptureOptions); 1614 1653 fSuccess = m_machine.isOk(); … … 1651 1690 m_pEditorVideoCaptureFrameRate->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture); 1652 1691 1653 m_pLabelVideoCaptureRate->setEnabled(fIsVideoCaptureOptionsEnabled );1654 m_pContainerSliderVideoCaptureQuality->setEnabled(fIsVideoCaptureOptionsEnabled );1692 m_pLabelVideoCaptureRate->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture); 1693 m_pContainerSliderVideoCaptureQuality->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture); 1655 1694 m_pEditorVideoCaptureBitRate->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture); 1656 1695 m_pScrollerVideoCaptureScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fVideoCapture); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
r73092 r73134 126 126 /** Prepares 'Video Capture' tab. */ 127 127 void prepareTabVideoCapture(); 128 /** Populates Capture Mode combobox with related items. */129 void prepareModeCombo();130 128 /** Prepares connections. */ 131 129 void prepareConnections(); … … 152 150 /** Calculates Video Capture quality for passed @a iFrameWidth, @a iFrameHeight, @a iFrameRate and @a iBitRate. */ 153 151 static int calculateQuality(int iFrameWidth, int iFrameHeight, int iFrameRate, int iBitRate); 154 155 152 /** Saves existing display data from the cache. */ 156 153 bool saveDisplayData(); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.ui
r73092 r73134 664 664 </widget> 665 665 </item> 666 <item row="7" column="1"> 666 <item row="7" column="0"> 667 <widget class="QLabel" name="m_pAudioCaptureQualityLabel"> 668 <property name="text"> 669 <string>&Audio Quality:</string> 670 </property> 671 <property name="alignment"> 672 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 673 </property> 674 <property name="buddy"> 675 <cstring>m_pSliderAudioCaptureQuality</cstring> 676 </property> 677 </widget> 678 </item> 679 <item row="7" column="1" rowspan="2"> 680 <widget class="QWidget" name="m_pContainerSliderAudioCaptureQuality"> 681 <layout class="QGridLayout" name="m_pContainerLayoutSliderAudioCaptureQuality"> 682 <property name="spacing"> 683 <number>0</number> 684 </property> 685 <item row="0" column="0" colspan="5"> 686 <widget class="QIAdvancedSlider" name="m_pSliderAudioCaptureQuality"> 687 <property name="whatsThis"> 688 <string>Controls the <b>quality</b>. Increasing this value will make the video look better at the cost of an increased file size.</string> 689 </property> 690 <property name="orientation"> 691 <enum>Qt::Horizontal</enum> 692 </property> 693 </widget> 694 </item> 695 <item row="1" column="0"> 696 <widget class="QLabel" name="m_pLabelAudioCaptureQualityMin"/> 697 </item> 698 <item row="1" column="1"> 699 <spacer name="m_pStretchAudioCaptureQualityLeft"> 700 <property name="orientation"> 701 <enum>Qt::Horizontal</enum> 702 </property> 703 <property name="sizeHint" stdset="0"> 704 <size> 705 <width>0</width> 706 <height>0</height> 707 </size> 708 </property> 709 </spacer> 710 </item> 711 <item row="1" column="2"> 712 <widget class="QLabel" name="m_pLabelAudioCaptureQualityMed"/> 713 </item> 714 <item row="1" column="3"> 715 <spacer name="m_pStretchAudioCaptureQualityRight"> 716 <property name="orientation"> 717 <enum>Qt::Horizontal</enum> 718 </property> 719 <property name="sizeHint" stdset="0"> 720 <size> 721 <width>0</width> 722 <height>0</height> 723 </size> 724 </property> 725 </spacer> 726 </item> 727 <item row="1" column="4"> 728 <widget class="QLabel" name="m_pLabelAudioCaptureQualityMax"/> 729 </item> 730 </layout> 731 </widget> 732 </item> 733 <item row="9" column="1"> 667 734 <widget class="QLabel" name="m_pLabelVideoCaptureSizeHint"/> 668 735 </item> 669 <item row=" 8" column="0">736 <item row="10" column="0"> 670 737 <widget class="QLabel" name="m_pLabelVideoCaptureScreens"> 671 738 <property name="text"> … … 680 747 </widget> 681 748 </item> 682 <item row=" 8" column="1" colspan="3">749 <item row="10" column="1" colspan="3"> 683 750 <widget class="UIFilmContainer" name="m_pScrollerVideoCaptureScreens"> 684 751 <property name="whatsThis">
Note:
See TracChangeset
for help on using the changeset viewer.

