Changeset 85851 in vbox
- Timestamp:
- Aug 20, 2020 6:44:40 PM (4 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
r85710 r85851 298 298 , m_enmGraphicsControllerTypeRecommended(KGraphicsControllerType_Null) 299 299 , m_pCache(0) 300 , m_pTabWidget(0) 301 , m_pTabScreen(0) 302 , m_pLabelVideoMemorySize(0) 303 , m_pEditorVideoMemorySize(0) 304 , m_pLabelMonitorCount(0) 305 , m_pSliderMonitorCount(0) 306 , m_pSpinboxMonitorCount(0) 307 , m_pLabelMonitorCountMin(0) 308 , m_pLabelMonitorCountMax(0) 309 , m_pLabelScaleFactor(0) 310 , m_pEditorScaleFactor(0) 311 , m_pLabelGraphicsController(0) 312 , m_pEditorGraphicsController(0) 313 , m_pLabelAcceleration(0) 300 314 , m_pCheckbox3D(0) 315 , m_pTabRemoteDisplay(0) 301 316 , m_pCheckboxRemoteDisplay(0) 317 , m_pWidgetRemoteDisplaySettings(0) 318 , m_pLabelRemoteDisplayPort(0) 319 , m_pEditorRemoteDisplayPort(0) 320 , m_pLabelRemoteDisplayAuthMethod(0) 321 , m_pComboRemoteDisplayAuthMethod(0) 322 , m_pLabelRemoteDisplayTimeout(0) 323 , m_pEditorRemoteDisplayTimeout(0) 324 , m_pLabelRemoteDisplayOptions(0) 302 325 , m_pCheckboxMultipleConn(0) 303 , m_pCheckboxVideoCapture(0) 304 , m_pComboRemoteDisplayAuthMethod(0) 305 , m_pComboBoxCaptureMode(0) 306 , m_pComboVideoCaptureSize(0) 307 , m_pLabelVideoScreenCountMin(0) 308 , m_pLabelVideoScreenCountMax(0) 309 , m_pLabelVideoCaptureFrameRateMin(0) 310 , m_pLabelVideoCaptureFrameRateMax(0) 311 , m_pLabelVideoCaptureQualityMin(0) 312 , m_pLabelVideoCaptureQualityMed(0) 313 , m_pLabelVideoCaptureQualityMax(0) 314 , m_pLabelAudioCaptureQualityMin(0) 315 , m_pLabelAudioCaptureQualityMed(0) 316 , m_pLabelAudioCaptureQualityMax(0) 317 , m_pVideoMemoryLabel(0) 318 , m_pLabelVideoScreenCount(0) 319 , m_pGraphicsControllerLabel(0) 320 , m_pLabelVideoOptions(0) 321 , m_pLabelRemoteDisplayOptions(0) 322 , m_pLabelCaptureMode(0) 323 , m_pLabelVideoCapturePath(0) 324 , m_pLabelVideoCaptureSizeHint(0) 325 , m_pLabelVideoCaptureSize(0) 326 , m_pLabelVideoCaptureFrameRate(0) 327 , m_pLabelVideoCaptureRate(0) 328 , m_pAudioCaptureQualityLabel(0) 329 , m_pLabelVideoCaptureScreens(0) 330 , m_pLabelGuestScreenScaleFactorEditor(0) 331 , m_pLabelRemoteDisplayPort(0) 332 , m_pLabelRemoteDisplayAuthMethod(0) 333 , m_pLabelRemoteDisplayTimeout(0) 334 , m_pEditorRemoteDisplayPort(0) 335 , m_pEditorRemoteDisplayTimeout(0) 336 , m_pEditorVideoScreenCount(0) 337 , m_pEditorVideoCaptureWidth(0) 338 , m_pEditorVideoCaptureFrameRate(0) 339 , m_pEditorVideoCaptureHeight(0) 340 , m_pEditorVideoCaptureBitRate(0) 341 , m_pGraphicsControllerEditor(0) 342 , m_pScaleFactorEditor(0) 343 , m_pVideoMemoryEditor(0) 344 , m_pEditorVideoCapturePath(0) 345 , m_pScrollerVideoCaptureScreens(0) 346 , m_pSliderAudioCaptureQuality(0) 347 , m_pSliderVideoScreenCount(0) 348 , m_pSliderVideoCaptureFrameRate(0) 349 , m_pSliderVideoCaptureQuality(0) 350 , m_pTabWidget(0) 351 , m_pContainerRemoteDisplay(0) 352 , m_pContainerRemoteDisplayOptions(0) 353 , m_pContainerVideoCapture(0) 354 , m_pContainerSliderVideoCaptureFrameRate(0) 355 , m_pContainerSliderVideoCaptureQuality(0) 356 , m_pContainerSliderAudioCaptureQuality(0) 357 , m_pTabVideo(0) 358 , m_pTabRemoteDisplay(0) 359 , m_pTabVideoCapture(0) 360 , m_pContainerLayoutSliderVideoCaptureQuality(0) 361 , m_pLayout3D(0) 326 327 , m_pTabRecording(0) 328 , m_pCheckboxRecording(0) 329 , m_pWidgetRecordingSettings(0) 330 , m_pLabelRecordingMode(0) 331 , m_pComboRecordingMode(0) 332 , m_pLabelRecordingFilePath(0) 333 , m_pEditorRecordingFilePath(0) 334 , m_pLabelRecordingFrameSize(0) 335 , m_pComboRecordingFrameSize(0) 336 , m_pSpinboxRecordingFrameWidth(0) 337 , m_pSpinboxRecordingFrameHeight(0) 338 , m_pLabelRecordingFrameRate(0) 339 , m_pWidgetRecordingFrameRateSettings(0) 340 , m_pSliderRecordingFrameRate(0) 341 , m_pSpinboxRecordingFrameRate(0) 342 , m_pLabelRecordingFrameRateMin(0) 343 , m_pLabelRecordingFrameRateMax(0) 344 , m_pLabelRecordingVideoQuality(0) 345 , m_pWidgetRecordingVideoQualitySettings(0) 346 , m_pSliderRecordingVideoQuality(0) 347 , m_pSpinboxRecordingVideoQuality(0) 348 , m_pLabelRecordingVideoQualityMin(0) 349 , m_pLabelRecordingVideoQualityMed(0) 350 , m_pLabelRecordingVideoQualityMax(0) 351 , m_pLabelRecordingAudioQuality(0) 352 , m_pWidgetRecordingAudioQualitySettings(0) 353 , m_pSliderRecordingAudioQuality(0) 354 , m_pLabelRecordingAudioQualityMin(0) 355 , m_pLabelRecordingAudioQualityMed(0) 356 , m_pLabelRecordingAudioQualityMax(0) 357 , m_pLabelRecordingSizeHint(0) 358 , m_pLabelRecordingScreens(0) 359 , m_pScrollerRecordingScreens(0) 362 360 { 363 361 /* Prepare: */ … … 379 377 /* Remember new guest OS type: */ 380 378 m_comGuestOSType = comGuestOSType; 381 m_p VideoMemoryEditor->setGuestOSType(m_comGuestOSType);379 m_pEditorVideoMemorySize->setGuestOSType(m_comGuestOSType); 382 380 383 381 #ifdef VBOX_WITH_3D_ACCELERATION … … 385 383 const QString strGuestOSTypeId = m_comGuestOSType.isNotNull() ? m_comGuestOSType.GetId() : QString(); 386 384 m_fWddmModeSupported = UICommon::isWddmCompatibleOsType(strGuestOSTypeId); 387 m_p VideoMemoryEditor->set3DAccelerationSupported(m_fWddmModeSupported);385 m_pEditorVideoMemorySize->set3DAccelerationSupported(m_fWddmModeSupported); 388 386 #endif 389 387 /* Acquire recommended graphics controller type: */ … … 403 401 KGraphicsControllerType UIMachineSettingsDisplay::graphicsControllerTypeRecommended() const 404 402 { 405 return m_p GraphicsControllerEditor->supportedValues().contains(m_enmGraphicsControllerTypeRecommended)403 return m_pEditorGraphicsController->supportedValues().contains(m_enmGraphicsControllerTypeRecommended) 406 404 ? m_enmGraphicsControllerTypeRecommended 407 405 : graphicsControllerTypeCurrent(); … … 410 408 KGraphicsControllerType UIMachineSettingsDisplay::graphicsControllerTypeCurrent() const 411 409 { 412 return m_p GraphicsControllerEditor->value();410 return m_pEditorGraphicsController->value(); 413 411 } 414 412 … … 495 493 const UIDataSettingsMachineDisplay &oldDisplayData = m_pCache->base(); 496 494 495 /* We are doing that *now* because these combos have 496 * dynamical content which depends on cashed value: */ 497 repopulateComboAuthType(); 498 497 499 /* Load old 'Screen' data from the cache: */ 498 m_p EditorVideoScreenCount->setValue(oldDisplayData.m_cGuestScreenCount);499 m_p ScaleFactorEditor->setScaleFactors(oldDisplayData.m_scaleFactors);500 m_p ScaleFactorEditor->setMonitorCount(oldDisplayData.m_cGuestScreenCount);501 m_p GraphicsControllerEditor->setValue(oldDisplayData.m_graphicsControllerType);500 m_pSpinboxMonitorCount->setValue(oldDisplayData.m_cGuestScreenCount); 501 m_pEditorScaleFactor->setScaleFactors(oldDisplayData.m_scaleFactors); 502 m_pEditorScaleFactor->setMonitorCount(oldDisplayData.m_cGuestScreenCount); 503 m_pEditorGraphicsController->setValue(oldDisplayData.m_graphicsControllerType); 502 504 #ifdef VBOX_WITH_3D_ACCELERATION 503 505 m_pCheckbox3D->setChecked(oldDisplayData.m_f3dAccelerationEnabled); 504 506 #endif 505 /* Push required value to m_p VideoMemoryEditor: */507 /* Push required value to m_pEditorVideoMemorySize: */ 506 508 sltHandleGuestScreenCountEditorChange(); 507 509 sltHandleGraphicsControllerComboChange(); … … 510 512 #endif 511 513 // Should be the last one for this tab, since it depends on some of others: 512 m_p VideoMemoryEditor->setValue(oldDisplayData.m_iCurrentVRAM);514 m_pEditorVideoMemorySize->setValue(oldDisplayData.m_iCurrentVRAM); 513 515 514 516 /* If remote display server is supported: */ … … 518 520 m_pCheckboxRemoteDisplay->setChecked(oldDisplayData.m_fRemoteDisplayServerEnabled); 519 521 m_pEditorRemoteDisplayPort->setText(oldDisplayData.m_strRemoteDisplayPort); 520 m_pComboRemoteDisplayAuthMethod->setCurrentIndex(m_pComboRemoteDisplayAuthMethod->findText(gpConverter->toString(oldDisplayData.m_remoteDisplayAuthType))); 522 const int iAuthTypePosition = m_pComboRemoteDisplayAuthMethod->findData(oldDisplayData.m_remoteDisplayAuthType); 523 m_pComboRemoteDisplayAuthMethod->setCurrentIndex(iAuthTypePosition == -1 ? 0 : iAuthTypePosition); 521 524 m_pEditorRemoteDisplayTimeout->setText(QString::number(oldDisplayData.m_uRemoteDisplayTimeout)); 522 525 m_pCheckboxMultipleConn->setChecked(oldDisplayData.m_fRemoteDisplayMultiConnAllowed); … … 524 527 525 528 /* Load old 'Recording' data from the cache: */ 526 m_pCheckbox VideoCapture->setChecked(oldDisplayData.m_fRecordingEnabled);527 m_pEditor VideoCapturePath->setHomeDir(oldDisplayData.m_strRecordingFolder);528 m_pEditor VideoCapturePath->setPath(oldDisplayData.m_strRecordingFilePath);529 m_p EditorVideoCaptureWidth->setValue(oldDisplayData.m_iRecordingVideoFrameWidth);530 m_p EditorVideoCaptureHeight->setValue(oldDisplayData.m_iRecordingVideoFrameHeight);531 m_p EditorVideoCaptureFrameRate->setValue(oldDisplayData.m_iRecordingVideoFrameRate);532 m_p EditorVideoCaptureBitRate->setValue(oldDisplayData.m_iRecordingVideoBitRate);533 m_pScroller VideoCaptureScreens->setValue(oldDisplayData.m_vecRecordingScreens);529 m_pCheckboxRecording->setChecked(oldDisplayData.m_fRecordingEnabled); 530 m_pEditorRecordingFilePath->setHomeDir(oldDisplayData.m_strRecordingFolder); 531 m_pEditorRecordingFilePath->setPath(oldDisplayData.m_strRecordingFilePath); 532 m_pSpinboxRecordingFrameWidth->setValue(oldDisplayData.m_iRecordingVideoFrameWidth); 533 m_pSpinboxRecordingFrameHeight->setValue(oldDisplayData.m_iRecordingVideoFrameHeight); 534 m_pSpinboxRecordingFrameRate->setValue(oldDisplayData.m_iRecordingVideoFrameRate); 535 m_pSpinboxRecordingVideoQuality->setValue(oldDisplayData.m_iRecordingVideoBitRate); 536 m_pScrollerRecordingScreens->setValue(oldDisplayData.m_vecRecordingScreens); 534 537 535 538 /* Load data from old 'Recording option': */ … … 539 542 UIDataSettingsMachineDisplay::RecordingOption_VC); 540 543 if (fRecordAudio && fRecordVideo) 541 m_pCombo BoxCaptureMode->setCurrentIndex(m_pComboBoxCaptureMode->findText(gpConverter->toString(UISettingsDefs::RecordingMode_VideoAudio)));544 m_pComboRecordingMode->setCurrentIndex(m_pComboRecordingMode->findText(gpConverter->toString(UISettingsDefs::RecordingMode_VideoAudio))); 542 545 else if (fRecordAudio && !fRecordVideo) 543 m_pCombo BoxCaptureMode->setCurrentIndex(m_pComboBoxCaptureMode->findText(gpConverter->toString(UISettingsDefs::RecordingMode_AudioOnly)));546 m_pComboRecordingMode->setCurrentIndex(m_pComboRecordingMode->findText(gpConverter->toString(UISettingsDefs::RecordingMode_AudioOnly))); 544 547 else 545 m_pCombo BoxCaptureMode->setCurrentIndex(m_pComboBoxCaptureMode->findText(gpConverter->toString(UISettingsDefs::RecordingMode_VideoOnly)));546 547 m_pSlider AudioCaptureQuality->setValue(UIDataSettingsMachineDisplay::getAudioQualityFromOptions(oldDisplayData.m_strRecordingVideoOptions));548 m_pComboRecordingMode->setCurrentIndex(m_pComboRecordingMode->findText(gpConverter->toString(UISettingsDefs::RecordingMode_VideoOnly))); 549 550 m_pSliderRecordingAudioQuality->setValue(UIDataSettingsMachineDisplay::getAudioQualityFromOptions(oldDisplayData.m_strRecordingVideoOptions)); 548 551 549 552 /* Polish page finally: */ … … 560 563 561 564 /* Gather new 'Screen' data: */ 562 newDisplayData.m_iCurrentVRAM = m_p VideoMemoryEditor->value();563 newDisplayData.m_cGuestScreenCount = m_p EditorVideoScreenCount->value();564 newDisplayData.m_scaleFactors = m_p ScaleFactorEditor->scaleFactors();565 newDisplayData.m_graphicsControllerType = m_p GraphicsControllerEditor->value();565 newDisplayData.m_iCurrentVRAM = m_pEditorVideoMemorySize->value(); 566 newDisplayData.m_cGuestScreenCount = m_pSpinboxMonitorCount->value(); 567 newDisplayData.m_scaleFactors = m_pEditorScaleFactor->scaleFactors(); 568 newDisplayData.m_graphicsControllerType = m_pEditorGraphicsController->value(); 566 569 #ifdef VBOX_WITH_3D_ACCELERATION 567 570 newDisplayData.m_f3dAccelerationEnabled = m_pCheckbox3D->isChecked(); … … 574 577 newDisplayData.m_fRemoteDisplayServerEnabled = m_pCheckboxRemoteDisplay->isChecked(); 575 578 newDisplayData.m_strRemoteDisplayPort = m_pEditorRemoteDisplayPort->text(); 576 newDisplayData.m_remoteDisplayAuthType = gpConverter->fromString<KAuthType>(m_pComboRemoteDisplayAuthMethod->currentText());579 newDisplayData.m_remoteDisplayAuthType = m_pComboRemoteDisplayAuthMethod->currentData().value<KAuthType>(); 577 580 newDisplayData.m_uRemoteDisplayTimeout = m_pEditorRemoteDisplayTimeout->text().toULong(); 578 581 newDisplayData.m_fRemoteDisplayMultiConnAllowed = m_pCheckboxMultipleConn->isChecked(); … … 580 583 581 584 /* Gather new 'Recording' data: */ 582 newDisplayData.m_fRecordingEnabled = m_pCheckbox VideoCapture->isChecked();585 newDisplayData.m_fRecordingEnabled = m_pCheckboxRecording->isChecked(); 583 586 newDisplayData.m_strRecordingFolder = m_pCache->base().m_strRecordingFolder; 584 newDisplayData.m_strRecordingFilePath = m_pEditor VideoCapturePath->path();585 newDisplayData.m_iRecordingVideoFrameWidth = m_p EditorVideoCaptureWidth->value();586 newDisplayData.m_iRecordingVideoFrameHeight = m_p EditorVideoCaptureHeight->value();587 newDisplayData.m_iRecordingVideoFrameRate = m_p EditorVideoCaptureFrameRate->value();588 newDisplayData.m_iRecordingVideoBitRate = m_p EditorVideoCaptureBitRate->value();589 newDisplayData.m_vecRecordingScreens = m_pScroller VideoCaptureScreens->value();587 newDisplayData.m_strRecordingFilePath = m_pEditorRecordingFilePath->path(); 588 newDisplayData.m_iRecordingVideoFrameWidth = m_pSpinboxRecordingFrameWidth->value(); 589 newDisplayData.m_iRecordingVideoFrameHeight = m_pSpinboxRecordingFrameHeight->value(); 590 newDisplayData.m_iRecordingVideoFrameRate = m_pSpinboxRecordingFrameRate->value(); 591 newDisplayData.m_iRecordingVideoBitRate = m_pSpinboxRecordingVideoQuality->value(); 592 newDisplayData.m_vecRecordingScreens = m_pScrollerRecordingScreens->value(); 590 593 591 594 /* Update recording options */ 592 595 const UISettingsDefs::RecordingMode enmRecordingMode = 593 gpConverter->fromString<UISettingsDefs::RecordingMode>(m_pCombo BoxCaptureMode->currentText());596 gpConverter->fromString<UISettingsDefs::RecordingMode>(m_pComboRecordingMode->currentText()); 594 597 QStringList optionValues; 595 598 /* Option value for video recording: */ … … 602 605 ? "true" : "false"); 603 606 604 if (m_pSlider AudioCaptureQuality->value() == 1)607 if (m_pSliderRecordingAudioQuality->value() == 1) 605 608 optionValues.push_back("low"); 606 else if (m_pSlider AudioCaptureQuality->value() == 2)609 else if (m_pSliderRecordingAudioQuality->value() == 2) 607 610 optionValues.push_back("med"); 608 611 else … … 648 651 if (shouldWeWarnAboutLowVRAM() && !m_comGuestOSType.isNull()) 649 652 { 650 quint64 uNeedBytes = UICommon::requiredVideoMemory(m_comGuestOSType.GetId(), m_p EditorVideoScreenCount->value());653 quint64 uNeedBytes = UICommon::requiredVideoMemory(m_comGuestOSType.GetId(), m_pSpinboxMonitorCount->value()); 651 654 652 655 /* Basic video RAM amount test: */ 653 if ((quint64)m_p VideoMemoryEditor->value() * _1M < uNeedBytes)656 if ((quint64)m_pEditorVideoMemorySize->value() * _1M < uNeedBytes) 654 657 { 655 658 message.second << tr("The virtual machine is currently assigned less than <b>%1</b> of video memory " … … 662 665 { 663 666 uNeedBytes = qMax(uNeedBytes, (quint64) 128 * _1M); 664 if ((quint64)m_p VideoMemoryEditor->value() * _1M < uNeedBytes)667 if ((quint64)m_pEditorVideoMemorySize->value() * _1M < uNeedBytes) 665 668 { 666 669 message.second << tr("The virtual machine is set up to use hardware graphics acceleration " … … 745 748 /* Screen tab-order: */ 746 749 setTabOrder(pWidget, m_pTabWidget->focusProxy()); 747 setTabOrder(m_pTabWidget->focusProxy(), m_p VideoMemoryEditor);748 setTabOrder(m_p VideoMemoryEditor, m_pSliderVideoScreenCount);749 setTabOrder(m_pSlider VideoScreenCount, m_pEditorVideoScreenCount);750 setTabOrder(m_p EditorVideoScreenCount, m_pScaleFactorEditor);751 setTabOrder(m_p ScaleFactorEditor, m_pGraphicsControllerEditor);750 setTabOrder(m_pTabWidget->focusProxy(), m_pEditorVideoMemorySize); 751 setTabOrder(m_pEditorVideoMemorySize, m_pSliderMonitorCount); 752 setTabOrder(m_pSliderMonitorCount, m_pSpinboxMonitorCount); 753 setTabOrder(m_pSpinboxMonitorCount, m_pEditorScaleFactor); 754 setTabOrder(m_pEditorScaleFactor, m_pEditorGraphicsController); 752 755 753 756 /* Remote Display tab-order: */ … … 758 761 759 762 /* Recording tab-order: */ 760 setTabOrder(m_pCheckboxMultipleConn, m_pCheckbox VideoCapture);761 setTabOrder(m_pCheckbox VideoCapture, m_pEditorVideoCapturePath);762 setTabOrder(m_pEditor VideoCapturePath, m_pComboVideoCaptureSize);763 setTabOrder(m_pCombo VideoCaptureSize, m_pEditorVideoCaptureWidth);764 setTabOrder(m_p EditorVideoCaptureWidth, m_pEditorVideoCaptureHeight);765 setTabOrder(m_p EditorVideoCaptureHeight, m_pSliderVideoCaptureFrameRate);766 setTabOrder(m_pSlider VideoCaptureFrameRate, m_pEditorVideoCaptureFrameRate);767 setTabOrder(m_p EditorVideoCaptureFrameRate, m_pSliderVideoCaptureQuality);768 setTabOrder(m_pSlider VideoCaptureQuality, m_pEditorVideoCaptureBitRate);763 setTabOrder(m_pCheckboxMultipleConn, m_pCheckboxRecording); 764 setTabOrder(m_pCheckboxRecording, m_pEditorRecordingFilePath); 765 setTabOrder(m_pEditorRecordingFilePath, m_pComboRecordingFrameSize); 766 setTabOrder(m_pComboRecordingFrameSize, m_pSpinboxRecordingFrameWidth); 767 setTabOrder(m_pSpinboxRecordingFrameWidth, m_pSpinboxRecordingFrameHeight); 768 setTabOrder(m_pSpinboxRecordingFrameHeight, m_pSliderRecordingFrameRate); 769 setTabOrder(m_pSliderRecordingFrameRate, m_pSpinboxRecordingFrameRate); 770 setTabOrder(m_pSpinboxRecordingFrameRate, m_pSliderRecordingVideoQuality); 771 setTabOrder(m_pSliderRecordingVideoQuality, m_pSpinboxRecordingVideoQuality); 769 772 } 770 773 771 774 void UIMachineSettingsDisplay::retranslateUi() 772 775 { 773 m_p VideoMemoryLabel->setText(tr("Video &Memory:"));774 m_p VideoMemoryEditor->setWhatsThis(tr("Controls the amount of video memory provided to the virtual machine."));775 m_pLabel VideoScreenCount->setText(tr("Mo&nitor Count:"));776 m_pSlider VideoScreenCount->setWhatsThis(tr("Controls the amount of virtual monitors provided to the virtual machine."));777 m_p EditorVideoScreenCount->setWhatsThis(tr("Controls the amount of virtual monitors provided to the virtual machine."));778 m_pLabel GuestScreenScaleFactorEditor->setText(tr("ScaleFactor:"));779 m_p ScaleFactorEditor->setWhatsThis(tr("Controls the guest screen scale factor."));780 m_p GraphicsControllerLabel->setText(tr("&Graphics Controller:"));781 m_p GraphicsControllerEditor->setWhatsThis(tr("Selects the graphics adapter type the virtual machine will use."));782 m_pLabel VideoOptions->setText(tr("Acceleration:"));776 m_pLabelVideoMemorySize->setText(tr("Video &Memory:")); 777 m_pEditorVideoMemorySize->setWhatsThis(tr("Controls the amount of video memory provided to the virtual machine.")); 778 m_pLabelMonitorCount->setText(tr("Mo&nitor Count:")); 779 m_pSliderMonitorCount->setWhatsThis(tr("Controls the amount of virtual monitors provided to the virtual machine.")); 780 m_pSpinboxMonitorCount->setWhatsThis(tr("Controls the amount of virtual monitors provided to the virtual machine.")); 781 m_pLabelScaleFactor->setText(tr("Scale &Factor:")); 782 m_pEditorScaleFactor->setWhatsThis(tr("Controls the guest screen scale factor.")); 783 m_pLabelGraphicsController->setText(tr("&Graphics Controller:")); 784 m_pEditorGraphicsController->setWhatsThis(tr("Selects the graphics adapter type the virtual machine will use.")); 785 m_pLabelAcceleration->setText(tr("Acceleration:")); 783 786 m_pCheckbox3D->setWhatsThis(tr("When checked, the virtual machine will be given access to the 3D graphics capabilities available on the host.")); 784 787 m_pCheckbox3D->setText(tr("Enable &3D Acceleration")); 785 m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTab Video), tr("&Screen"));788 m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabScreen), tr("&Screen")); 786 789 m_pCheckboxRemoteDisplay->setWhatsThis(tr("When checked, the VM will act as a Remote Desktop Protocol (RDP) server, allowing remote clients to connect and operate the VM (when it is running) using a standard RDP client.")); 787 790 m_pCheckboxRemoteDisplay->setText(tr("&Enable Server")); … … 796 799 m_pCheckboxMultipleConn->setText(tr("&Allow Multiple Connections")); 797 800 m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabRemoteDisplay), tr("&Remote Display")); 798 m_pCheckbox VideoCapture->setWhatsThis(tr("When checked, VirtualBox will record the virtual machine session as a video file."));799 m_pCheckbox VideoCapture->setText(tr("&Enable Recording"));800 m_pLabel CaptureMode->setText(tr("Recording &Mode:"));801 m_pCombo BoxCaptureMode->setWhatsThis(tr("Selects the recording mode."));802 m_pLabel VideoCapturePath->setText(tr("File &Path:"));803 m_pEditor VideoCapturePath->setWhatsThis(tr("Holds the filename VirtualBox uses to save the recorded content."));804 m_pLabel VideoCaptureSize->setText(tr("Frame &Size:"));805 m_pCombo VideoCaptureSize->setWhatsThis(tr("Selects the resolution (frame size) of the recorded video."));806 m_p EditorVideoCaptureWidth->setWhatsThis(tr("Holds the <b>horizontal</b> resolution (frame width) of the recorded video."));807 m_p EditorVideoCaptureHeight->setWhatsThis(tr("Holds the <b>vertical</b> resolution (frame height) of the recorded video."));808 m_pLabel VideoCaptureFrameRate->setText(tr("&Frame Rate:"));809 m_pSlider VideoCaptureFrameRate->setWhatsThis(tr("Controls the maximum number of <b>frames per second</b>. Additional frames will be skipped. Reducing this value will increase the number of skipped frames and reduce the file size."));810 m_p EditorVideoCaptureFrameRate->setWhatsThis(tr("Controls the maximum number of <b>frames per second</b>. Additional frames will be skipped. Reducing this value will increase the number of skipped frames and reduce the file size."));811 m_pLabel VideoCaptureRate->setText(tr("&Video Quality:"));812 m_pSlider VideoCaptureQuality->setWhatsThis(tr("Controls the <b>quality</b>. Increasing this value will make the video look better at the cost of an increased file size."));813 m_p EditorVideoCaptureBitRate->setWhatsThis(tr("Holds the bitrate in <b>kilobits per second</b>. Increasing this value will make the video look better at the cost of an increased file size."));814 m_p AudioCaptureQualityLabel->setText(tr("&Audio Quality:"));815 m_pSlider AudioCaptureQuality->setWhatsThis(tr("Controls the <b>quality</b>. Increasing this value will make the audio sound better at the cost of an increased file size."));816 m_pLabel VideoCaptureScreens->setText(tr("&Screens:"));817 m_pScroller VideoCaptureScreens->setWhatsThis(QString());818 m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTab VideoCapture), tr("Re&cording"));801 m_pCheckboxRecording->setWhatsThis(tr("When checked, VirtualBox will record the virtual machine session as a video file.")); 802 m_pCheckboxRecording->setText(tr("&Enable Recording")); 803 m_pLabelRecordingMode->setText(tr("Recording &Mode:")); 804 m_pComboRecordingMode->setWhatsThis(tr("Selects the recording mode.")); 805 m_pLabelRecordingFilePath->setText(tr("File &Path:")); 806 m_pEditorRecordingFilePath->setWhatsThis(tr("Holds the filename VirtualBox uses to save the recorded content.")); 807 m_pLabelRecordingFrameSize->setText(tr("Frame Si&ze:")); 808 m_pComboRecordingFrameSize->setWhatsThis(tr("Selects the resolution (frame size) of the recorded video.")); 809 m_pSpinboxRecordingFrameWidth->setWhatsThis(tr("Holds the <b>horizontal</b> resolution (frame width) of the recorded video.")); 810 m_pSpinboxRecordingFrameHeight->setWhatsThis(tr("Holds the <b>vertical</b> resolution (frame height) of the recorded video.")); 811 m_pLabelRecordingFrameRate->setText(tr("Frame R&ate:")); 812 m_pSliderRecordingFrameRate->setWhatsThis(tr("Controls the maximum number of <b>frames per second</b>. Additional frames will be skipped. Reducing this value will increase the number of skipped frames and reduce the file size.")); 813 m_pSpinboxRecordingFrameRate->setWhatsThis(tr("Controls the maximum number of <b>frames per second</b>. Additional frames will be skipped. Reducing this value will increase the number of skipped frames and reduce the file size.")); 814 m_pLabelRecordingVideoQuality->setText(tr("&Video Quality:")); 815 m_pSliderRecordingVideoQuality->setWhatsThis(tr("Controls the <b>quality</b>. Increasing this value will make the video look better at the cost of an increased file size.")); 816 m_pSpinboxRecordingVideoQuality->setWhatsThis(tr("Holds the bitrate in <b>kilobits per second</b>. Increasing this value will make the video look better at the cost of an increased file size.")); 817 m_pLabelRecordingAudioQuality->setText(tr("&Audio Quality:")); 818 m_pSliderRecordingAudioQuality->setWhatsThis(tr("Controls the <b>quality</b>. Increasing this value will make the audio sound better at the cost of an increased file size.")); 819 m_pLabelRecordingScreens->setText(tr("Scree&ns:")); 820 m_pScrollerRecordingScreens->setWhatsThis(QString()); 821 m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabRecording), tr("Re&cording")); 819 822 820 823 821 824 /* Screen stuff: */ 822 825 CSystemProperties sys = uiCommon().virtualBox().GetSystemProperties(); 823 m_pLabelVideoScreenCountMin->setText(QString::number(1)); 824 m_pLabelVideoScreenCountMax->setText(QString::number(qMin(sys.GetMaxGuestMonitors(), (ULONG)8))); 825 826 /* Remote Display stuff: */ 827 m_pComboRemoteDisplayAuthMethod->setItemText(0, gpConverter->toString(KAuthType_Null)); 828 m_pComboRemoteDisplayAuthMethod->setItemText(1, gpConverter->toString(KAuthType_External)); 829 m_pComboRemoteDisplayAuthMethod->setItemText(2, gpConverter->toString(KAuthType_Guest)); 826 m_pLabelMonitorCountMin->setText(QString::number(1)); 827 m_pLabelMonitorCountMax->setText(QString::number(qMin(sys.GetMaxGuestMonitors(), (ULONG)8))); 828 829 /* Translate Remote Display auth method combo: */ 830 AssertPtrReturnVoid(m_pComboRemoteDisplayAuthMethod); 831 for (int iIndex = 0; iIndex < m_pComboRemoteDisplayAuthMethod->count(); ++iIndex) 832 { 833 const KAuthType enmType = m_pComboRemoteDisplayAuthMethod->currentData().value<KAuthType>(); 834 m_pComboRemoteDisplayAuthMethod->setItemText(iIndex, gpConverter->toString(enmType)); 835 } 830 836 831 837 /* Recording stuff: */ 832 m_p EditorVideoCaptureFrameRate->setSuffix(QString(" %1").arg(tr("fps")));833 m_p EditorVideoCaptureBitRate->setSuffix(QString(" %1").arg(tr("kbps")));834 m_pCombo VideoCaptureSize->setItemText(0, tr("User Defined"));835 m_pLabel VideoCaptureFrameRateMin->setText(tr("%1 fps").arg(m_pSliderVideoCaptureFrameRate->minimum()));836 m_pLabel VideoCaptureFrameRateMax->setText(tr("%1 fps").arg(m_pSliderVideoCaptureFrameRate->maximum()));837 m_pLabel VideoCaptureQualityMin->setText(tr("low", "quality"));838 m_pLabel VideoCaptureQualityMed->setText(tr("medium", "quality"));839 m_pLabel VideoCaptureQualityMax->setText(tr("high", "quality"));840 m_pLabel AudioCaptureQualityMin->setText(tr("low", "quality"));841 m_pLabel AudioCaptureQualityMed->setText(tr("medium", "quality"));842 m_pLabel AudioCaptureQualityMax->setText(tr("high", "quality"));843 844 m_pCombo BoxCaptureMode->setItemText(0, gpConverter->toString(UISettingsDefs::RecordingMode_VideoAudio));845 m_pCombo BoxCaptureMode->setItemText(1, gpConverter->toString(UISettingsDefs::RecordingMode_VideoOnly));846 m_pCombo BoxCaptureMode->setItemText(2, gpConverter->toString(UISettingsDefs::RecordingMode_AudioOnly));838 m_pSpinboxRecordingFrameRate->setSuffix(QString(" %1").arg(tr("fps"))); 839 m_pSpinboxRecordingVideoQuality->setSuffix(QString(" %1").arg(tr("kbps"))); 840 m_pComboRecordingFrameSize->setItemText(0, tr("User Defined")); 841 m_pLabelRecordingFrameRateMin->setText(tr("%1 fps").arg(m_pSliderRecordingFrameRate->minimum())); 842 m_pLabelRecordingFrameRateMax->setText(tr("%1 fps").arg(m_pSliderRecordingFrameRate->maximum())); 843 m_pLabelRecordingVideoQualityMin->setText(tr("low", "quality")); 844 m_pLabelRecordingVideoQualityMed->setText(tr("medium", "quality")); 845 m_pLabelRecordingVideoQualityMax->setText(tr("high", "quality")); 846 m_pLabelRecordingAudioQualityMin->setText(tr("low", "quality")); 847 m_pLabelRecordingAudioQualityMed->setText(tr("medium", "quality")); 848 m_pLabelRecordingAudioQualityMax->setText(tr("high", "quality")); 849 850 m_pComboRecordingMode->setItemText(0, gpConverter->toString(UISettingsDefs::RecordingMode_VideoAudio)); 851 m_pComboRecordingMode->setItemText(1, gpConverter->toString(UISettingsDefs::RecordingMode_VideoOnly)); 852 m_pComboRecordingMode->setItemText(2, gpConverter->toString(UISettingsDefs::RecordingMode_AudioOnly)); 847 853 848 854 updateRecordingFileSizeHint(); … … 855 861 856 862 /* Polish 'Screen' availability: */ 857 m_p VideoMemoryLabel->setEnabled(isMachineOffline());858 m_p VideoMemoryEditor->setEnabled(isMachineOffline());859 m_pLabel VideoScreenCount->setEnabled(isMachineOffline());860 m_pSlider VideoScreenCount->setEnabled(isMachineOffline());861 m_pLabel VideoScreenCountMin->setEnabled(isMachineOffline());862 m_pLabel VideoScreenCountMax->setEnabled(isMachineOffline());863 m_p EditorVideoScreenCount->setEnabled(isMachineOffline());864 m_p ScaleFactorEditor->setEnabled(isMachineInValidMode());865 m_p GraphicsControllerLabel->setEnabled(isMachineOffline());866 m_p GraphicsControllerEditor->setEnabled(isMachineOffline());867 m_pLabel VideoOptions->setEnabled(isMachineOffline());863 m_pLabelVideoMemorySize->setEnabled(isMachineOffline()); 864 m_pEditorVideoMemorySize->setEnabled(isMachineOffline()); 865 m_pLabelMonitorCount->setEnabled(isMachineOffline()); 866 m_pSliderMonitorCount->setEnabled(isMachineOffline()); 867 m_pLabelMonitorCountMin->setEnabled(isMachineOffline()); 868 m_pLabelMonitorCountMax->setEnabled(isMachineOffline()); 869 m_pSpinboxMonitorCount->setEnabled(isMachineOffline()); 870 m_pEditorScaleFactor->setEnabled(isMachineInValidMode()); 871 m_pLabelGraphicsController->setEnabled(isMachineOffline()); 872 m_pEditorGraphicsController->setEnabled(isMachineOffline()); 873 m_pLabelAcceleration->setEnabled(isMachineOffline()); 868 874 #ifdef VBOX_WITH_3D_ACCELERATION 869 875 m_pCheckbox3D->setEnabled(isMachineOffline()); … … 874 880 /* Polish 'Remote Display' availability: */ 875 881 m_pTabWidget->setTabEnabled(1, oldDisplayData.m_fRemoteDisplayServerSupported); 876 m_p ContainerRemoteDisplay->setEnabled(isMachineInValidMode());877 m_p ContainerRemoteDisplayOptions->setEnabled(m_pCheckboxRemoteDisplay->isChecked());882 m_pTabRemoteDisplay->setEnabled(isMachineInValidMode()); 883 m_pWidgetRemoteDisplaySettings->setEnabled(m_pCheckboxRemoteDisplay->isChecked()); 878 884 m_pLabelRemoteDisplayOptions->setEnabled(isMachineOffline() || isMachineSaved()); 879 885 m_pCheckboxMultipleConn->setEnabled(isMachineOffline() || isMachineSaved()); 880 886 881 887 /* Polish 'Recording' availability: */ 882 m_p ContainerVideoCapture->setEnabled(isMachineInValidMode());888 m_pWidgetRecordingSettings->setEnabled(isMachineInValidMode()); 883 889 sltHandleRecordingCheckboxToggle(); 884 890 } … … 887 893 { 888 894 /* Apply proposed screen-count: */ 889 m_p EditorVideoScreenCount->blockSignals(true);890 m_p EditorVideoScreenCount->setValue(m_pSliderVideoScreenCount->value());891 m_p EditorVideoScreenCount->blockSignals(false);895 m_pSpinboxMonitorCount->blockSignals(true); 896 m_pSpinboxMonitorCount->setValue(m_pSliderMonitorCount->value()); 897 m_pSpinboxMonitorCount->blockSignals(false); 892 898 893 899 /* Update Video RAM requirements: */ 894 m_p VideoMemoryEditor->setGuestScreenCount(m_pSliderVideoScreenCount->value());900 m_pEditorVideoMemorySize->setGuestScreenCount(m_pSliderMonitorCount->value()); 895 901 896 902 /* Update recording tab screen count: */ … … 904 910 { 905 911 /* Apply proposed screen-count: */ 906 m_pSlider VideoScreenCount->blockSignals(true);907 m_pSlider VideoScreenCount->setValue(m_pEditorVideoScreenCount->value());908 m_pSlider VideoScreenCount->blockSignals(false);912 m_pSliderMonitorCount->blockSignals(true); 913 m_pSliderMonitorCount->setValue(m_pSpinboxMonitorCount->value()); 914 m_pSliderMonitorCount->blockSignals(false); 909 915 910 916 /* Update Video RAM requirements: */ 911 m_p VideoMemoryEditor->setGuestScreenCount(m_pEditorVideoScreenCount->value());917 m_pEditorVideoMemorySize->setGuestScreenCount(m_pSpinboxMonitorCount->value()); 912 918 913 919 /* Update recording tab screen count: */ … … 921 927 { 922 928 /* Update Video RAM requirements: */ 923 m_p VideoMemoryEditor->setGraphicsControllerType(m_pGraphicsControllerEditor->value());929 m_pEditorVideoMemorySize->setGraphicsControllerType(m_pEditorGraphicsController->value()); 924 930 925 931 /* Revalidate: */ … … 931 937 { 932 938 /* Update Video RAM requirements: */ 933 m_p VideoMemoryEditor->set3DAccelerationEnabled(m_pCheckbox3D->isChecked());939 m_pEditorVideoMemorySize->set3DAccelerationEnabled(m_pCheckbox3D->isChecked()); 934 940 935 941 /* Revalidate: */ … … 943 949 * 1. Machine is in 'offline' or 'saved' state and check-box is checked, 944 950 * 2. Machine is in 'online' state, check-box is checked, and video recording is *disabled* currently. */ 945 const bool fIsRecordingOptionsEnabled = ((isMachineOffline() || isMachineSaved()) && m_pCheckbox VideoCapture->isChecked()) ||946 (isMachineOnline() && !m_pCache->base().m_fRecordingEnabled && m_pCheckbox VideoCapture->isChecked());947 948 m_pLabel CaptureMode->setEnabled(fIsRecordingOptionsEnabled);949 m_pCombo BoxCaptureMode->setEnabled(fIsRecordingOptionsEnabled);950 951 m_pLabel VideoCapturePath->setEnabled(fIsRecordingOptionsEnabled);952 m_pEditor VideoCapturePath->setEnabled(fIsRecordingOptionsEnabled);951 const bool fIsRecordingOptionsEnabled = ((isMachineOffline() || isMachineSaved()) && m_pCheckboxRecording->isChecked()) || 952 (isMachineOnline() && !m_pCache->base().m_fRecordingEnabled && m_pCheckboxRecording->isChecked()); 953 954 m_pLabelRecordingMode->setEnabled(fIsRecordingOptionsEnabled); 955 m_pComboRecordingMode->setEnabled(fIsRecordingOptionsEnabled); 956 957 m_pLabelRecordingFilePath->setEnabled(fIsRecordingOptionsEnabled); 958 m_pEditorRecordingFilePath->setEnabled(fIsRecordingOptionsEnabled); 953 959 954 960 enableDisableRecordingWidgets(); … … 958 964 { 959 965 /* Get the proposed size: */ 960 const int iCurrentIndex = m_pCombo VideoCaptureSize->currentIndex();961 const QSize videoCaptureSize = m_pCombo VideoCaptureSize->itemData(iCurrentIndex).toSize();966 const int iCurrentIndex = m_pComboRecordingFrameSize->currentIndex(); 967 const QSize videoCaptureSize = m_pComboRecordingFrameSize->itemData(iCurrentIndex).toSize(); 962 968 963 969 /* Make sure its valid: */ … … 966 972 967 973 /* Apply proposed size: */ 968 m_p EditorVideoCaptureWidth->setValue(videoCaptureSize.width());969 m_p EditorVideoCaptureHeight->setValue(videoCaptureSize.height());974 m_pSpinboxRecordingFrameWidth->setValue(videoCaptureSize.width()); 975 m_pSpinboxRecordingFrameHeight->setValue(videoCaptureSize.height()); 970 976 } 971 977 … … 989 995 { 990 996 /* Apply proposed frame-rate: */ 991 m_p EditorVideoCaptureFrameRate->blockSignals(true);992 m_p EditorVideoCaptureFrameRate->setValue(m_pSliderVideoCaptureFrameRate->value());993 m_p EditorVideoCaptureFrameRate->blockSignals(false);997 m_pSpinboxRecordingFrameRate->blockSignals(true); 998 m_pSpinboxRecordingFrameRate->setValue(m_pSliderRecordingFrameRate->value()); 999 m_pSpinboxRecordingFrameRate->blockSignals(false); 994 1000 /* Update quality and bit-rate: */ 995 1001 sltHandleRecordingVideoQualitySliderChange(); … … 999 1005 { 1000 1006 /* Apply proposed frame-rate: */ 1001 m_pSlider VideoCaptureFrameRate->blockSignals(true);1002 m_pSlider VideoCaptureFrameRate->setValue(m_pEditorVideoCaptureFrameRate->value());1003 m_pSlider VideoCaptureFrameRate->blockSignals(false);1007 m_pSliderRecordingFrameRate->blockSignals(true); 1008 m_pSliderRecordingFrameRate->setValue(m_pSpinboxRecordingFrameRate->value()); 1009 m_pSliderRecordingFrameRate->blockSignals(false); 1004 1010 /* Update quality and bit-rate: */ 1005 1011 sltHandleRecordingVideoQualitySliderChange(); … … 1009 1015 { 1010 1016 /* Calculate/apply proposed bit-rate: */ 1011 m_p EditorVideoCaptureBitRate->blockSignals(true);1012 m_p EditorVideoCaptureBitRate->setValue(calculateBitRate(m_pEditorVideoCaptureWidth->value(),1013 m_p EditorVideoCaptureHeight->value(),1014 m_p EditorVideoCaptureFrameRate->value(),1015 m_pSlider VideoCaptureQuality->value()));1016 m_p EditorVideoCaptureBitRate->blockSignals(false);1017 m_pSpinboxRecordingVideoQuality->blockSignals(true); 1018 m_pSpinboxRecordingVideoQuality->setValue(calculateBitRate(m_pSpinboxRecordingFrameWidth->value(), 1019 m_pSpinboxRecordingFrameHeight->value(), 1020 m_pSpinboxRecordingFrameRate->value(), 1021 m_pSliderRecordingVideoQuality->value())); 1022 m_pSpinboxRecordingVideoQuality->blockSignals(false); 1017 1023 updateRecordingFileSizeHint(); 1018 1024 } … … 1021 1027 { 1022 1028 /* Calculate/apply proposed quality: */ 1023 m_pSlider VideoCaptureQuality->blockSignals(true);1024 m_pSlider VideoCaptureQuality->setValue(calculateQuality(m_pEditorVideoCaptureWidth->value(),1025 m_p EditorVideoCaptureHeight->value(),1026 m_p EditorVideoCaptureFrameRate->value(),1027 m_p EditorVideoCaptureBitRate->value()));1028 m_pSlider VideoCaptureQuality->blockSignals(false);1029 m_pSliderRecordingVideoQuality->blockSignals(true); 1030 m_pSliderRecordingVideoQuality->setValue(calculateQuality(m_pSpinboxRecordingFrameWidth->value(), 1031 m_pSpinboxRecordingFrameHeight->value(), 1032 m_pSpinboxRecordingFrameRate->value(), 1033 m_pSpinboxRecordingVideoQuality->value())); 1034 m_pSliderRecordingVideoQuality->blockSignals(false); 1029 1035 updateRecordingFileSizeHint(); 1030 1036 } … … 1037 1043 void UIMachineSettingsDisplay::prepare() 1038 1044 { 1039 prepareWidgets();1040 1041 1045 /* Prepare cache: */ 1042 1046 m_pCache = new UISettingsCacheMachineDisplay; 1043 1047 AssertPtrReturnVoid(m_pCache); 1044 1048 1045 /* Tree-widget created in the .ui file. */ 1046 { 1047 /* Prepare 'Screen' tab: */ 1048 prepareTabScreen(); 1049 /* Prepare 'Remote Display' tab: */ 1050 prepareTabRemoteDisplay(); 1051 /* Prepare 'Recording' tab: */ 1052 prepareTabRecording(); 1053 /* Prepare connections: */ 1054 prepareConnections(); 1055 } 1049 /* Prepare widgets: */ 1050 prepareWidgets(); 1056 1051 1057 1052 /* Apply language settings: */ … … 1059 1054 } 1060 1055 1056 void UIMachineSettingsDisplay::prepareWidgets() 1057 { 1058 /* Prepare main layout: */ 1059 QVBoxLayout *pLayoutMain = new QVBoxLayout(this); 1060 if (pLayoutMain) 1061 { 1062 /* Prepare tab-widget: */ 1063 m_pTabWidget = new QITabWidget(this); 1064 if (m_pTabWidget) 1065 { 1066 /* Prepare each tab separately: */ 1067 prepareTabScreen(); 1068 prepareTabRemoteDisplay(); 1069 prepareTabRecording(); 1070 prepareConnections(); 1071 1072 pLayoutMain->addWidget(m_pTabWidget); 1073 } 1074 } 1075 } 1076 1061 1077 void UIMachineSettingsDisplay::prepareTabScreen() 1062 1078 { 1063 1079 /* Prepare common variables: */ 1064 const CSystemProperties sys = uiCommon().virtualBox().GetSystemProperties(); 1065 1066 /* Tab and it's layout created in the .ui file. */ 1067 { 1068 /* Video-memory label and editor created in the .ui file. */ 1069 AssertPtrReturnVoid(m_pVideoMemoryLabel); 1070 AssertPtrReturnVoid(m_pVideoMemoryEditor); 1080 const CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties(); 1081 1082 /* Prepare Screen tab: */ 1083 m_pTabScreen = new QWidget; 1084 if (m_pTabScreen) 1085 { 1086 /* Prepare Screen tab layout: */ 1087 QGridLayout *pLayoutScreen = new QGridLayout(m_pTabScreen); 1088 if (pLayoutScreen) 1071 1089 { 1072 /* Configure label & editor: */ 1073 m_pVideoMemoryLabel->setBuddy(m_pVideoMemoryEditor->focusProxy()); 1090 pLayoutScreen->setRowStretch(8, 1); 1091 1092 /* Prepare video memory label: */ 1093 m_pLabelVideoMemorySize = new QLabel(m_pTabScreen); 1094 if (m_pLabelVideoMemorySize) 1095 { 1096 m_pLabelVideoMemorySize->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1097 pLayoutScreen->addWidget(m_pLabelVideoMemorySize, 0, 0); 1098 } 1099 /* Prepare video memory editor: */ 1100 m_pEditorVideoMemorySize = new UIVideoMemoryEditor(m_pTabScreen); 1101 if (m_pEditorVideoMemorySize) 1102 { 1103 m_pLabelVideoMemorySize->setBuddy(m_pEditorVideoMemorySize->focusProxy()); 1104 pLayoutScreen->addWidget(m_pEditorVideoMemorySize, 0, 1, 2, 2); 1105 } 1106 1107 /* Prepare monitor count label: */ 1108 m_pLabelMonitorCount = new QLabel(m_pTabScreen); 1109 if (m_pLabelMonitorCount) 1110 { 1111 m_pLabelMonitorCount->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1112 pLayoutScreen->addWidget(m_pLabelMonitorCount, 2, 0); 1113 } 1114 /* Prepare monitor count layout: */ 1115 QVBoxLayout *pLayoutMonitorCount = new QVBoxLayout; 1116 if (pLayoutMonitorCount) 1117 { 1118 pLayoutMonitorCount->setContentsMargins(0, 0, 0, 0); 1119 1120 /* Prepare monitor count slider: */ 1121 m_pSliderMonitorCount = new QIAdvancedSlider(m_pTabScreen); 1122 if (m_pSliderMonitorCount) 1123 { 1124 const uint cHostScreens = gpDesktop->screenCount(); 1125 const uint cMinGuestScreens = 1; 1126 const uint cMaxGuestScreens = comProperties.GetMaxGuestMonitors(); 1127 const uint cMaxGuestScreensForSlider = qMin(cMaxGuestScreens, (uint)8); 1128 m_pSliderMonitorCount->setOrientation(Qt::Horizontal); 1129 m_pSliderMonitorCount->setMinimum(cMinGuestScreens); 1130 m_pSliderMonitorCount->setMaximum(cMaxGuestScreensForSlider); 1131 m_pSliderMonitorCount->setPageStep(1); 1132 m_pSliderMonitorCount->setSingleStep(1); 1133 m_pSliderMonitorCount->setTickInterval(1); 1134 m_pSliderMonitorCount->setOptimalHint(cMinGuestScreens, cHostScreens); 1135 m_pSliderMonitorCount->setWarningHint(cHostScreens, cMaxGuestScreensForSlider); 1136 1137 pLayoutMonitorCount->addWidget(m_pSliderMonitorCount); 1138 } 1139 /* Prepare monitor count scale layout: */ 1140 QHBoxLayout *pLayoutMonitorCountScale = new QHBoxLayout; 1141 if (pLayoutMonitorCountScale) 1142 { 1143 pLayoutMonitorCountScale->setContentsMargins(0, 0, 0, 0); 1144 1145 /* Prepare monitor count min label: */ 1146 m_pLabelMonitorCountMin = new QLabel(m_pTabScreen); 1147 if (m_pLabelMonitorCountMin) 1148 pLayoutMonitorCountScale->addWidget(m_pLabelMonitorCountMin); 1149 pLayoutMonitorCountScale->addStretch(); 1150 /* Prepare monitor count max label: */ 1151 m_pLabelMonitorCountMax = new QLabel(m_pTabScreen); 1152 if (m_pLabelMonitorCountMax) 1153 pLayoutMonitorCountScale->addWidget(m_pLabelMonitorCountMax); 1154 1155 pLayoutMonitorCount->addLayout(pLayoutMonitorCountScale); 1156 } 1157 1158 pLayoutScreen->addLayout(pLayoutMonitorCount, 2, 1, 2, 1); 1159 } 1160 /* Prepare monitor count spinbox: */ 1161 m_pSpinboxMonitorCount = new QSpinBox(m_pTabScreen); 1162 if (m_pSpinboxMonitorCount) 1163 { 1164 m_pLabelMonitorCount->setBuddy(m_pSpinboxMonitorCount); 1165 m_pSpinboxMonitorCount->setMinimum(1); 1166 m_pSpinboxMonitorCount->setMaximum(comProperties.GetMaxGuestMonitors()); 1167 1168 pLayoutScreen->addWidget(m_pSpinboxMonitorCount, 2, 2); 1169 } 1170 1171 /* Prepare scale factor label: */ 1172 m_pLabelScaleFactor = new QLabel(m_pTabScreen); 1173 if (m_pLabelScaleFactor) 1174 { 1175 m_pLabelScaleFactor->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1176 pLayoutScreen->addWidget(m_pLabelScaleFactor, 4, 0); 1177 } 1178 /* Prepare scale factor editor: */ 1179 m_pEditorScaleFactor = new UIScaleFactorEditor(m_pTabScreen); 1180 if (m_pEditorScaleFactor) 1181 { 1182 m_pLabelScaleFactor->setBuddy(m_pEditorScaleFactor->focusProxy()); 1183 pLayoutScreen->addWidget(m_pEditorScaleFactor, 4, 1, 2, 2); 1184 } 1185 1186 /* Prepare graphics controller label: */ 1187 m_pLabelGraphicsController = new QLabel(m_pTabScreen); 1188 if (m_pLabelGraphicsController) 1189 { 1190 m_pLabelGraphicsController->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1191 pLayoutScreen->addWidget(m_pLabelGraphicsController, 6, 0); 1192 } 1193 /* Prepare graphics controller editor: */ 1194 m_pEditorGraphicsController = new UIGraphicsControllerEditor(m_pTabScreen); 1195 if (m_pEditorGraphicsController) 1196 { 1197 m_pLabelGraphicsController->setBuddy(m_pEditorGraphicsController->focusProxy()); 1198 pLayoutScreen->addWidget(m_pEditorGraphicsController, 6, 1, 1, 2); 1199 } 1200 1201 /* Prepare acceleration label: */ 1202 m_pLabelAcceleration = new QLabel(m_pTabScreen); 1203 if (m_pLabelAcceleration) 1204 { 1205 m_pLabelAcceleration->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1206 pLayoutScreen->addWidget(m_pLabelAcceleration, 7, 0); 1207 } 1208 /* Prepare 3D checkbox: */ 1209 m_pCheckbox3D = new QCheckBox(m_pTabScreen); 1210 if (m_pCheckbox3D) 1211 pLayoutScreen->addWidget(m_pCheckbox3D, 7, 1); 1074 1212 } 1075 1213 1076 /* Screen-count slider created in the .ui file. */ 1077 AssertPtrReturnVoid(m_pSliderVideoScreenCount); 1214 m_pTabWidget->addTab(m_pTabScreen, QString()); 1215 } 1216 } 1217 1218 void UIMachineSettingsDisplay::prepareTabRemoteDisplay() 1219 { 1220 /* Prepare Remote Display tab: */ 1221 m_pTabRemoteDisplay = new QWidget; 1222 if (m_pTabRemoteDisplay) 1223 { 1224 /* Prepare Remote Display tab layout: */ 1225 QGridLayout *pLayoutTabRemoteDisplay = new QGridLayout(m_pTabRemoteDisplay); 1226 if (pLayoutTabRemoteDisplay) 1078 1227 { 1079 /* Configure slider: */ 1080 const uint cHostScreens = gpDesktop->screenCount(); 1081 const uint cMinGuestScreens = 1; 1082 const uint cMaxGuestScreens = sys.GetMaxGuestMonitors(); 1083 const uint cMaxGuestScreensForSlider = qMin(cMaxGuestScreens, (uint)8); 1084 m_pSliderVideoScreenCount->setMinimum(cMinGuestScreens); 1085 m_pSliderVideoScreenCount->setMaximum(cMaxGuestScreensForSlider); 1086 m_pSliderVideoScreenCount->setPageStep(1); 1087 m_pSliderVideoScreenCount->setSingleStep(1); 1088 m_pSliderVideoScreenCount->setTickInterval(1); 1089 m_pSliderVideoScreenCount->setOptimalHint(cMinGuestScreens, cHostScreens); 1090 m_pSliderVideoScreenCount->setWarningHint(cHostScreens, cMaxGuestScreensForSlider); 1228 pLayoutTabRemoteDisplay->setRowStretch(2, 1); 1229 1230 /* Prepare remote display check-box: */ 1231 m_pCheckboxRemoteDisplay = new QCheckBox(m_pTabRemoteDisplay); 1232 if (m_pCheckboxRemoteDisplay) 1233 pLayoutTabRemoteDisplay->addWidget(m_pCheckboxRemoteDisplay, 0, 0, 1, 2); 1234 1235 /* Prepare 20-px shifting spacer: */ 1236 QSpacerItem *pSpacerItem = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum); 1237 if (pSpacerItem) 1238 pLayoutTabRemoteDisplay->addItem(pSpacerItem, 1, 0); 1239 1240 /* Prepare remote display settings widget: */ 1241 m_pWidgetRemoteDisplaySettings = new QWidget(m_pTabRemoteDisplay); 1242 if (m_pWidgetRemoteDisplaySettings) 1243 { 1244 /* Prepare remote display settings widget layout: */ 1245 QGridLayout *pLayoutRemoteDisplaySettings = new QGridLayout(m_pWidgetRemoteDisplaySettings); 1246 if (pLayoutRemoteDisplaySettings) 1247 { 1248 pLayoutRemoteDisplaySettings->setContentsMargins(0, 0, 0, 0); 1249 1250 /* Prepare remote display port label: */ 1251 m_pLabelRemoteDisplayPort = new QLabel(m_pWidgetRemoteDisplaySettings); 1252 if (m_pLabelRemoteDisplayPort) 1253 { 1254 m_pLabelRemoteDisplayPort->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1255 pLayoutRemoteDisplaySettings->addWidget(m_pLabelRemoteDisplayPort, 0, 0); 1256 } 1257 /* Prepare remote display port editor: */ 1258 m_pEditorRemoteDisplayPort = new QLineEdit(m_pWidgetRemoteDisplaySettings); 1259 if (m_pEditorRemoteDisplayPort) 1260 { 1261 m_pLabelRemoteDisplayPort->setBuddy(m_pEditorRemoteDisplayPort); 1262 m_pEditorRemoteDisplayPort->setValidator(new QRegExpValidator( 1263 QRegExp("(([0-9]{1,5}(\\-[0-9]{1,5}){0,1}),)*([0-9]{1,5}(\\-[0-9]{1,5}){0,1})"), this)); 1264 1265 pLayoutRemoteDisplaySettings->addWidget(m_pEditorRemoteDisplayPort, 0, 1); 1266 } 1267 1268 /* Prepare remote display auth method label: */ 1269 m_pLabelRemoteDisplayAuthMethod = new QLabel(m_pWidgetRemoteDisplaySettings); 1270 if (m_pLabelRemoteDisplayAuthMethod) 1271 { 1272 m_pLabelRemoteDisplayAuthMethod->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1273 pLayoutRemoteDisplaySettings->addWidget(m_pLabelRemoteDisplayAuthMethod, 1, 0); 1274 } 1275 /* Prepare remote display auth method combo: */ 1276 m_pComboRemoteDisplayAuthMethod = new QComboBox(m_pWidgetRemoteDisplaySettings); 1277 if (m_pComboRemoteDisplayAuthMethod) 1278 { 1279 m_pLabelRemoteDisplayAuthMethod->setBuddy(m_pComboRemoteDisplayAuthMethod); 1280 m_pComboRemoteDisplayAuthMethod->setSizeAdjustPolicy(QComboBox::AdjustToContents); 1281 1282 pLayoutRemoteDisplaySettings->addWidget(m_pComboRemoteDisplayAuthMethod, 1, 1); 1283 } 1284 1285 /* Prepare remote display timeout label: */ 1286 m_pLabelRemoteDisplayTimeout = new QLabel(m_pWidgetRemoteDisplaySettings); 1287 if (m_pLabelRemoteDisplayTimeout) 1288 { 1289 m_pLabelRemoteDisplayTimeout->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1290 pLayoutRemoteDisplaySettings->addWidget(m_pLabelRemoteDisplayTimeout, 2, 0); 1291 } 1292 /* Prepare remote display timeout editor: */ 1293 m_pEditorRemoteDisplayTimeout = new QLineEdit(m_pWidgetRemoteDisplaySettings); 1294 if (m_pEditorRemoteDisplayTimeout) 1295 { 1296 m_pLabelRemoteDisplayTimeout->setBuddy(m_pEditorRemoteDisplayTimeout); 1297 m_pEditorRemoteDisplayTimeout->setValidator(new QIntValidator(this)); 1298 1299 pLayoutRemoteDisplaySettings->addWidget(m_pEditorRemoteDisplayTimeout, 2, 1); 1300 } 1301 1302 /* Prepare remote display options label: */ 1303 m_pLabelRemoteDisplayOptions = new QLabel(m_pWidgetRemoteDisplaySettings); 1304 if (m_pLabelRemoteDisplayOptions) 1305 { 1306 m_pLabelRemoteDisplayOptions->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1307 pLayoutRemoteDisplaySettings->addWidget(m_pLabelRemoteDisplayOptions, 3, 0); 1308 } 1309 /* Prepare remote display multiple connections check-box: */ 1310 m_pCheckboxMultipleConn = new QCheckBox(m_pWidgetRemoteDisplaySettings); 1311 if (m_pCheckboxMultipleConn) 1312 pLayoutRemoteDisplaySettings->addWidget(m_pCheckboxMultipleConn, 3, 1); 1313 } 1314 1315 pLayoutTabRemoteDisplay->addWidget(m_pWidgetRemoteDisplaySettings, 1, 1); 1316 } 1091 1317 } 1092 1318 1093 /* Screen-count editor created in the .ui file. */ 1094 AssertPtrReturnVoid(m_pEditorVideoScreenCount); 1319 m_pTabWidget->addTab(m_pTabRemoteDisplay, QString()); 1320 } 1321 } 1322 1323 void UIMachineSettingsDisplay::prepareTabRecording() 1324 { 1325 /* Prepare Recording tab: */ 1326 m_pTabRecording = new QWidget; 1327 if (m_pTabRecording) 1328 { 1329 /* Prepare Recording tab layout: */ 1330 QGridLayout *pLayoutRecording = new QGridLayout(m_pTabRecording); 1331 if (pLayoutRecording) 1095 1332 { 1096 /* Configure editor: */ 1097 const uint cMaxGuestScreens = sys.GetMaxGuestMonitors(); 1098 m_pEditorVideoScreenCount->setMinimum(1); 1099 m_pEditorVideoScreenCount->setMaximum(cMaxGuestScreens); 1333 pLayoutRecording->setRowStretch(2, 1); 1334 1335 /* Prepare recording check-box: */ 1336 m_pCheckboxRecording = new QCheckBox(m_pWidgetRecordingSettings); 1337 if (m_pCheckboxRecording) 1338 pLayoutRecording->addWidget(m_pCheckboxRecording, 0, 0, 1, 2); 1339 1340 /* Prepare 20-px shifting spacer: */ 1341 QSpacerItem *pSpacerItem = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum); 1342 if (pSpacerItem) 1343 pLayoutRecording->addItem(pSpacerItem, 1, 0); 1344 1345 /* Prepare recording settings widget: */ 1346 m_pWidgetRecordingSettings = new QWidget(m_pTabRecording); 1347 if (m_pWidgetRecordingSettings) 1348 { 1349 /* Prepare recording settings widget layout: */ 1350 QGridLayout *pLayoutRecordingSettings = new QGridLayout(m_pWidgetRecordingSettings); 1351 if (pLayoutRecordingSettings) 1352 { 1353 pLayoutRecordingSettings->setContentsMargins(0, 0, 0, 0); 1354 1355 /* Prepare recording mode label: */ 1356 m_pLabelRecordingMode = new QLabel(m_pWidgetRecordingSettings); 1357 if (m_pLabelRecordingMode) 1358 { 1359 m_pLabelRecordingMode->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1360 pLayoutRecordingSettings->addWidget(m_pLabelRecordingMode, 0, 0); 1361 } 1362 /* Prepare recording mode combo: */ 1363 m_pComboRecordingMode = new QComboBox(m_pWidgetRecordingSettings); 1364 if (m_pComboRecordingMode) 1365 { 1366 m_pLabelRecordingMode->setBuddy(m_pComboRecordingMode); 1367 m_pComboRecordingMode->insertItem(0, ""); /* UISettingsDefs::RecordingMode_VideoAudio */ 1368 m_pComboRecordingMode->insertItem(1, ""); /* UISettingsDefs::RecordingMode_VideoOnly */ 1369 m_pComboRecordingMode->insertItem(2, ""); /* UISettingsDefs::RecordingMode_AudioOnly */ 1370 1371 pLayoutRecordingSettings->addWidget(m_pComboRecordingMode, 0, 1, 1, 3); 1372 } 1373 1374 /* Prepare recording file path label: */ 1375 m_pLabelRecordingFilePath = new QLabel(m_pWidgetRecordingSettings); 1376 if (m_pLabelRecordingFilePath) 1377 { 1378 m_pLabelRecordingFilePath->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1379 pLayoutRecordingSettings->addWidget(m_pLabelRecordingFilePath, 1, 0); 1380 } 1381 /* Prepare recording file path editor: */ 1382 m_pEditorRecordingFilePath = new UIFilePathSelector(m_pWidgetRecordingSettings); 1383 if (m_pEditorRecordingFilePath) 1384 { 1385 m_pLabelRecordingFilePath->setBuddy(m_pEditorRecordingFilePath->focusProxy()); 1386 m_pEditorRecordingFilePath->setEditable(false); 1387 m_pEditorRecordingFilePath->setMode(UIFilePathSelector::Mode_File_Save); 1388 1389 pLayoutRecordingSettings->addWidget(m_pEditorRecordingFilePath, 1, 1, 1, 3); 1390 } 1391 1392 /* Prepare recording frame size label: */ 1393 m_pLabelRecordingFrameSize = new QLabel(m_pWidgetRecordingSettings); 1394 if (m_pLabelRecordingFrameSize) 1395 { 1396 m_pLabelRecordingFrameSize->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1397 pLayoutRecordingSettings->addWidget(m_pLabelRecordingFrameSize, 2, 0); 1398 } 1399 /* Prepare recording frame size combo: */ 1400 m_pComboRecordingFrameSize = new QComboBox(m_pWidgetRecordingSettings); 1401 if (m_pComboRecordingFrameSize) 1402 { 1403 m_pLabelRecordingFrameSize->setBuddy(m_pComboRecordingFrameSize); 1404 m_pComboRecordingFrameSize->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed)); 1405 m_pComboRecordingFrameSize->addItem(""); /* User Defined */ 1406 m_pComboRecordingFrameSize->addItem("320 x 200 (16:10)", QSize(320, 200)); 1407 m_pComboRecordingFrameSize->addItem("640 x 480 (4:3)", QSize(640, 480)); 1408 m_pComboRecordingFrameSize->addItem("720 x 400 (9:5)", QSize(720, 400)); 1409 m_pComboRecordingFrameSize->addItem("720 x 480 (3:2)", QSize(720, 480)); 1410 m_pComboRecordingFrameSize->addItem("800 x 600 (4:3)", QSize(800, 600)); 1411 m_pComboRecordingFrameSize->addItem("1024 x 768 (4:3)", QSize(1024, 768)); 1412 m_pComboRecordingFrameSize->addItem("1152 x 864 (4:3)", QSize(1152, 864)); 1413 m_pComboRecordingFrameSize->addItem("1280 x 720 (16:9)", QSize(1280, 720)); 1414 m_pComboRecordingFrameSize->addItem("1280 x 800 (16:10)", QSize(1280, 800)); 1415 m_pComboRecordingFrameSize->addItem("1280 x 960 (4:3)", QSize(1280, 960)); 1416 m_pComboRecordingFrameSize->addItem("1280 x 1024 (5:4)", QSize(1280, 1024)); 1417 m_pComboRecordingFrameSize->addItem("1366 x 768 (16:9)", QSize(1366, 768)); 1418 m_pComboRecordingFrameSize->addItem("1440 x 900 (16:10)", QSize(1440, 900)); 1419 m_pComboRecordingFrameSize->addItem("1440 x 1080 (4:3)", QSize(1440, 1080)); 1420 m_pComboRecordingFrameSize->addItem("1600 x 900 (16:9)", QSize(1600, 900)); 1421 m_pComboRecordingFrameSize->addItem("1680 x 1050 (16:10)", QSize(1680, 1050)); 1422 m_pComboRecordingFrameSize->addItem("1600 x 1200 (4:3)", QSize(1600, 1200)); 1423 m_pComboRecordingFrameSize->addItem("1920 x 1080 (16:9)", QSize(1920, 1080)); 1424 m_pComboRecordingFrameSize->addItem("1920 x 1200 (16:10)", QSize(1920, 1200)); 1425 m_pComboRecordingFrameSize->addItem("1920 x 1440 (4:3)", QSize(1920, 1440)); 1426 m_pComboRecordingFrameSize->addItem("2880 x 1800 (16:10)", QSize(2880, 1800)); 1427 1428 pLayoutRecordingSettings->addWidget(m_pComboRecordingFrameSize, 2, 1); 1429 } 1430 /* Prepare recording frame width spinbox: */ 1431 m_pSpinboxRecordingFrameWidth = new QSpinBox(m_pWidgetRecordingSettings); 1432 if (m_pSpinboxRecordingFrameWidth) 1433 { 1434 uiCommon().setMinimumWidthAccordingSymbolCount(m_pSpinboxRecordingFrameWidth, 5); 1435 m_pSpinboxRecordingFrameWidth->setMinimum(16); 1436 m_pSpinboxRecordingFrameWidth->setMaximum(2880); 1437 1438 pLayoutRecordingSettings->addWidget(m_pSpinboxRecordingFrameWidth, 2, 2); 1439 } 1440 /* Prepare recording frame height spinbox: */ 1441 m_pSpinboxRecordingFrameHeight = new QSpinBox(m_pWidgetRecordingSettings); 1442 if (m_pSpinboxRecordingFrameHeight) 1443 { 1444 uiCommon().setMinimumWidthAccordingSymbolCount(m_pSpinboxRecordingFrameHeight, 5); 1445 m_pSpinboxRecordingFrameHeight->setMinimum(16); 1446 m_pSpinboxRecordingFrameHeight->setMaximum(1800); 1447 1448 pLayoutRecordingSettings->addWidget(m_pSpinboxRecordingFrameHeight, 2, 3); 1449 } 1450 1451 /* Prepare recording frame rate label: */ 1452 m_pLabelRecordingFrameRate = new QLabel(m_pWidgetRecordingSettings); 1453 if (m_pLabelRecordingFrameRate) 1454 { 1455 m_pLabelRecordingFrameRate->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1456 pLayoutRecordingSettings->addWidget(m_pLabelRecordingFrameRate, 3, 0); 1457 } 1458 /* Prepare recording frame rate widget: */ 1459 m_pWidgetRecordingFrameRateSettings = new QWidget(m_pWidgetRecordingSettings); 1460 if (m_pWidgetRecordingFrameRateSettings) 1461 { 1462 /* Prepare recording frame rate layout: */ 1463 QVBoxLayout *pLayoutRecordingFrameRate = new QVBoxLayout(m_pWidgetRecordingFrameRateSettings); 1464 if (pLayoutRecordingFrameRate) 1465 { 1466 pLayoutRecordingFrameRate->setContentsMargins(0, 0, 0, 0); 1467 1468 /* Prepare recording frame rate slider: */ 1469 m_pSliderRecordingFrameRate = new QIAdvancedSlider(m_pWidgetRecordingFrameRateSettings); 1470 if (m_pSliderRecordingFrameRate) 1471 { 1472 m_pSliderRecordingFrameRate->setOrientation(Qt::Horizontal); 1473 m_pSliderRecordingFrameRate->setMinimum(1); 1474 m_pSliderRecordingFrameRate->setMaximum(30); 1475 m_pSliderRecordingFrameRate->setPageStep(1); 1476 m_pSliderRecordingFrameRate->setSingleStep(1); 1477 m_pSliderRecordingFrameRate->setTickInterval(1); 1478 m_pSliderRecordingFrameRate->setSnappingEnabled(true); 1479 m_pSliderRecordingFrameRate->setOptimalHint(1, 25); 1480 m_pSliderRecordingFrameRate->setWarningHint(25, 30); 1481 1482 pLayoutRecordingFrameRate->addWidget(m_pSliderRecordingFrameRate); 1483 } 1484 /* Prepare recording frame rate scale layout: */ 1485 QHBoxLayout *pLayoutRecordingFrameRateScale = new QHBoxLayout; 1486 if (pLayoutRecordingFrameRateScale) 1487 { 1488 pLayoutRecordingFrameRateScale->setContentsMargins(0, 0, 0, 0); 1489 1490 /* Prepare recording frame rate min label: */ 1491 m_pLabelRecordingFrameRateMin = new QLabel(m_pWidgetRecordingFrameRateSettings); 1492 if (m_pLabelRecordingFrameRateMin) 1493 pLayoutRecordingFrameRateScale->addWidget(m_pLabelRecordingFrameRateMin); 1494 pLayoutRecordingFrameRateScale->addStretch(); 1495 /* Prepare recording frame rate max label: */ 1496 m_pLabelRecordingFrameRateMax = new QLabel(m_pWidgetRecordingFrameRateSettings); 1497 if (m_pLabelRecordingFrameRateMax) 1498 pLayoutRecordingFrameRateScale->addWidget(m_pLabelRecordingFrameRateMax); 1499 1500 pLayoutRecordingFrameRate->addLayout(pLayoutRecordingFrameRateScale); 1501 } 1502 } 1503 1504 pLayoutRecordingSettings->addWidget(m_pWidgetRecordingFrameRateSettings, 3, 1, 2, 1); 1505 } 1506 /* Prepare recording frame rate spinbox: */ 1507 m_pSpinboxRecordingFrameRate = new QSpinBox(m_pWidgetRecordingSettings); 1508 if (m_pSpinboxRecordingFrameRate) 1509 { 1510 m_pLabelRecordingFrameRate->setBuddy(m_pSpinboxRecordingFrameRate); 1511 uiCommon().setMinimumWidthAccordingSymbolCount(m_pSpinboxRecordingFrameRate, 3); 1512 m_pSpinboxRecordingFrameRate->setMinimum(1); 1513 m_pSpinboxRecordingFrameRate->setMaximum(30); 1514 1515 pLayoutRecordingSettings->addWidget(m_pSpinboxRecordingFrameRate, 3, 2, 1, 2); 1516 } 1517 1518 /* Prepare recording video quality label: */ 1519 m_pLabelRecordingVideoQuality = new QLabel(m_pWidgetRecordingSettings); 1520 if (m_pLabelRecordingVideoQuality) 1521 { 1522 m_pLabelRecordingVideoQuality->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1523 pLayoutRecordingSettings->addWidget(m_pLabelRecordingVideoQuality, 5, 0); 1524 } 1525 /* Prepare recording video quality widget: */ 1526 m_pWidgetRecordingVideoQualitySettings = new QWidget(m_pWidgetRecordingSettings); 1527 if (m_pWidgetRecordingVideoQualitySettings) 1528 { 1529 /* Prepare recording video quality layout: */ 1530 QVBoxLayout *pLayoutRecordingVideoQuality = new QVBoxLayout(m_pWidgetRecordingVideoQualitySettings); 1531 if (pLayoutRecordingVideoQuality) 1532 { 1533 pLayoutRecordingVideoQuality->setContentsMargins(0, 0, 0, 0); 1534 1535 /* Prepare recording video quality slider: */ 1536 m_pSliderRecordingVideoQuality = new QIAdvancedSlider(m_pWidgetRecordingVideoQualitySettings); 1537 if (m_pSliderRecordingVideoQuality) 1538 { 1539 m_pSliderRecordingVideoQuality->setOrientation(Qt::Horizontal); 1540 m_pSliderRecordingVideoQuality->setMinimum(1); 1541 m_pSliderRecordingVideoQuality->setMaximum(10); 1542 m_pSliderRecordingVideoQuality->setPageStep(1); 1543 m_pSliderRecordingVideoQuality->setSingleStep(1); 1544 m_pSliderRecordingVideoQuality->setTickInterval(1); 1545 m_pSliderRecordingVideoQuality->setSnappingEnabled(true); 1546 m_pSliderRecordingVideoQuality->setOptimalHint(1, 5); 1547 m_pSliderRecordingVideoQuality->setWarningHint(5, 9); 1548 m_pSliderRecordingVideoQuality->setErrorHint(9, 10); 1549 1550 pLayoutRecordingVideoQuality->addWidget(m_pSliderRecordingVideoQuality); 1551 } 1552 /* Prepare recording video quality scale layout: */ 1553 QHBoxLayout *pLayoutRecordingVideoQialityScale = new QHBoxLayout; 1554 if (pLayoutRecordingVideoQialityScale) 1555 { 1556 pLayoutRecordingVideoQialityScale->setContentsMargins(0, 0, 0, 0); 1557 1558 /* Prepare recording video quality min label: */ 1559 m_pLabelRecordingVideoQualityMin = new QLabel(m_pWidgetRecordingVideoQualitySettings); 1560 if (m_pLabelRecordingVideoQualityMin) 1561 pLayoutRecordingVideoQialityScale->addWidget(m_pLabelRecordingVideoQualityMin); 1562 pLayoutRecordingVideoQialityScale->addStretch(); 1563 /* Prepare recording video quality med label: */ 1564 m_pLabelRecordingVideoQualityMed = new QLabel(m_pWidgetRecordingVideoQualitySettings); 1565 if (m_pLabelRecordingVideoQualityMed) 1566 pLayoutRecordingVideoQialityScale->addWidget(m_pLabelRecordingVideoQualityMed); 1567 pLayoutRecordingVideoQialityScale->addStretch(); 1568 /* Prepare recording video quality max label: */ 1569 m_pLabelRecordingVideoQualityMax = new QLabel(m_pWidgetRecordingVideoQualitySettings); 1570 if (m_pLabelRecordingVideoQualityMax) 1571 pLayoutRecordingVideoQialityScale->addWidget(m_pLabelRecordingVideoQualityMax); 1572 1573 pLayoutRecordingVideoQuality->addLayout(pLayoutRecordingVideoQialityScale); 1574 } 1575 } 1576 1577 pLayoutRecordingSettings->addWidget(m_pWidgetRecordingVideoQualitySettings, 5, 1, 2, 1); 1578 } 1579 /* Prepare recording video quality spinbox: */ 1580 m_pSpinboxRecordingVideoQuality = new QSpinBox(m_pWidgetRecordingSettings); 1581 if (m_pSpinboxRecordingVideoQuality) 1582 { 1583 m_pLabelRecordingVideoQuality->setBuddy(m_pSpinboxRecordingVideoQuality); 1584 uiCommon().setMinimumWidthAccordingSymbolCount(m_pSpinboxRecordingVideoQuality, 5); 1585 m_pSpinboxRecordingVideoQuality->setMinimum(VIDEO_CAPTURE_BIT_RATE_MIN); 1586 m_pSpinboxRecordingVideoQuality->setMaximum(VIDEO_CAPTURE_BIT_RATE_MAX); 1587 1588 pLayoutRecordingSettings->addWidget(m_pSpinboxRecordingVideoQuality, 5, 2, 1, 2); 1589 } 1590 1591 /* Prepare recording audio quality label: */ 1592 m_pLabelRecordingAudioQuality = new QLabel(m_pWidgetRecordingSettings); 1593 if (m_pLabelRecordingAudioQuality) 1594 { 1595 m_pLabelRecordingAudioQuality->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 1596 pLayoutRecordingSettings->addWidget(m_pLabelRecordingAudioQuality, 7, 0); 1597 } 1598 /* Prepare recording audio quality widget: */ 1599 m_pWidgetRecordingAudioQualitySettings = new QWidget(m_pWidgetRecordingSettings); 1600 if (m_pWidgetRecordingAudioQualitySettings) 1601 { 1602 /* Prepare recording audio quality layout: */ 1603 QVBoxLayout *pLayoutRecordingAudioQuality = new QVBoxLayout(m_pWidgetRecordingAudioQualitySettings); 1604 if (pLayoutRecordingAudioQuality) 1605 { 1606 pLayoutRecordingAudioQuality->setContentsMargins(0, 0, 0, 0); 1607 1608 /* Prepare recording audio quality slider: */ 1609 m_pSliderRecordingAudioQuality = new QIAdvancedSlider(m_pWidgetRecordingAudioQualitySettings); 1610 if (m_pSliderRecordingAudioQuality) 1611 { 1612 m_pLabelRecordingAudioQuality->setBuddy(m_pSliderRecordingAudioQuality); 1613 m_pSliderRecordingAudioQuality->setOrientation(Qt::Horizontal); 1614 m_pSliderRecordingAudioQuality->setMinimum(1); 1615 m_pSliderRecordingAudioQuality->setMaximum(3); 1616 m_pSliderRecordingAudioQuality->setPageStep(1); 1617 m_pSliderRecordingAudioQuality->setSingleStep(1); 1618 m_pSliderRecordingAudioQuality->setTickInterval(1); 1619 m_pSliderRecordingAudioQuality->setSnappingEnabled(true); 1620 m_pSliderRecordingAudioQuality->setOptimalHint(1, 2); 1621 m_pSliderRecordingAudioQuality->setWarningHint(2, 3); 1622 pLayoutRecordingAudioQuality->addWidget(m_pSliderRecordingAudioQuality); 1623 } 1624 /* Prepare recording audio quality scale layout: */ 1625 QHBoxLayout *pLayoutRecordingAudioQialityScale = new QHBoxLayout; 1626 if (pLayoutRecordingAudioQialityScale) 1627 { 1628 pLayoutRecordingAudioQialityScale->setContentsMargins(0, 0, 0, 0); 1629 1630 /* Prepare recording audio quality min label: */ 1631 m_pLabelRecordingAudioQualityMin = new QLabel(m_pWidgetRecordingAudioQualitySettings); 1632 if (m_pLabelRecordingAudioQualityMin) 1633 pLayoutRecordingAudioQialityScale->addWidget(m_pLabelRecordingAudioQualityMin); 1634 pLayoutRecordingAudioQialityScale->addStretch(); 1635 /* Prepare recording audio quality med label: */ 1636 m_pLabelRecordingAudioQualityMed = new QLabel(m_pWidgetRecordingAudioQualitySettings); 1637 if (m_pLabelRecordingAudioQualityMed) 1638 pLayoutRecordingAudioQialityScale->addWidget(m_pLabelRecordingAudioQualityMed); 1639 pLayoutRecordingAudioQialityScale->addStretch(); 1640 /* Prepare recording audio quality max label: */ 1641 m_pLabelRecordingAudioQualityMax = new QLabel(m_pWidgetRecordingAudioQualitySettings); 1642 if (m_pLabelRecordingAudioQualityMax) 1643 pLayoutRecordingAudioQialityScale->addWidget(m_pLabelRecordingAudioQualityMax); 1644 1645 pLayoutRecordingAudioQuality->addLayout(pLayoutRecordingAudioQialityScale); 1646 } 1647 } 1648 1649 pLayoutRecordingSettings->addWidget(m_pWidgetRecordingAudioQualitySettings, 7, 1, 2, 1); 1650 } 1651 1652 /* Prepare recording size hint label: */ 1653 m_pLabelRecordingSizeHint = new QLabel(m_pWidgetRecordingSettings); 1654 if (m_pLabelRecordingSizeHint) 1655 pLayoutRecordingSettings->addWidget(m_pLabelRecordingSizeHint, 9, 1); 1656 1657 /* Prepare recording screens label: */ 1658 m_pLabelRecordingScreens = new QLabel(m_pWidgetRecordingSettings); 1659 if (m_pLabelRecordingScreens) 1660 { 1661 m_pLabelRecordingScreens->setAlignment(Qt::AlignRight | Qt::AlignTop); 1662 pLayoutRecordingSettings->addWidget(m_pLabelRecordingScreens, 10, 0); 1663 } 1664 /* Prepare recording screens scroller: */ 1665 m_pScrollerRecordingScreens = new UIFilmContainer(m_pWidgetRecordingSettings); 1666 if (m_pScrollerRecordingScreens) 1667 { 1668 m_pLabelRecordingScreens->setBuddy(m_pScrollerRecordingScreens); 1669 pLayoutRecordingSettings->addWidget(m_pScrollerRecordingScreens, 10, 1, 1, 3); 1670 } 1671 } 1672 1673 pLayoutRecording->addWidget(m_pWidgetRecordingSettings, 1, 1); 1674 } 1100 1675 } 1101 1676 1102 /* Graphics controller label & editor created in the .ui file. */ 1103 AssertPtrReturnVoid(m_pGraphicsControllerEditor); 1104 { 1105 /* Configure label & editor: */ 1106 m_pGraphicsControllerLabel->setBuddy(m_pGraphicsControllerEditor->focusProxy()); 1107 } 1108 } 1109 } 1110 1111 void UIMachineSettingsDisplay::prepareTabRemoteDisplay() 1112 { 1113 /* Tab and it's layout created in the .ui file. */ 1114 { 1115 /* Port editor created in the .ui file. */ 1116 AssertPtrReturnVoid(m_pEditorRemoteDisplayPort); 1117 { 1118 /* Configure editor: */ 1119 m_pEditorRemoteDisplayPort->setValidator(new QRegExpValidator( 1120 QRegExp("(([0-9]{1,5}(\\-[0-9]{1,5}){0,1}),)*([0-9]{1,5}(\\-[0-9]{1,5}){0,1})"), this)); 1121 } 1122 1123 /* Timeout editor created in the .ui file. */ 1124 AssertPtrReturnVoid(m_pEditorRemoteDisplayTimeout); 1125 { 1126 /* Configure editor: */ 1127 m_pEditorRemoteDisplayTimeout->setValidator(new QIntValidator(this)); 1128 } 1129 1130 /* Auth-method combo-box created in the .ui file. */ 1131 AssertPtrReturnVoid(m_pComboRemoteDisplayAuthMethod); 1132 { 1133 /* Configure combo-box: */ 1134 m_pComboRemoteDisplayAuthMethod->insertItem(0, ""); /* KAuthType_Null */ 1135 m_pComboRemoteDisplayAuthMethod->insertItem(1, ""); /* KAuthType_External */ 1136 m_pComboRemoteDisplayAuthMethod->insertItem(2, ""); /* KAuthType_Guest */ 1137 } 1138 } 1139 } 1140 1141 void UIMachineSettingsDisplay::prepareTabRecording() 1142 { 1143 /* Tab and it's layout created in the .ui file. */ 1144 { 1145 /* Capture mode selection combo box. */ 1146 AssertPtrReturnVoid(m_pComboBoxCaptureMode); 1147 { 1148 m_pComboBoxCaptureMode->insertItem(0, ""); /* UISettingsDefs::RecordingMode_VideoAudio */ 1149 m_pComboBoxCaptureMode->insertItem(1, ""); /* UISettingsDefs::RecordingMode_VideoOnly */ 1150 m_pComboBoxCaptureMode->insertItem(2, ""); /* UISettingsDefs::RecordingMode_AudioOnly */ 1151 } 1152 1153 /* File-path selector created in the .ui file. */ 1154 AssertPtrReturnVoid(m_pEditorVideoCapturePath); 1155 { 1156 /* Configure selector: */ 1157 m_pEditorVideoCapturePath->setEditable(false); 1158 m_pEditorVideoCapturePath->setMode(UIFilePathSelector::Mode_File_Save); 1159 } 1160 1161 /* Frame-size combo-box created in the .ui file. */ 1162 AssertPtrReturnVoid(m_pComboVideoCaptureSize); 1163 { 1164 /* Configure combo-box: */ 1165 m_pComboVideoCaptureSize->addItem(""); /* User Defined */ 1166 m_pComboVideoCaptureSize->addItem("320 x 200 (16:10)", QSize(320, 200)); 1167 m_pComboVideoCaptureSize->addItem("640 x 480 (4:3)", QSize(640, 480)); 1168 m_pComboVideoCaptureSize->addItem("720 x 400 (9:5)", QSize(720, 400)); 1169 m_pComboVideoCaptureSize->addItem("720 x 480 (3:2)", QSize(720, 480)); 1170 m_pComboVideoCaptureSize->addItem("800 x 600 (4:3)", QSize(800, 600)); 1171 m_pComboVideoCaptureSize->addItem("1024 x 768 (4:3)", QSize(1024, 768)); 1172 m_pComboVideoCaptureSize->addItem("1152 x 864 (4:3)", QSize(1152, 864)); 1173 m_pComboVideoCaptureSize->addItem("1280 x 720 (16:9)", QSize(1280, 720)); 1174 m_pComboVideoCaptureSize->addItem("1280 x 800 (16:10)", QSize(1280, 800)); 1175 m_pComboVideoCaptureSize->addItem("1280 x 960 (4:3)", QSize(1280, 960)); 1176 m_pComboVideoCaptureSize->addItem("1280 x 1024 (5:4)", QSize(1280, 1024)); 1177 m_pComboVideoCaptureSize->addItem("1366 x 768 (16:9)", QSize(1366, 768)); 1178 m_pComboVideoCaptureSize->addItem("1440 x 900 (16:10)", QSize(1440, 900)); 1179 m_pComboVideoCaptureSize->addItem("1440 x 1080 (4:3)", QSize(1440, 1080)); 1180 m_pComboVideoCaptureSize->addItem("1600 x 900 (16:9)", QSize(1600, 900)); 1181 m_pComboVideoCaptureSize->addItem("1680 x 1050 (16:10)", QSize(1680, 1050)); 1182 m_pComboVideoCaptureSize->addItem("1600 x 1200 (4:3)", QSize(1600, 1200)); 1183 m_pComboVideoCaptureSize->addItem("1920 x 1080 (16:9)", QSize(1920, 1080)); 1184 m_pComboVideoCaptureSize->addItem("1920 x 1200 (16:10)", QSize(1920, 1200)); 1185 m_pComboVideoCaptureSize->addItem("1920 x 1440 (4:3)", QSize(1920, 1440)); 1186 m_pComboVideoCaptureSize->addItem("2880 x 1800 (16:10)", QSize(2880, 1800)); 1187 } 1188 1189 /* Frame-width editor created in the .ui file. */ 1190 AssertPtrReturnVoid(m_pEditorVideoCaptureWidth); 1191 { 1192 /* Configure editor: */ 1193 uiCommon().setMinimumWidthAccordingSymbolCount(m_pEditorVideoCaptureWidth, 5); 1194 m_pEditorVideoCaptureWidth->setMinimum(16); 1195 m_pEditorVideoCaptureWidth->setMaximum(2880); 1196 } 1197 1198 /* Frame-height editor created in the .ui file. */ 1199 AssertPtrReturnVoid(m_pEditorVideoCaptureHeight); 1200 { 1201 /* Configure editor: */ 1202 uiCommon().setMinimumWidthAccordingSymbolCount(m_pEditorVideoCaptureHeight, 5); 1203 m_pEditorVideoCaptureHeight->setMinimum(16); 1204 m_pEditorVideoCaptureHeight->setMaximum(1800); 1205 } 1206 1207 /* Frame-rate slider created in the .ui file. */ 1208 AssertPtrReturnVoid(m_pSliderVideoCaptureFrameRate); 1209 { 1210 /* Configure slider: */ 1211 m_pSliderVideoCaptureFrameRate->setMinimum(1); 1212 m_pSliderVideoCaptureFrameRate->setMaximum(30); 1213 m_pSliderVideoCaptureFrameRate->setPageStep(1); 1214 m_pSliderVideoCaptureFrameRate->setSingleStep(1); 1215 m_pSliderVideoCaptureFrameRate->setTickInterval(1); 1216 m_pSliderVideoCaptureFrameRate->setSnappingEnabled(true); 1217 m_pSliderVideoCaptureFrameRate->setOptimalHint(1, 25); 1218 m_pSliderVideoCaptureFrameRate->setWarningHint(25, 30); 1219 } 1220 1221 /* Frame-rate editor created in the .ui file. */ 1222 AssertPtrReturnVoid(m_pEditorVideoCaptureFrameRate); 1223 { 1224 /* Configure editor: */ 1225 uiCommon().setMinimumWidthAccordingSymbolCount(m_pEditorVideoCaptureFrameRate, 3); 1226 m_pEditorVideoCaptureFrameRate->setMinimum(1); 1227 m_pEditorVideoCaptureFrameRate->setMaximum(30); 1228 } 1229 1230 /* Frame quality combo-box created in the .ui file. */ 1231 AssertPtrReturnVoid(m_pContainerLayoutSliderVideoCaptureQuality); 1232 AssertPtrReturnVoid(m_pSliderVideoCaptureQuality); 1233 { 1234 /* Configure quality related widget: */ 1235 m_pContainerLayoutSliderVideoCaptureQuality->setColumnStretch(1, 4); 1236 m_pContainerLayoutSliderVideoCaptureQuality->setColumnStretch(3, 5); 1237 m_pSliderVideoCaptureQuality->setMinimum(1); 1238 m_pSliderVideoCaptureQuality->setMaximum(10); 1239 m_pSliderVideoCaptureQuality->setPageStep(1); 1240 m_pSliderVideoCaptureQuality->setSingleStep(1); 1241 m_pSliderVideoCaptureQuality->setTickInterval(1); 1242 m_pSliderVideoCaptureQuality->setSnappingEnabled(true); 1243 m_pSliderVideoCaptureQuality->setOptimalHint(1, 5); 1244 m_pSliderVideoCaptureQuality->setWarningHint(5, 9); 1245 m_pSliderVideoCaptureQuality->setErrorHint(9, 10); 1246 } 1247 1248 /* Bit-rate editor created in the .ui file. */ 1249 AssertPtrReturnVoid(m_pEditorVideoCaptureBitRate); 1250 { 1251 /* Configure editor: */ 1252 uiCommon().setMinimumWidthAccordingSymbolCount(m_pEditorVideoCaptureBitRate, 5); 1253 m_pEditorVideoCaptureBitRate->setMinimum(VIDEO_CAPTURE_BIT_RATE_MIN); 1254 m_pEditorVideoCaptureBitRate->setMaximum(VIDEO_CAPTURE_BIT_RATE_MAX); 1255 } 1256 1257 /* Frame-rate slider created in the .ui file. */ 1258 AssertPtrReturnVoid(m_pSliderAudioCaptureQuality); 1259 { 1260 /* Configure slider: */ 1261 m_pSliderAudioCaptureQuality->setMinimum(1); 1262 m_pSliderAudioCaptureQuality->setMaximum(3); 1263 m_pSliderAudioCaptureQuality->setPageStep(1); 1264 m_pSliderAudioCaptureQuality->setSingleStep(1); 1265 m_pSliderAudioCaptureQuality->setTickInterval(1); 1266 m_pSliderAudioCaptureQuality->setSnappingEnabled(true); 1267 m_pSliderAudioCaptureQuality->setOptimalHint(1, 2); 1268 m_pSliderAudioCaptureQuality->setWarningHint(2, 3); 1269 } 1677 m_pTabWidget->addTab(m_pTabRecording, QString()); 1270 1678 } 1271 1679 } … … 1274 1682 { 1275 1683 /* Configure 'Screen' connections: */ 1276 connect(m_p VideoMemoryEditor, &UIVideoMemoryEditor::sigValidChanged,1684 connect(m_pEditorVideoMemorySize, &UIVideoMemoryEditor::sigValidChanged, 1277 1685 this, &UIMachineSettingsDisplay::revalidate); 1278 connect(m_pSlider VideoScreenCount, &QIAdvancedSlider::valueChanged,1686 connect(m_pSliderMonitorCount, &QIAdvancedSlider::valueChanged, 1279 1687 this, &UIMachineSettingsDisplay::sltHandleGuestScreenCountSliderChange); 1280 connect(m_p EditorVideoScreenCount, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),1688 connect(m_pSpinboxMonitorCount, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), 1281 1689 this, &UIMachineSettingsDisplay::sltHandleGuestScreenCountEditorChange); 1282 connect(m_p GraphicsControllerEditor, &UIGraphicsControllerEditor::sigValueChanged,1690 connect(m_pEditorGraphicsController, &UIGraphicsControllerEditor::sigValueChanged, 1283 1691 this, &UIMachineSettingsDisplay::sltHandleGraphicsControllerComboChange); 1284 1692 #ifdef VBOX_WITH_3D_ACCELERATION … … 1288 1696 1289 1697 /* Configure 'Remote Display' connections: */ 1698 connect(m_pCheckboxRemoteDisplay, &QCheckBox::toggled, m_pWidgetRemoteDisplaySettings, &QWidget::setEnabled); 1290 1699 connect(m_pCheckboxRemoteDisplay, &QCheckBox::toggled, this, &UIMachineSettingsDisplay::revalidate); 1291 1700 connect(m_pEditorRemoteDisplayPort, &QLineEdit::textChanged, this, &UIMachineSettingsDisplay::revalidate); … … 1293 1702 1294 1703 /* Configure 'Recording' connections: */ 1295 connect(m_pCheckbox VideoCapture, &QCheckBox::toggled,1704 connect(m_pCheckboxRecording, &QCheckBox::toggled, 1296 1705 this, &UIMachineSettingsDisplay::sltHandleRecordingCheckboxToggle); 1297 connect(m_pCombo VideoCaptureSize, static_cast<void(QComboBox::*)(int)>(&QComboBox:: currentIndexChanged),1706 connect(m_pComboRecordingFrameSize, static_cast<void(QComboBox::*)(int)>(&QComboBox:: currentIndexChanged), 1298 1707 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoFrameSizeComboboxChange); 1299 connect(m_p EditorVideoCaptureWidth, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),1708 connect(m_pSpinboxRecordingFrameWidth, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), 1300 1709 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoFrameWidthEditorChange); 1301 connect(m_p EditorVideoCaptureHeight, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),1710 connect(m_pSpinboxRecordingFrameHeight, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), 1302 1711 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoFrameHeightEditorChange); 1303 connect(m_pSlider VideoCaptureFrameRate, &QIAdvancedSlider::valueChanged,1712 connect(m_pSliderRecordingFrameRate, &QIAdvancedSlider::valueChanged, 1304 1713 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoFrameRateSliderChange); 1305 connect(m_p EditorVideoCaptureFrameRate, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),1714 connect(m_pSpinboxRecordingFrameRate, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), 1306 1715 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoFrameRateEditorChange); 1307 connect(m_pSlider VideoCaptureQuality, &QIAdvancedSlider::valueChanged,1716 connect(m_pSliderRecordingVideoQuality, &QIAdvancedSlider::valueChanged, 1308 1717 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoQualitySliderChange); 1309 connect(m_p EditorVideoCaptureBitRate, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),1718 connect(m_pSpinboxRecordingVideoQuality, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), 1310 1719 this, &UIMachineSettingsDisplay::sltHandleRecordingVideoBitRateEditorChange); 1311 1720 1312 connect(m_pCombo BoxCaptureMode, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),1721 connect(m_pComboRecordingMode, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), 1313 1722 this, &UIMachineSettingsDisplay::sltHandleRecordingComboBoxChange); 1314 }1315 1316 void UIMachineSettingsDisplay::prepareWidgets()1317 {1318 if (objectName().isEmpty())1319 setObjectName(QStringLiteral("UIMachineSettingsDisplay"));1320 resize(350, 300);1321 QVBoxLayout *pLayoutMain = new QVBoxLayout(this);1322 pLayoutMain->setObjectName(QStringLiteral("pLayoutMain"));1323 m_pTabWidget = new QITabWidget();1324 m_pTabWidget->setObjectName(QStringLiteral("m_pTabWidget"));1325 m_pTabVideo = new QWidget();1326 m_pTabVideo->setObjectName(QStringLiteral("m_pTabVideo"));1327 QVBoxLayout *pLayoutTabVideo = new QVBoxLayout(m_pTabVideo);1328 pLayoutTabVideo->setObjectName(QStringLiteral("pLayoutTabVideo"));1329 QWidget *pContainerVideo = new QWidget(m_pTabVideo);1330 pContainerVideo->setObjectName(QStringLiteral("pContainerVideo"));1331 QGridLayout *pLayoutContainerVideo = new QGridLayout(pContainerVideo);1332 pLayoutContainerVideo->setObjectName(QStringLiteral("pLayoutContainerVideo"));1333 pLayoutContainerVideo->setContentsMargins(0, 0, 0, 0);1334 m_pVideoMemoryLabel = new QLabel(pContainerVideo);1335 m_pVideoMemoryLabel->setObjectName(QStringLiteral("m_pVideoMemoryLabel"));1336 m_pVideoMemoryLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1337 pLayoutContainerVideo->addWidget(m_pVideoMemoryLabel, 0, 0, 1, 1);1338 1339 m_pVideoMemoryEditor = new UIVideoMemoryEditor(pContainerVideo);1340 m_pVideoMemoryEditor->setObjectName(QStringLiteral("m_pVideoMemoryEditor"));1341 pLayoutContainerVideo->addWidget(m_pVideoMemoryEditor, 0, 1, 2, 2);1342 1343 m_pLabelVideoScreenCount = new QLabel(pContainerVideo);1344 m_pLabelVideoScreenCount->setObjectName(QStringLiteral("m_pLabelVideoScreenCount"));1345 m_pLabelVideoScreenCount->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1346 pLayoutContainerVideo->addWidget(m_pLabelVideoScreenCount, 2, 0, 1, 1);1347 1348 QGridLayout *pLayoutVideoScreenCount = new QGridLayout();1349 pLayoutVideoScreenCount->setSpacing(0);1350 pLayoutVideoScreenCount->setObjectName(QStringLiteral("pLayoutVideoScreenCount"));1351 m_pSliderVideoScreenCount = new QIAdvancedSlider(pContainerVideo);1352 m_pSliderVideoScreenCount->setObjectName(QStringLiteral("m_pSliderVideoScreenCount"));1353 m_pSliderVideoScreenCount->setOrientation(Qt::Horizontal);1354 pLayoutVideoScreenCount->addWidget(m_pSliderVideoScreenCount, 0, 0, 1, 3);1355 1356 m_pLabelVideoScreenCountMin = new QLabel(pContainerVideo);1357 m_pLabelVideoScreenCountMin->setObjectName(QStringLiteral("m_pLabelVideoScreenCountMin"));1358 pLayoutVideoScreenCount->addWidget(m_pLabelVideoScreenCountMin, 1, 0, 1, 1);1359 1360 QSpacerItem *pSpacerVideoScreenCount = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1361 pLayoutVideoScreenCount->addItem(pSpacerVideoScreenCount, 1, 1, 1, 1);1362 1363 m_pLabelVideoScreenCountMax = new QLabel(pContainerVideo);1364 m_pLabelVideoScreenCountMax->setObjectName(QStringLiteral("m_pLabelVideoScreenCountMax"));1365 1366 pLayoutVideoScreenCount->addWidget(m_pLabelVideoScreenCountMax, 1, 2, 1, 1);1367 pLayoutContainerVideo->addLayout(pLayoutVideoScreenCount, 2, 1, 2, 1);1368 1369 m_pEditorVideoScreenCount = new QSpinBox(pContainerVideo);1370 m_pEditorVideoScreenCount->setObjectName(QStringLiteral("m_pEditorVideoScreenCount"));1371 pLayoutContainerVideo->addWidget(m_pEditorVideoScreenCount, 2, 2, 1, 1);1372 1373 m_pLabelGuestScreenScaleFactorEditor = new QLabel(pContainerVideo);1374 m_pLabelGuestScreenScaleFactorEditor->setObjectName(QStringLiteral("m_pLabelGuestScreenScaleFactorEditor"));1375 m_pLabelGuestScreenScaleFactorEditor->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1376 pLayoutContainerVideo->addWidget(m_pLabelGuestScreenScaleFactorEditor, 4, 0, 1, 1);1377 1378 QGridLayout *pLayoutGuestScreenScaleFactorEditor = new QGridLayout();1379 pLayoutGuestScreenScaleFactorEditor->setSpacing(0);1380 pLayoutGuestScreenScaleFactorEditor->setObjectName(QStringLiteral("pLayoutGuestScreenScaleFactorEditor"));1381 m_pScaleFactorEditor = new UIScaleFactorEditor(pContainerVideo);1382 m_pScaleFactorEditor->setObjectName(QStringLiteral("m_pScaleFactorEditor"));1383 pLayoutGuestScreenScaleFactorEditor->addWidget(m_pScaleFactorEditor, 0, 0, 2, 3);1384 pLayoutContainerVideo->addLayout(pLayoutGuestScreenScaleFactorEditor, 4, 1, 2, 2);1385 1386 m_pGraphicsControllerLabel = new QLabel(pContainerVideo);1387 m_pGraphicsControllerLabel->setObjectName(QStringLiteral("m_pGraphicsControllerLabel"));1388 m_pGraphicsControllerLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1389 pLayoutContainerVideo->addWidget(m_pGraphicsControllerLabel, 6, 0, 1, 1);1390 1391 m_pGraphicsControllerEditor = new UIGraphicsControllerEditor(pContainerVideo);1392 m_pGraphicsControllerEditor->setObjectName(QStringLiteral("m_pGraphicsControllerEditor"));1393 pLayoutContainerVideo->addWidget(m_pGraphicsControllerEditor, 6, 1, 1, 2);1394 1395 m_pLabelVideoOptions = new QLabel(pContainerVideo);1396 m_pLabelVideoOptions->setObjectName(QStringLiteral("m_pLabelVideoOptions"));1397 m_pLabelVideoOptions->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1398 pLayoutContainerVideo->addWidget(m_pLabelVideoOptions, 7, 0, 1, 1);1399 1400 m_pLayout3D = new QStackedLayout();1401 m_pLayout3D->setObjectName(QStringLiteral("m_pLayout3D"));1402 m_pCheckbox3D = new QCheckBox(pContainerVideo);1403 m_pCheckbox3D->setObjectName(QStringLiteral("m_pCheckbox3D"));1404 QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);1405 sizePolicy.setHorizontalStretch(0);1406 sizePolicy.setVerticalStretch(0);1407 sizePolicy.setHeightForWidth(m_pCheckbox3D->sizePolicy().hasHeightForWidth());1408 m_pCheckbox3D->setSizePolicy(sizePolicy);1409 m_pLayout3D->addWidget(m_pCheckbox3D);1410 1411 QWidget *pPlaceholder3D = new QWidget(pContainerVideo);1412 pPlaceholder3D->setObjectName(QStringLiteral("pPlaceholder3D"));1413 1414 m_pLayout3D->addWidget(pPlaceholder3D);1415 pLayoutContainerVideo->addLayout(m_pLayout3D, 7, 1, 1, 1);1416 pLayoutTabVideo->addWidget(pContainerVideo);1417 1418 QSpacerItem *pStretchVideo = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);1419 pLayoutTabVideo->addItem(pStretchVideo);1420 1421 m_pTabWidget->addTab(m_pTabVideo, QString());1422 m_pTabRemoteDisplay = new QWidget();1423 m_pTabRemoteDisplay->setObjectName(QStringLiteral("m_pTabRemoteDisplay"));1424 QVBoxLayout *pLayoutTabRemoteDisplay = new QVBoxLayout(m_pTabRemoteDisplay);1425 pLayoutTabRemoteDisplay->setObjectName(QStringLiteral("pLayoutTabRemoteDisplay"));1426 m_pContainerRemoteDisplay = new QWidget(m_pTabRemoteDisplay);1427 m_pContainerRemoteDisplay->setObjectName(QStringLiteral("m_pContainerRemoteDisplay"));1428 QGridLayout *pLayoutContainerRemoteDisplay = new QGridLayout(m_pContainerRemoteDisplay);1429 pLayoutContainerRemoteDisplay->setObjectName(QStringLiteral("pLayoutContainerRemoteDisplay"));1430 pLayoutContainerRemoteDisplay->setContentsMargins(0, 0, 0, 0);1431 m_pCheckboxRemoteDisplay = new QCheckBox(m_pContainerRemoteDisplay);1432 m_pCheckboxRemoteDisplay->setObjectName(QStringLiteral("m_pCheckboxRemoteDisplay"));1433 m_pCheckboxRemoteDisplay->setChecked(false);1434 pLayoutContainerRemoteDisplay->addWidget(m_pCheckboxRemoteDisplay, 0, 0, 1, 2);1435 1436 QSpacerItem *pSpacerContainerRemoteDisplay = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum);1437 pLayoutContainerRemoteDisplay->addItem(pSpacerContainerRemoteDisplay, 1, 0, 1, 1);1438 1439 m_pContainerRemoteDisplayOptions = new QWidget(m_pContainerRemoteDisplay);1440 m_pContainerRemoteDisplayOptions->setObjectName(QStringLiteral("m_pContainerRemoteDisplayOptions"));1441 QGridLayout *pLayoutContainerRemoteDisplayServer = new QGridLayout(m_pContainerRemoteDisplayOptions);1442 pLayoutContainerRemoteDisplayServer->setObjectName(QStringLiteral("pLayoutContainerRemoteDisplayServer"));1443 pLayoutContainerRemoteDisplayServer->setContentsMargins(0, 0, 0, 0);1444 m_pLabelRemoteDisplayPort = new QLabel(m_pContainerRemoteDisplayOptions);1445 m_pLabelRemoteDisplayPort->setObjectName(QStringLiteral("m_pLabelRemoteDisplayPort"));1446 m_pLabelRemoteDisplayPort->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1447 pLayoutContainerRemoteDisplayServer->addWidget(m_pLabelRemoteDisplayPort, 0, 0, 1, 1);1448 1449 m_pEditorRemoteDisplayPort = new QLineEdit(m_pContainerRemoteDisplayOptions);1450 m_pEditorRemoteDisplayPort->setObjectName(QStringLiteral("m_pEditorRemoteDisplayPort"));1451 pLayoutContainerRemoteDisplayServer->addWidget(m_pEditorRemoteDisplayPort, 0, 1, 1, 1);1452 1453 m_pLabelRemoteDisplayAuthMethod = new QLabel(m_pContainerRemoteDisplayOptions);1454 m_pLabelRemoteDisplayAuthMethod->setObjectName(QStringLiteral("m_pLabelRemoteDisplayAuthMethod"));1455 m_pLabelRemoteDisplayAuthMethod->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1456 pLayoutContainerRemoteDisplayServer->addWidget(m_pLabelRemoteDisplayAuthMethod, 1, 0, 1, 1);1457 1458 m_pComboRemoteDisplayAuthMethod = new QComboBox(m_pContainerRemoteDisplayOptions);1459 m_pComboRemoteDisplayAuthMethod->setObjectName(QStringLiteral("m_pComboRemoteDisplayAuthMethod"));1460 pLayoutContainerRemoteDisplayServer->addWidget(m_pComboRemoteDisplayAuthMethod, 1, 1, 1, 1);1461 1462 m_pLabelRemoteDisplayTimeout = new QLabel(m_pContainerRemoteDisplayOptions);1463 m_pLabelRemoteDisplayTimeout->setObjectName(QStringLiteral("m_pLabelRemoteDisplayTimeout"));1464 m_pLabelRemoteDisplayTimeout->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1465 pLayoutContainerRemoteDisplayServer->addWidget(m_pLabelRemoteDisplayTimeout, 2, 0, 1, 1);1466 1467 m_pEditorRemoteDisplayTimeout = new QLineEdit(m_pContainerRemoteDisplayOptions);1468 m_pEditorRemoteDisplayTimeout->setObjectName(QStringLiteral("m_pEditorRemoteDisplayTimeout"));1469 pLayoutContainerRemoteDisplayServer->addWidget(m_pEditorRemoteDisplayTimeout, 2, 1, 1, 1);1470 1471 m_pLabelRemoteDisplayOptions = new QLabel(m_pContainerRemoteDisplayOptions);1472 m_pLabelRemoteDisplayOptions->setObjectName(QStringLiteral("m_pLabelRemoteDisplayOptions"));1473 m_pLabelRemoteDisplayOptions->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1474 pLayoutContainerRemoteDisplayServer->addWidget(m_pLabelRemoteDisplayOptions, 3, 0, 1, 1);1475 1476 m_pCheckboxMultipleConn = new QCheckBox(m_pContainerRemoteDisplayOptions);1477 m_pCheckboxMultipleConn->setObjectName(QStringLiteral("m_pCheckboxMultipleConn"));1478 sizePolicy.setHeightForWidth(m_pCheckboxMultipleConn->sizePolicy().hasHeightForWidth());1479 m_pCheckboxMultipleConn->setSizePolicy(sizePolicy);1480 1481 pLayoutContainerRemoteDisplayServer->addWidget(m_pCheckboxMultipleConn, 3, 1, 1, 1);1482 pLayoutContainerRemoteDisplay->addWidget(m_pContainerRemoteDisplayOptions, 1, 1, 1, 1);1483 pLayoutTabRemoteDisplay->addWidget(m_pContainerRemoteDisplay);1484 1485 QSpacerItem *pStretchRemoteDisplay = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);1486 pLayoutTabRemoteDisplay->addItem(pStretchRemoteDisplay);1487 1488 m_pTabWidget->addTab(m_pTabRemoteDisplay, QString());1489 m_pTabVideoCapture = new QWidget();1490 m_pTabVideoCapture->setObjectName(QStringLiteral("m_pTabVideoCapture"));1491 QVBoxLayout *pLayoutTabVideoCapture = new QVBoxLayout(m_pTabVideoCapture);1492 pLayoutTabVideoCapture->setObjectName(QStringLiteral("pLayoutTabVideoCapture"));1493 m_pContainerVideoCapture = new QWidget(m_pTabVideoCapture);1494 m_pContainerVideoCapture->setObjectName(QStringLiteral("m_pContainerVideoCapture"));1495 QGridLayout *pLayoutContainerVideoCapture = new QGridLayout(m_pContainerVideoCapture);1496 pLayoutContainerVideoCapture->setObjectName(QStringLiteral("pLayoutContainerVideoCapture"));1497 pLayoutContainerVideoCapture->setContentsMargins(0, 0, 0, 0);1498 m_pCheckboxVideoCapture = new QCheckBox(m_pContainerVideoCapture);1499 m_pCheckboxVideoCapture->setObjectName(QStringLiteral("m_pCheckboxVideoCapture"));1500 m_pCheckboxVideoCapture->setChecked(false);1501 pLayoutContainerVideoCapture->addWidget(m_pCheckboxVideoCapture, 0, 0, 1, 2);1502 1503 QSpacerItem *pLeftSpacer = new QSpacerItem(20, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1504 pLayoutContainerVideoCapture->addItem(pLeftSpacer, 1, 0, 1, 1);1505 1506 QWidget *pContainerVideoCaptureOptions = new QWidget(m_pContainerVideoCapture);1507 pContainerVideoCaptureOptions->setObjectName(QStringLiteral("pContainerVideoCaptureOptions"));1508 QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed);1509 sizePolicy1.setHorizontalStretch(1);1510 sizePolicy1.setVerticalStretch(0);1511 sizePolicy1.setHeightForWidth(pContainerVideoCaptureOptions->sizePolicy().hasHeightForWidth());1512 pContainerVideoCaptureOptions->setSizePolicy(sizePolicy1);1513 QGridLayout *pContainerLayoutVideoCapture = new QGridLayout(pContainerVideoCaptureOptions);1514 pContainerLayoutVideoCapture->setObjectName(QStringLiteral("pContainerLayoutVideoCapture"));1515 pContainerLayoutVideoCapture->setContentsMargins(0, 0, 0, 0);1516 m_pLabelCaptureMode = new QLabel(pContainerVideoCaptureOptions);1517 m_pLabelCaptureMode->setObjectName(QStringLiteral("m_pLabelCaptureMode"));1518 m_pLabelCaptureMode->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1519 pContainerLayoutVideoCapture->addWidget(m_pLabelCaptureMode, 0, 0, 1, 1);1520 1521 m_pComboBoxCaptureMode = new QComboBox(pContainerVideoCaptureOptions);1522 m_pComboBoxCaptureMode->setObjectName(QStringLiteral("m_pComboBoxCaptureMode"));1523 pContainerLayoutVideoCapture->addWidget(m_pComboBoxCaptureMode, 0, 1, 1, 3);1524 1525 m_pLabelVideoCapturePath = new QLabel(pContainerVideoCaptureOptions);1526 m_pLabelVideoCapturePath->setObjectName(QStringLiteral("m_pLabelVideoCapturePath"));1527 m_pLabelVideoCapturePath->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1528 pContainerLayoutVideoCapture->addWidget(m_pLabelVideoCapturePath, 1, 0, 1, 1);1529 1530 m_pEditorVideoCapturePath = new UIFilePathSelector(pContainerVideoCaptureOptions);1531 m_pEditorVideoCapturePath->setObjectName(QStringLiteral("m_pEditorVideoCapturePath"));1532 pContainerLayoutVideoCapture->addWidget(m_pEditorVideoCapturePath, 1, 1, 1, 3);1533 1534 m_pLabelVideoCaptureSize = new QLabel(pContainerVideoCaptureOptions);1535 m_pLabelVideoCaptureSize->setObjectName(QStringLiteral("m_pLabelVideoCaptureSize"));1536 m_pLabelVideoCaptureSize->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1537 pContainerLayoutVideoCapture->addWidget(m_pLabelVideoCaptureSize, 2, 0, 1, 1);1538 1539 m_pComboVideoCaptureSize = new QComboBox(pContainerVideoCaptureOptions);1540 m_pComboVideoCaptureSize->setObjectName(QStringLiteral("m_pComboVideoCaptureSize"));1541 QSizePolicy sizePolicy2(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);1542 sizePolicy2.setHorizontalStretch(1);1543 sizePolicy2.setVerticalStretch(0);1544 sizePolicy2.setHeightForWidth(m_pComboVideoCaptureSize->sizePolicy().hasHeightForWidth());1545 m_pComboVideoCaptureSize->setSizePolicy(sizePolicy2);1546 pContainerLayoutVideoCapture->addWidget(m_pComboVideoCaptureSize, 2, 1, 1, 1);1547 1548 m_pEditorVideoCaptureWidth = new QSpinBox(pContainerVideoCaptureOptions);1549 m_pEditorVideoCaptureWidth->setObjectName(QStringLiteral("m_pEditorVideoCaptureWidth"));1550 pContainerLayoutVideoCapture->addWidget(m_pEditorVideoCaptureWidth, 2, 2, 1, 1);1551 1552 m_pEditorVideoCaptureHeight = new QSpinBox(pContainerVideoCaptureOptions);1553 m_pEditorVideoCaptureHeight->setObjectName(QStringLiteral("m_pEditorVideoCaptureHeight"));1554 pContainerLayoutVideoCapture->addWidget(m_pEditorVideoCaptureHeight, 2, 3, 1, 1);1555 1556 m_pLabelVideoCaptureFrameRate = new QLabel(pContainerVideoCaptureOptions);1557 m_pLabelVideoCaptureFrameRate->setObjectName(QStringLiteral("m_pLabelVideoCaptureFrameRate"));1558 m_pLabelVideoCaptureFrameRate->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1559 pContainerLayoutVideoCapture->addWidget(m_pLabelVideoCaptureFrameRate, 3, 0, 1, 1);1560 1561 m_pContainerSliderVideoCaptureFrameRate = new QWidget(pContainerVideoCaptureOptions);1562 m_pContainerSliderVideoCaptureFrameRate->setObjectName(QStringLiteral("m_pContainerSliderVideoCaptureFrameRate"));1563 QGridLayout *pContainerLayoutSliderVideoCaptureFrameRate = new QGridLayout(m_pContainerSliderVideoCaptureFrameRate);1564 pContainerLayoutSliderVideoCaptureFrameRate->setSpacing(0);1565 pContainerLayoutSliderVideoCaptureFrameRate->setObjectName(QStringLiteral("pContainerLayoutSliderVideoCaptureFrameRate"));1566 pContainerLayoutSliderVideoCaptureFrameRate->setContentsMargins(0, 0, 0, 0);1567 m_pSliderVideoCaptureFrameRate = new QIAdvancedSlider(m_pContainerSliderVideoCaptureFrameRate);1568 m_pSliderVideoCaptureFrameRate->setObjectName(QStringLiteral("m_pSliderVideoCaptureFrameRate"));1569 m_pSliderVideoCaptureFrameRate->setOrientation(Qt::Horizontal);1570 pContainerLayoutSliderVideoCaptureFrameRate->addWidget(m_pSliderVideoCaptureFrameRate, 0, 0, 1, 3);1571 1572 m_pLabelVideoCaptureFrameRateMin = new QLabel(m_pContainerSliderVideoCaptureFrameRate);1573 m_pLabelVideoCaptureFrameRateMin->setObjectName(QStringLiteral("m_pLabelVideoCaptureFrameRateMin"));1574 pContainerLayoutSliderVideoCaptureFrameRate->addWidget(m_pLabelVideoCaptureFrameRateMin, 1, 0, 1, 1);1575 1576 QSpacerItem *pStretchVideoCaptureFrameRate = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1577 pContainerLayoutSliderVideoCaptureFrameRate->addItem(pStretchVideoCaptureFrameRate, 1, 1, 1, 1);1578 1579 m_pLabelVideoCaptureFrameRateMax = new QLabel(m_pContainerSliderVideoCaptureFrameRate);1580 m_pLabelVideoCaptureFrameRateMax->setObjectName(QStringLiteral("m_pLabelVideoCaptureFrameRateMax"));1581 pContainerLayoutSliderVideoCaptureFrameRate->addWidget(m_pLabelVideoCaptureFrameRateMax, 1, 2, 1, 1);1582 pContainerLayoutVideoCapture->addWidget(m_pContainerSliderVideoCaptureFrameRate, 3, 1, 2, 1);1583 1584 m_pEditorVideoCaptureFrameRate = new QSpinBox(pContainerVideoCaptureOptions);1585 m_pEditorVideoCaptureFrameRate->setObjectName(QStringLiteral("m_pEditorVideoCaptureFrameRate"));1586 pContainerLayoutVideoCapture->addWidget(m_pEditorVideoCaptureFrameRate, 3, 2, 1, 2);1587 1588 m_pLabelVideoCaptureRate = new QLabel(pContainerVideoCaptureOptions);1589 m_pLabelVideoCaptureRate->setObjectName(QStringLiteral("m_pLabelVideoCaptureRate"));1590 m_pLabelVideoCaptureRate->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1591 pContainerLayoutVideoCapture->addWidget(m_pLabelVideoCaptureRate, 5, 0, 1, 1);1592 1593 m_pContainerSliderVideoCaptureQuality = new QWidget(pContainerVideoCaptureOptions);1594 m_pContainerSliderVideoCaptureQuality->setObjectName(QStringLiteral("m_pContainerSliderVideoCaptureQuality"));1595 m_pContainerLayoutSliderVideoCaptureQuality = new QGridLayout(m_pContainerSliderVideoCaptureQuality);1596 m_pContainerLayoutSliderVideoCaptureQuality->setSpacing(0);1597 m_pContainerLayoutSliderVideoCaptureQuality->setObjectName(QStringLiteral("m_pContainerLayoutSliderVideoCaptureQuality"));1598 m_pContainerLayoutSliderVideoCaptureQuality->setContentsMargins(0, 0, 0, 0);1599 m_pSliderVideoCaptureQuality = new QIAdvancedSlider(m_pContainerSliderVideoCaptureQuality);1600 m_pSliderVideoCaptureQuality->setObjectName(QStringLiteral("m_pSliderVideoCaptureQuality"));1601 m_pSliderVideoCaptureQuality->setOrientation(Qt::Horizontal);1602 m_pContainerLayoutSliderVideoCaptureQuality->addWidget(m_pSliderVideoCaptureQuality, 0, 0, 1, 5);1603 1604 m_pLabelVideoCaptureQualityMin = new QLabel(m_pContainerSliderVideoCaptureQuality);1605 m_pLabelVideoCaptureQualityMin->setObjectName(QStringLiteral("m_pLabelVideoCaptureQualityMin"));1606 m_pContainerLayoutSliderVideoCaptureQuality->addWidget(m_pLabelVideoCaptureQualityMin, 1, 0, 1, 1);1607 1608 QSpacerItem *pStretchVideoCaptureQualityLeft = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1609 m_pContainerLayoutSliderVideoCaptureQuality->addItem(pStretchVideoCaptureQualityLeft, 1, 1, 1, 1);1610 1611 m_pLabelVideoCaptureQualityMed = new QLabel(m_pContainerSliderVideoCaptureQuality);1612 m_pLabelVideoCaptureQualityMed->setObjectName(QStringLiteral("m_pLabelVideoCaptureQualityMed"));1613 m_pContainerLayoutSliderVideoCaptureQuality->addWidget(m_pLabelVideoCaptureQualityMed, 1, 2, 1, 1);1614 1615 QSpacerItem *pStretchVideoCaptureQualityRight = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1616 m_pContainerLayoutSliderVideoCaptureQuality->addItem(pStretchVideoCaptureQualityRight, 1, 3, 1, 1);1617 1618 m_pLabelVideoCaptureQualityMax = new QLabel(m_pContainerSliderVideoCaptureQuality);1619 m_pLabelVideoCaptureQualityMax->setObjectName(QStringLiteral("m_pLabelVideoCaptureQualityMax"));1620 1621 m_pContainerLayoutSliderVideoCaptureQuality->addWidget(m_pLabelVideoCaptureQualityMax, 1, 4, 1, 1);1622 pContainerLayoutVideoCapture->addWidget(m_pContainerSliderVideoCaptureQuality, 5, 1, 2, 1);1623 1624 m_pEditorVideoCaptureBitRate = new QSpinBox(pContainerVideoCaptureOptions);1625 m_pEditorVideoCaptureBitRate->setObjectName(QStringLiteral("m_pEditorVideoCaptureBitRate"));1626 pContainerLayoutVideoCapture->addWidget(m_pEditorVideoCaptureBitRate, 5, 2, 1, 2);1627 1628 m_pAudioCaptureQualityLabel = new QLabel(pContainerVideoCaptureOptions);1629 m_pAudioCaptureQualityLabel->setObjectName(QStringLiteral("m_pAudioCaptureQualityLabel"));1630 m_pAudioCaptureQualityLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);1631 pContainerLayoutVideoCapture->addWidget(m_pAudioCaptureQualityLabel, 7, 0, 1, 1);1632 1633 m_pContainerSliderAudioCaptureQuality = new QWidget(pContainerVideoCaptureOptions);1634 m_pContainerSliderAudioCaptureQuality->setObjectName(QStringLiteral("m_pContainerSliderAudioCaptureQuality"));1635 QGridLayout *pContainerLayoutSliderAudioCaptureQuality = new QGridLayout(m_pContainerSliderAudioCaptureQuality);1636 pContainerLayoutSliderAudioCaptureQuality->setSpacing(0);1637 pContainerLayoutSliderAudioCaptureQuality->setObjectName(QStringLiteral("pContainerLayoutSliderAudioCaptureQuality"));1638 pContainerLayoutSliderAudioCaptureQuality->setContentsMargins(0, 0, 0, 0);1639 m_pSliderAudioCaptureQuality = new QIAdvancedSlider(m_pContainerSliderAudioCaptureQuality);1640 m_pSliderAudioCaptureQuality->setObjectName(QStringLiteral("m_pSliderAudioCaptureQuality"));1641 m_pSliderAudioCaptureQuality->setOrientation(Qt::Horizontal);1642 pContainerLayoutSliderAudioCaptureQuality->addWidget(m_pSliderAudioCaptureQuality, 0, 0, 1, 5);1643 1644 m_pLabelAudioCaptureQualityMin = new QLabel(m_pContainerSliderAudioCaptureQuality);1645 m_pLabelAudioCaptureQualityMin->setObjectName(QStringLiteral("m_pLabelAudioCaptureQualityMin"));1646 1647 pContainerLayoutSliderAudioCaptureQuality->addWidget(m_pLabelAudioCaptureQualityMin, 1, 0, 1, 1);1648 1649 QSpacerItem *pStretchAudioCaptureQualityLeft = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1650 pContainerLayoutSliderAudioCaptureQuality->addItem(pStretchAudioCaptureQualityLeft, 1, 1, 1, 1);1651 1652 m_pLabelAudioCaptureQualityMed = new QLabel(m_pContainerSliderAudioCaptureQuality);1653 m_pLabelAudioCaptureQualityMed->setObjectName(QStringLiteral("m_pLabelAudioCaptureQualityMed"));1654 pContainerLayoutSliderAudioCaptureQuality->addWidget(m_pLabelAudioCaptureQualityMed, 1, 2, 1, 1);1655 1656 QSpacerItem *pStretchAudioCaptureQualityRight = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);1657 pContainerLayoutSliderAudioCaptureQuality->addItem(pStretchAudioCaptureQualityRight, 1, 3, 1, 1);1658 1659 m_pLabelAudioCaptureQualityMax = new QLabel(m_pContainerSliderAudioCaptureQuality);1660 m_pLabelAudioCaptureQualityMax->setObjectName(QStringLiteral("m_pLabelAudioCaptureQualityMax"));1661 1662 pContainerLayoutSliderAudioCaptureQuality->addWidget(m_pLabelAudioCaptureQualityMax, 1, 4, 1, 1);1663 pContainerLayoutVideoCapture->addWidget(m_pContainerSliderAudioCaptureQuality, 7, 1, 2, 1);1664 1665 m_pLabelVideoCaptureSizeHint = new QLabel(pContainerVideoCaptureOptions);1666 m_pLabelVideoCaptureSizeHint->setObjectName(QStringLiteral("m_pLabelVideoCaptureSizeHint"));1667 pContainerLayoutVideoCapture->addWidget(m_pLabelVideoCaptureSizeHint, 9, 1, 1, 1);1668 1669 m_pLabelVideoCaptureScreens = new QLabel(pContainerVideoCaptureOptions);1670 m_pLabelVideoCaptureScreens->setObjectName(QStringLiteral("m_pLabelVideoCaptureScreens"));1671 m_pLabelVideoCaptureScreens->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignTop);1672 pContainerLayoutVideoCapture->addWidget(m_pLabelVideoCaptureScreens, 10, 0, 1, 1);1673 1674 m_pScrollerVideoCaptureScreens = new UIFilmContainer(pContainerVideoCaptureOptions);1675 m_pScrollerVideoCaptureScreens->setObjectName(QStringLiteral("m_pScrollerVideoCaptureScreens"));1676 pContainerLayoutVideoCapture->addWidget(m_pScrollerVideoCaptureScreens, 10, 1, 1, 3);1677 1678 pLayoutContainerVideoCapture->addWidget(pContainerVideoCaptureOptions, 1, 1, 1, 1);1679 pLayoutTabVideoCapture->addWidget(m_pContainerVideoCapture);1680 1681 QSpacerItem *pStretchVideoCapture = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);1682 pLayoutTabVideoCapture->addItem(pStretchVideoCapture);1683 m_pTabWidget->addTab(m_pTabVideoCapture, QString());1684 pLayoutMain->addWidget(m_pTabWidget);1685 1686 m_pLabelVideoScreenCount->setBuddy(m_pEditorVideoScreenCount);1687 m_pLabelRemoteDisplayPort->setBuddy(m_pEditorRemoteDisplayPort);1688 m_pLabelRemoteDisplayAuthMethod->setBuddy(m_pComboRemoteDisplayAuthMethod);1689 m_pLabelRemoteDisplayTimeout->setBuddy(m_pEditorRemoteDisplayTimeout);1690 m_pLabelCaptureMode->setBuddy(m_pEditorVideoCapturePath);1691 m_pLabelVideoCapturePath->setBuddy(m_pEditorVideoCapturePath);1692 m_pLabelVideoCaptureSize->setBuddy(m_pComboVideoCaptureSize);1693 m_pLabelVideoCaptureFrameRate->setBuddy(m_pSliderVideoCaptureFrameRate);1694 m_pLabelVideoCaptureRate->setBuddy(m_pSliderVideoCaptureQuality);1695 m_pAudioCaptureQualityLabel->setBuddy(m_pSliderAudioCaptureQuality);1696 m_pLabelVideoCaptureScreens->setBuddy(m_pScrollerVideoCaptureScreens);1697 1698 QObject::connect(m_pCheckboxRemoteDisplay, &QCheckBox::toggled, m_pContainerRemoteDisplayOptions, &QWidget::setEnabled);1699 1723 } 1700 1724 … … 1704 1728 delete m_pCache; 1705 1729 m_pCache = 0; 1730 } 1731 1732 void UIMachineSettingsDisplay::repopulateComboAuthType() 1733 { 1734 AssertPtrReturnVoid(m_pComboRemoteDisplayAuthMethod); 1735 { 1736 /* Clear combo first of all: */ 1737 m_pComboRemoteDisplayAuthMethod->clear(); 1738 1739 /// @todo get supported auth types, not hardcoded! 1740 QVector<KAuthType> authTypes = QVector<KAuthType>() << KAuthType_Null 1741 << KAuthType_External 1742 << KAuthType_Guest; 1743 1744 /* Take into account currently cached value: */ 1745 const KAuthType enmCachedValue = m_pCache->base().m_remoteDisplayAuthType; 1746 if (!authTypes.contains(enmCachedValue)) 1747 authTypes.prepend(enmCachedValue); 1748 1749 /* Populate combo finally: */ 1750 foreach (const KAuthType &enmType, authTypes) 1751 m_pComboRemoteDisplayAuthMethod->addItem(gpConverter->toString(enmType), QVariant::fromValue(enmType)); 1752 } 1706 1753 } 1707 1754 … … 1721 1768 { 1722 1769 /* Look for video-capture size preset: */ 1723 lookForCorrespondingPreset(m_pCombo VideoCaptureSize,1724 QSize(m_p EditorVideoCaptureWidth->value(),1725 m_p EditorVideoCaptureHeight->value()));1770 lookForCorrespondingPreset(m_pComboRecordingFrameSize, 1771 QSize(m_pSpinboxRecordingFrameWidth->value(), 1772 m_pSpinboxRecordingFrameHeight->value())); 1726 1773 } 1727 1774 … … 1730 1777 /* Update copy of the cached item to get the desired result: */ 1731 1778 QVector<BOOL> screens = m_pCache->base().m_vecRecordingScreens; 1732 screens.resize(m_p EditorVideoScreenCount->value());1733 m_pScroller VideoCaptureScreens->setValue(screens);1734 m_p ScaleFactorEditor->setMonitorCount(m_pEditorVideoScreenCount->value());1779 screens.resize(m_pSpinboxMonitorCount->value()); 1780 m_pScrollerRecordingScreens->setValue(screens); 1781 m_pEditorScaleFactor->setMonitorCount(m_pSpinboxMonitorCount->value()); 1735 1782 } 1736 1783 1737 1784 void UIMachineSettingsDisplay::updateRecordingFileSizeHint() 1738 1785 { 1739 m_pLabel VideoCaptureSizeHint->setText(tr("<i>About %1MB per 5 minute video</i>").arg(m_pEditorVideoCaptureBitRate->value() * 300 / 8 / 1024));1786 m_pLabelRecordingSizeHint->setText(tr("<i>About %1MB per 5 minute video</i>").arg(m_pSpinboxRecordingVideoQuality->value() * 300 / 8 / 1024)); 1740 1787 } 1741 1788 … … 2129 2176 * 1. Machine is in 'offline' or 'saved' state and check-box is checked, 2130 2177 * 2. Machine is in 'online' state, check-box is checked, and video recording is *disabled* currently. */ 2131 const bool fIsRecordingOptionsEnabled = ((isMachineOffline() || isMachineSaved()) && m_pCheckbox VideoCapture->isChecked()) ||2132 (isMachineOnline() && !m_pCache->base().m_fRecordingEnabled && m_pCheckbox VideoCapture->isChecked());2178 const bool fIsRecordingOptionsEnabled = ((isMachineOffline() || isMachineSaved()) && m_pCheckboxRecording->isChecked()) || 2179 (isMachineOnline() && !m_pCache->base().m_fRecordingEnabled && m_pCheckboxRecording->isChecked()); 2133 2180 2134 2181 /* Video Capture Screens option should be enabled only if: 2135 2182 * Machine is in *any* valid state and check-box is checked. */ 2136 const bool fIsVideoCaptureScreenOptionEnabled = isMachineInValidMode() && m_pCheckbox VideoCapture->isChecked();2183 const bool fIsVideoCaptureScreenOptionEnabled = isMachineInValidMode() && m_pCheckboxRecording->isChecked(); 2137 2184 const UISettingsDefs::RecordingMode enmRecordingMode = 2138 gpConverter->fromString<UISettingsDefs::RecordingMode>(m_pCombo BoxCaptureMode->currentText());2185 gpConverter->fromString<UISettingsDefs::RecordingMode>(m_pComboRecordingMode->currentText()); 2139 2186 const bool fRecordVideo = enmRecordingMode == UISettingsDefs::RecordingMode_VideoOnly 2140 2187 || enmRecordingMode == UISettingsDefs::RecordingMode_VideoAudio; … … 2142 2189 || enmRecordingMode == UISettingsDefs::RecordingMode_VideoAudio; 2143 2190 2144 m_pLabel VideoCaptureSize->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2145 m_pCombo VideoCaptureSize->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2146 m_p EditorVideoCaptureWidth->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2147 m_p EditorVideoCaptureHeight->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2148 2149 m_pLabel VideoCaptureFrameRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2150 m_p ContainerSliderVideoCaptureFrameRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2151 m_p EditorVideoCaptureFrameRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2152 2153 m_pLabel VideoCaptureRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2154 m_p ContainerSliderVideoCaptureQuality->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2155 m_p EditorVideoCaptureBitRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo);2156 m_pScroller VideoCaptureScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fRecordVideo);2157 2158 m_p AudioCaptureQualityLabel->setEnabled(fIsRecordingOptionsEnabled && fRecordAudio);2159 m_p ContainerSliderAudioCaptureQuality->setEnabled(fIsRecordingOptionsEnabled && fRecordAudio);2160 2161 m_pLabel VideoCaptureScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fRecordVideo);2162 m_pLabel VideoCaptureSizeHint->setEnabled(fIsVideoCaptureScreenOptionEnabled && fRecordVideo);2163 } 2191 m_pLabelRecordingFrameSize->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2192 m_pComboRecordingFrameSize->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2193 m_pSpinboxRecordingFrameWidth->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2194 m_pSpinboxRecordingFrameHeight->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2195 2196 m_pLabelRecordingFrameRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2197 m_pWidgetRecordingFrameRateSettings->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2198 m_pSpinboxRecordingFrameRate->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2199 2200 m_pLabelRecordingVideoQuality->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2201 m_pWidgetRecordingVideoQualitySettings->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2202 m_pSpinboxRecordingVideoQuality->setEnabled(fIsRecordingOptionsEnabled && fRecordVideo); 2203 m_pScrollerRecordingScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fRecordVideo); 2204 2205 m_pLabelRecordingAudioQuality->setEnabled(fIsRecordingOptionsEnabled && fRecordAudio); 2206 m_pWidgetRecordingAudioQualitySettings->setEnabled(fIsRecordingOptionsEnabled && fRecordAudio); 2207 2208 m_pLabelRecordingScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fRecordVideo); 2209 m_pLabelRecordingSizeHint->setEnabled(fIsVideoCaptureScreenOptionEnabled && fRecordVideo); 2210 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.h
r85710 r85851 138 138 /** Prepares all. */ 139 139 void prepare(); 140 /** Prepares widgets. */ 141 void prepareWidgets(); 140 142 /** Prepares 'Screen' tab. */ 141 143 void prepareTabScreen(); … … 146 148 /** Prepares connections. */ 147 149 void prepareConnections(); 148 /** Prepares widgets. */149 void prepareWidgets();150 150 /** Cleanups all. */ 151 151 void cleanup(); 152 153 /** Repopulates auth type combo-box. */ 154 void repopulateComboAuthType(); 152 155 153 156 /** Returns whether the VRAM requirements are important. */ … … 191 194 /** @name Widgets 192 195 * @{ */ 193 QCheckBox *m_pCheckbox3D; 194 QCheckBox *m_pCheckboxRemoteDisplay; 195 QCheckBox *m_pCheckboxMultipleConn; 196 QCheckBox *m_pCheckboxVideoCapture; 197 QComboBox *m_pComboRemoteDisplayAuthMethod; 198 QComboBox *m_pComboBoxCaptureMode; 199 QComboBox *m_pComboVideoCaptureSize; 200 QLabel *m_pLabelVideoScreenCountMin; 201 QLabel *m_pLabelVideoScreenCountMax; 202 QLabel *m_pLabelVideoCaptureFrameRateMin; 203 QLabel *m_pLabelVideoCaptureFrameRateMax; 204 QLabel *m_pLabelVideoCaptureQualityMin; 205 QLabel *m_pLabelVideoCaptureQualityMed; 206 QLabel *m_pLabelVideoCaptureQualityMax; 207 QLabel *m_pLabelAudioCaptureQualityMin; 208 QLabel *m_pLabelAudioCaptureQualityMed; 209 QLabel *m_pLabelAudioCaptureQualityMax; 210 QLabel *m_pVideoMemoryLabel; 211 QLabel *m_pLabelVideoScreenCount; 212 QLabel *m_pGraphicsControllerLabel; 213 QLabel *m_pLabelVideoOptions; 214 QLabel *m_pLabelRemoteDisplayOptions; 215 QLabel *m_pLabelCaptureMode; 216 QLabel *m_pLabelVideoCapturePath; 217 QLabel *m_pLabelVideoCaptureSizeHint; 218 QLabel *m_pLabelVideoCaptureSize; 219 QLabel *m_pLabelVideoCaptureFrameRate; 220 QLabel *m_pLabelVideoCaptureRate; 221 QLabel *m_pAudioCaptureQualityLabel; 222 QLabel *m_pLabelVideoCaptureScreens; 223 QLabel *m_pLabelGuestScreenScaleFactorEditor; 224 QLabel *m_pLabelRemoteDisplayPort; 225 QLabel *m_pLabelRemoteDisplayAuthMethod; 226 QLabel *m_pLabelRemoteDisplayTimeout; 227 QLineEdit *m_pEditorRemoteDisplayPort; 228 QLineEdit *m_pEditorRemoteDisplayTimeout; 229 QSpinBox *m_pEditorVideoScreenCount; 230 QSpinBox *m_pEditorVideoCaptureWidth; 231 QSpinBox *m_pEditorVideoCaptureFrameRate; 232 QSpinBox *m_pEditorVideoCaptureHeight; 233 QSpinBox *m_pEditorVideoCaptureBitRate; 234 UIGraphicsControllerEditor *m_pGraphicsControllerEditor; 235 UIScaleFactorEditor *m_pScaleFactorEditor; 236 UIVideoMemoryEditor *m_pVideoMemoryEditor; 237 UIFilePathSelector *m_pEditorVideoCapturePath; 238 UIFilmContainer *m_pScrollerVideoCaptureScreens; 239 QIAdvancedSlider *m_pSliderAudioCaptureQuality; 240 QIAdvancedSlider *m_pSliderVideoScreenCount; 241 QIAdvancedSlider *m_pSliderVideoCaptureFrameRate; 242 QIAdvancedSlider *m_pSliderVideoCaptureQuality; 243 QITabWidget *m_pTabWidget; 244 QWidget *m_pContainerRemoteDisplay; 245 QWidget *m_pContainerRemoteDisplayOptions; 246 QWidget *m_pContainerVideoCapture; 247 QWidget *m_pContainerSliderVideoCaptureFrameRate; 248 QWidget *m_pContainerSliderVideoCaptureQuality; 249 QWidget *m_pContainerSliderAudioCaptureQuality; 250 QWidget *m_pTabVideo; 251 QWidget *m_pTabRemoteDisplay; 252 QWidget *m_pTabVideoCapture; 253 QGridLayout *m_pContainerLayoutSliderVideoCaptureQuality; 254 QStackedLayout *m_pLayout3D; 196 /** Holds the tab-widget instance. */ 197 QITabWidget *m_pTabWidget; 198 199 /** Holds the 'Screen' tab instance. */ 200 QWidget *m_pTabScreen; 201 /** Holds the video memory size label instance. */ 202 QLabel *m_pLabelVideoMemorySize; 203 /** Holds the video memory size editor instance. */ 204 UIVideoMemoryEditor *m_pEditorVideoMemorySize; 205 /** Holds the monitor count label instance. */ 206 QLabel *m_pLabelMonitorCount; 207 /** Holds the monitor count slider instance. */ 208 QIAdvancedSlider *m_pSliderMonitorCount; 209 /** Holds the monitor count spinbox instance. */ 210 QSpinBox *m_pSpinboxMonitorCount; 211 /** Holds the monitor count min label instance. */ 212 QLabel *m_pLabelMonitorCountMin; 213 /** Holds the monitor count max label instance. */ 214 QLabel *m_pLabelMonitorCountMax; 215 /** Holds the scale factor label instance. */ 216 QLabel *m_pLabelScaleFactor; 217 /** Holds the scale factor editor instance. */ 218 UIScaleFactorEditor *m_pEditorScaleFactor; 219 /** Holds the graphics controller label instance. */ 220 QLabel *m_pLabelGraphicsController; 221 /** Holds the graphics controller editor instance. */ 222 UIGraphicsControllerEditor *m_pEditorGraphicsController; 223 /** Holds the acceleration label instance. */ 224 QLabel *m_pLabelAcceleration; 225 /** Holds the 3D check-box instance. */ 226 QCheckBox *m_pCheckbox3D; 227 228 /** Holds the 'Remote Display' tab instance. */ 229 QWidget *m_pTabRemoteDisplay; 230 /** Holds the remote display check-box instance. */ 231 QCheckBox *m_pCheckboxRemoteDisplay; 232 /** Holds the remote display settings widget instance. */ 233 QWidget *m_pWidgetRemoteDisplaySettings; 234 /** Holds the remote display port label instance. */ 235 QLabel *m_pLabelRemoteDisplayPort; 236 /** Holds the remote display port editor instance. */ 237 QLineEdit *m_pEditorRemoteDisplayPort; 238 /** Holds the remote display port auth method label instance. */ 239 QLabel *m_pLabelRemoteDisplayAuthMethod; 240 /** Holds the remote display port auth method combo instance. */ 241 QComboBox *m_pComboRemoteDisplayAuthMethod; 242 /** Holds the remote display timeout label instance. */ 243 QLabel *m_pLabelRemoteDisplayTimeout; 244 /** Holds the remote display timeout editor instance. */ 245 QLineEdit *m_pEditorRemoteDisplayTimeout; 246 /** Holds the remote display options label instance. */ 247 QLabel *m_pLabelRemoteDisplayOptions; 248 /** Holds the remote display multiple connection check-box instance. */ 249 QCheckBox *m_pCheckboxMultipleConn; 250 251 /** Holds the 'Recording' tab instance. */ 252 QWidget *m_pTabRecording; 253 /** Holds the recording check-box instance. */ 254 QCheckBox *m_pCheckboxRecording; 255 /** Holds the recording settings widget instance. */ 256 QWidget *m_pWidgetRecordingSettings; 257 /** Holds the recording mode label instance. */ 258 QLabel *m_pLabelRecordingMode; 259 /** Holds the recording mode combo instance. */ 260 QComboBox *m_pComboRecordingMode; 261 /** Holds the recording file path label instance. */ 262 QLabel *m_pLabelRecordingFilePath; 263 /** Holds the recording file path editor instance. */ 264 UIFilePathSelector *m_pEditorRecordingFilePath; 265 /** Holds the recording frame size label instance. */ 266 QLabel *m_pLabelRecordingFrameSize; 267 /** Holds the recording frame size combo instance. */ 268 QComboBox *m_pComboRecordingFrameSize; 269 /** Holds the recording frame width spinbox instance. */ 270 QSpinBox *m_pSpinboxRecordingFrameWidth; 271 /** Holds the recording frame height spinbox instance. */ 272 QSpinBox *m_pSpinboxRecordingFrameHeight; 273 /** Holds the recording frame rate label instance. */ 274 QLabel *m_pLabelRecordingFrameRate; 275 /** Holds the recording frame rate settings widget instance. */ 276 QWidget *m_pWidgetRecordingFrameRateSettings; 277 /** Holds the recording frame rate slider instance. */ 278 QIAdvancedSlider *m_pSliderRecordingFrameRate; 279 /** Holds the recording frame rate spinbox instance. */ 280 QSpinBox *m_pSpinboxRecordingFrameRate; 281 /** Holds the recording frame rate min label instance. */ 282 QLabel *m_pLabelRecordingFrameRateMin; 283 /** Holds the recording frame rate max label instance. */ 284 QLabel *m_pLabelRecordingFrameRateMax; 285 /** Holds the recording video quality label instance. */ 286 QLabel *m_pLabelRecordingVideoQuality; 287 /** Holds the recording video quality settings widget instance. */ 288 QWidget *m_pWidgetRecordingVideoQualitySettings; 289 /** Holds the recording video quality slider instance. */ 290 QIAdvancedSlider *m_pSliderRecordingVideoQuality; 291 /** Holds the recording video quality spinbox instance. */ 292 QSpinBox *m_pSpinboxRecordingVideoQuality; 293 /** Holds the recording video quality min label instance. */ 294 QLabel *m_pLabelRecordingVideoQualityMin; 295 /** Holds the recording video quality med label instance. */ 296 QLabel *m_pLabelRecordingVideoQualityMed; 297 /** Holds the recording video quality max label instance. */ 298 QLabel *m_pLabelRecordingVideoQualityMax; 299 /** Holds the recording audio quality label instance. */ 300 QLabel *m_pLabelRecordingAudioQuality; 301 /** Holds the recording audio quality settings widget instance. */ 302 QWidget *m_pWidgetRecordingAudioQualitySettings; 303 /** Holds the recording audio quality slider instance. */ 304 QIAdvancedSlider *m_pSliderRecordingAudioQuality; 305 /** Holds the recording audio quality min label instance. */ 306 QLabel *m_pLabelRecordingAudioQualityMin; 307 /** Holds the recording audio quality med label instance. */ 308 QLabel *m_pLabelRecordingAudioQualityMed; 309 /** Holds the recording audio quality max label instance. */ 310 QLabel *m_pLabelRecordingAudioQualityMax; 311 /** Holds the recording size hint label instance. */ 312 QLabel *m_pLabelRecordingSizeHint; 313 /** Holds the recording screens label instance. */ 314 QLabel *m_pLabelRecordingScreens; 315 /** Holds the recording screens scroller instance. */ 316 UIFilmContainer *m_pScrollerRecordingScreens; 255 317 /** @} */ 256 318 };
Note:
See TracChangeset
for help on using the changeset viewer.