diff --git a/src/controllers/dlgprefcontrollersdlg.ui b/src/controllers/dlgprefcontrollersdlg.ui index 2db1011130e..17657bd8539 100644 --- a/src/controllers/dlgprefcontrollersdlg.ui +++ b/src/controllers/dlgprefcontrollersdlg.ui @@ -6,8 +6,6 @@ 0 0 - 548 - 524 @@ -23,7 +21,7 @@ - + 0 0 @@ -36,13 +34,14 @@ + true - + 0 0 @@ -111,7 +110,7 @@ - + 0 0 diff --git a/src/preferences/dialog/dlgprefbroadcast.cpp b/src/preferences/dialog/dlgprefbroadcast.cpp index 61ad09eabb3..198d541e57e 100644 --- a/src/preferences/dialog/dlgprefbroadcast.cpp +++ b/src/preferences/dialog/dlgprefbroadcast.cpp @@ -128,6 +128,13 @@ DlgPrefBroadcast::DlgPrefBroadcast(QWidget *parent, } // Encoding format combobox + connect(comboBoxEncodingFormat, + QOverload::of(&QComboBox::currentIndexChanged), + this, + [this]() { + ogg_dynamicupdate->setEnabled( + comboBoxEncodingFormat->currentData() == ENCODING_OGG); + }); comboBoxEncodingFormat->addItem(tr("MP3"), ENCODING_MP3); comboBoxEncodingFormat->addItem(tr("Ogg Vorbis"), ENCODING_OGG); #ifdef __OPUS__ @@ -508,6 +515,7 @@ void DlgPrefBroadcast::getValuesFromProfile(BroadcastProfilePtr profile) { enableUtf8Metadata->setChecked(charset == "UTF-8"); // OGG "dynamicupdate" checkbox + ogg_dynamicupdate->setEnabled(profile->getFormat() == ENCODING_OGG); ogg_dynamicupdate->setChecked(profile->getOggDynamicUpdate()); } diff --git a/src/preferences/dialog/dlgprefbroadcastdlg.ui b/src/preferences/dialog/dlgprefbroadcastdlg.ui index 26ed49194dc..077e4725830 100644 --- a/src/preferences/dialog/dlgprefbroadcastdlg.ui +++ b/src/preferences/dialog/dlgprefbroadcastdlg.ui @@ -356,7 +356,7 @@ - + Metadata @@ -466,7 +466,7 @@ - + diff --git a/src/preferences/dialog/dlgprefdeck.cpp b/src/preferences/dialog/dlgprefdeck.cpp index e7a58de4710..5c6f27238d9 100644 --- a/src/preferences/dialog/dlgprefdeck.cpp +++ b/src/preferences/dialog/dlgprefdeck.cpp @@ -324,16 +324,7 @@ DlgPrefDeck::DlgPrefDeck(QWidget* parent, UserSettingsPointer pConfig) // Ramping Temporary Rate Change configuration // - // Rate Ramp Sensitivity slider & spinbox - connect(SliderRateRampSensitivity, - QOverload::of(&QAbstractSlider::valueChanged), - SpinBoxRateRampSensitivity, - QOverload::of(&QSpinBox::setValue)); - connect(SpinBoxRateRampSensitivity, - QOverload::of(&QSpinBox::valueChanged), - SliderRateRampSensitivity, - QOverload::of(&QAbstractSlider::setValue)); - + // Rate Ramp Sensitivity slider m_iRateRampSensitivity = m_pConfig->getValue(ConfigKey("[Controls]", "RateRampSensitivity"), kDefaultRateRampSensitivity); @@ -352,10 +343,6 @@ DlgPrefDeck::DlgPrefDeck(QWidget* parent, UserSettingsPointer pConfig) &QRadioButton::toggled, SliderRateRampSensitivity, &QWidget::setEnabled); - connect(radioButtonRateRampModeLinear, - &QRadioButton::toggled, - SpinBoxRateRampSensitivity, - &QWidget::setEnabled); // Enable/disable temporary rate spinboxes when abrupt ramping is selected connect(radioButtonRateRampModeStepping, &QRadioButton::toggled, diff --git a/src/preferences/dialog/dlgprefdeckdlg.ui b/src/preferences/dialog/dlgprefdeckdlg.ui index 7e884e4b982..deca6e4b5b1 100644 --- a/src/preferences/dialog/dlgprefdeckdlg.ui +++ b/src/preferences/dialog/dlgprefdeckdlg.ui @@ -321,52 +321,26 @@ You can always drag-and-drop tracks on screen to clone a deck. - - - - - false - - - 100 - - - 2500 - - - 50 - - - 250 - - - Qt::Horizontal - - - - - - - false - - - Value in milliseconds - - - 100 - - - 2500 - - - 1 - - - 250 - - - - + + + false + + + 100 + + + 2500 + + + 50 + + + 250 + + + Qt::Horizontal + + @@ -707,7 +681,6 @@ You can always drag-and-drop tracks on screen to clone a deck. radioButtonRateRampModeLinear radioButtonRateRampModeStepping SliderRateRampSensitivity - SpinBoxRateRampSensitivity spinBoxTemporaryRateFine spinBoxTemporaryRateCoarse spinBoxPermanentRateFine diff --git a/src/preferences/dialog/dlgpreferencepage.h b/src/preferences/dialog/dlgpreferencepage.h index 2bb85d91ea0..f3479cba9ae 100644 --- a/src/preferences/dialog/dlgpreferencepage.h +++ b/src/preferences/dialog/dlgpreferencepage.h @@ -18,6 +18,16 @@ class DlgPreferencePage : public QWidget { /// overriding this. The default implementation returns an invalid QUrl. virtual QUrl helpUrl() const; + const QString kWarningIconPath = + QStringLiteral(":/images/preferences/ic_preferences_warning.svg"); + const QString kWarningIconHtmlString = QStringLiteral( + "" + "" + " ") + .arg(kWarningIconPath); + void setScrollSafeGuardForAllInputWidgets(QObject* obj); /// Avoid undesired value changes when scrolling a preferences page while /// the pointer is above an input widget (QSpinBox, QComboBox, QSlider): diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index c7c7ade152f..d31ca092efb 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -125,12 +125,7 @@ DlgPrefInterface::DlgPrefInterface( if (pSkinLoader) { // Skin configurations - QString sizeWarningString = - " " + - tr("The minimum size of the selected skin is bigger than your " - "screen resolution."); - warningLabel->setText(sizeWarningString); + warningLabel->setText(kWarningIconHtmlString); ComboBoxSkinconf->clear(); skinPreviewLabel->setText(""); diff --git a/src/preferences/dialog/dlgpreflibrary.cpp b/src/preferences/dialog/dlgpreflibrary.cpp index e7880323be6..b86c5643ebc 100644 --- a/src/preferences/dialog/dlgpreflibrary.cpp +++ b/src/preferences/dialog/dlgpreflibrary.cpp @@ -180,7 +180,13 @@ void DlgPrefLibrary::initializeDirList() { ->internalCollection() ->loadRootDirs(); for (const mixxx::FileInfo& rootDir : rootDirs) { - m_dirListModel.appendRow(new QStandardItem(rootDir.location())); + // mark missing/invalid dirs with a warning icon, add a tooltip + auto* pDirItem = new QStandardItem(rootDir.location()); + if (!rootDir.exists() || !rootDir.isDir()) { + pDirItem->setIcon(QIcon(kWarningIconPath)); + pDirItem->setToolTip(tr("Item is not a directory or directory is missing")); + } + m_dirListModel.appendRow(pDirItem); } dirList->setModel(&m_dirListModel); dirList->setCurrentIndex(m_dirListModel.index(0, 0)); diff --git a/src/preferences/dialog/dlgpreflibrarydlg.ui b/src/preferences/dialog/dlgpreflibrarydlg.ui index 78cb1b9a4cb..ec528bb00ae 100644 --- a/src/preferences/dialog/dlgpreflibrarydlg.ui +++ b/src/preferences/dialog/dlgpreflibrarydlg.ui @@ -469,6 +469,9 @@ 10 + + true + @@ -476,6 +479,9 @@ You will need to restart Mixxx for these settings to take effect. + + true + @@ -493,6 +499,9 @@ Fetch cover art from coverartarchive.com by using Import Metadata From Musicbrainz. + + true + @@ -500,6 +509,9 @@ Note: ">1200 px" can fetch up to very large cover arts. + + true + diff --git a/src/preferences/dialog/dlgprefrecord.cpp b/src/preferences/dialog/dlgprefrecord.cpp index 9bc4053d6dc..0443eba482e 100644 --- a/src/preferences/dialog/dlgprefrecord.cpp +++ b/src/preferences/dialog/dlgprefrecord.cpp @@ -240,30 +240,22 @@ void DlgPrefRecord::setupEncoderUI() { EncoderFactory::getFactory().getEncoderRecordingSettings( m_selFormat, m_pConfig); if (settings->usesQualitySlider()) { - LabelQuality->setVisible(true); - SliderQuality->setVisible(true); - TextQuality->setVisible(true); + qualityGroup->setVisible(true); SliderQuality->setMinimum(0); SliderQuality->setMaximum(settings->getQualityValues().size()-1); SliderQuality->setValue(settings->getQualityIndex()); updateTextQuality(); } else { - LabelQuality->setVisible(false); - SliderQuality->setVisible(false); - TextQuality->setVisible(false); + qualityGroup->setVisible(false); } if (settings->usesCompressionSlider()) { - LabelCompression->setVisible(true); - SliderCompression->setVisible(true); - TextCompression->setVisible(true); + compressionGroup->setVisible(true); SliderCompression->setMinimum(0); SliderCompression->setMaximum(settings->getCompressionValues().size()-1); SliderCompression->setValue(settings->getCompression()); updateTextCompression(); } else { - LabelCompression->setVisible(false); - SliderCompression->setVisible(false); - TextCompression->setVisible(false); + compressionGroup->setVisible(false); } for (QAbstractButton* widget : std::as_const(m_optionWidgets)) { diff --git a/src/preferences/dialog/dlgprefrecorddlg.ui b/src/preferences/dialog/dlgprefrecorddlg.ui index 4e1d455aefb..01a3808af0d 100644 --- a/src/preferences/dialog/dlgprefrecorddlg.ui +++ b/src/preferences/dialog/dlgprefrecorddlg.ui @@ -181,94 +181,107 @@ - - - - Quality - - - - - - - 1 - - - 11 - - - 1 - - - 1 - - - 9 - - - Qt::Horizontal - - - 5 - - - - - - - - 60 - 0 - - - - Quality - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - - SliderQuality - + + + + + + + Quality + + + + + + + 1 + + + 11 + + + 1 + + + 1 + + + 9 + + + Qt::Horizontal + + + 5 + + + + + + + + 60 + 0 + + + + Quality + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + SliderQuality + + + + - - - - Compression Level - - - - - - - Qt::Horizontal - - - - - - - - 60 - 0 - - - - Compression - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - SliderCompression - + + + + + + + Compression Level + + + + + + + Qt::Horizontal + + + + + + + + 60 + 0 + + + + Compression + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + SliderCompression + + + + + diff --git a/src/preferences/dialog/dlgprefsound.cpp b/src/preferences/dialog/dlgprefsound.cpp index d1dff97c098..e399a8e2b1d 100644 --- a/src/preferences/dialog/dlgprefsound.cpp +++ b/src/preferences/dialog/dlgprefsound.cpp @@ -857,27 +857,29 @@ void DlgPrefSound::checkLatencyCompensation() { micMonitorModeComboBox->setEnabled(true); if (configuredMicMonitorMode == EngineMixer::MicMonitorMode::DirectMonitor) { latencyCompensationSpinBox->setEnabled(true); - QString warningIcon( - "" - "" - " "); QString lineBreak("
"); // TODO(Be): Make the "User Manual" text link to the manual. if (m_pLatencyCompensation->get() == 0.0) { - latencyCompensationWarningLabel->setText( - warningIcon + - tr("Microphone inputs are out of time in the record & broadcast signal compared to what you hear.") + lineBreak + - tr("Measure round trip latency and enter it above for Microphone Latency Compensation to align microphone timing.") + lineBreak + - tr("Refer to the Mixxx User Manual for details.") + ""); + latencyCompensationWarningLabel->setText(kWarningIconHtmlString + + tr("Microphone inputs are out of time in the record & " + "broadcast signal compared to what you hear.") + + lineBreak + + tr("Measure round trip latency and enter it above for " + "Microphone Latency Compensation to align " + "microphone timing.") + + lineBreak + + tr("Refer to the Mixxx User Manual for details.") + + ""); latencyCompensationWarningLabel->show(); } else if (m_bLatencyChanged) { - latencyCompensationWarningLabel->setText( - warningIcon + - tr("Configured latency has changed.") + lineBreak + - tr("Remeasure round trip latency and enter it above for Microphone Latency Compensation to align microphone timing.") + lineBreak + - tr("Refer to the Mixxx User Manual for details.") + ""); + latencyCompensationWarningLabel->setText(kWarningIconHtmlString + + tr("Configured latency has changed.") + lineBreak + + tr("Remeasure round trip latency and enter it above " + "for Microphone Latency Compensation to align " + "microphone timing.") + + lineBreak + + tr("Refer to the Mixxx User Manual for details.") + + ""); latencyCompensationWarningLabel->show(); } else { latencyCompensationWarningLabel->hide(); diff --git a/src/preferences/dialog/dlgprefsounddlg.ui b/src/preferences/dialog/dlgprefsounddlg.ui index be55c792a0d..117d1339532 100644 --- a/src/preferences/dialog/dlgprefsounddlg.ui +++ b/src/preferences/dialog/dlgprefsounddlg.ui @@ -403,22 +403,6 @@
- - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 40 - - - - diff --git a/src/preferences/dialog/dlgprefwaveform.cpp b/src/preferences/dialog/dlgprefwaveform.cpp index 5e43e783d6a..0d82c0a592b 100644 --- a/src/preferences/dialog/dlgprefwaveform.cpp +++ b/src/preferences/dialog/dlgprefwaveform.cpp @@ -142,9 +142,9 @@ void DlgPrefWaveform::slotUpdate() { WaveformWidgetFactory* factory = WaveformWidgetFactory::instance(); if (factory->isOpenGlAvailable() || factory->isOpenGlesAvailable()) { - openGlStatusIcon->setText(factory->getOpenGLVersion()); + openGlStatusData->setText(factory->getOpenGLVersion()); } else { - openGlStatusIcon->setText(tr("OpenGL not available") + ": " + factory->getOpenGLVersion()); + openGlStatusData->setText(tr("OpenGL not available") + ": " + factory->getOpenGLVersion()); } // The combobox holds a list of [handle name, handle index] diff --git a/src/preferences/dialog/dlgprefwaveformdlg.ui b/src/preferences/dialog/dlgprefwaveformdlg.ui index 6bdc3c26520..4feeb704a90 100644 --- a/src/preferences/dialog/dlgprefwaveformdlg.ui +++ b/src/preferences/dialog/dlgprefwaveformdlg.ui @@ -14,23 +14,76 @@ Waveform Preferences
+ - - + + + + + + 0 + 0 + + + + + - Visual gain + Waveform type - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - allVisualGain + waveformTypeComboBox - - + + + + + + + + Waveform overview type + + + + + + + The waveform overview shows the waveform envelope of the entire track. +Select from different types of displays for the waveform overview, which differ primarily in the level of detail shown in the waveform. + + + + + + + + The waveform shows the waveform envelope of the track near the current playback position. +Select from different types of displays for the waveform, which differ primarily in the level of detail shown in the waveform. + + + + + + + + Frame rate + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + frameRateSlider + + + + + 0 @@ -44,7 +97,7 @@ - 0 + 10 60 @@ -57,23 +110,64 @@ - - + + + + + + + fps + + + 10 + + + 60 + + + 30 + + + + + + - Normalize waveform overview + End of track warning + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + endOfTrackWarningTimeSlider - - - - Displays which OpenGL version is supported by the current platform. + + + + + 0 + 0 + - - + + + 16777215 + 16777215 + + + + 0 + + + 60 + + + 30 - - Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + Qt::Horizontal @@ -96,75 +190,138 @@ - - + + + + + 6 + - Average frame rate + Beat grid opacity Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - Frame rate + + + + 100 - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + 90 - - frameRateSlider + + Qt::Horizontal - - + + + + Set amount of opacity on beat grid lines. + + + % + + + 100 + + + 90 + + - - + + + + Play marker position + + + + + + + Moves the play marker position on the waveforms to the left, right or center (default). + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + 0 + + + 100 + + + 50 + Qt::Horizontal - - - - - + + + - OpenGL status + Default zoom level Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + defaultZoomComboBox + - - - - - 0 - 0 - - + + + + + + - + Synchronize zoom level across all waveform displays. - Waveform type + Synchronize zoom level across all waveforms + + + + + + + + Normalize waveform overview + + + + + + + + Visual gain - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - waveformTypeComboBox + allVisualGain @@ -300,125 +457,7 @@ - - - - The waveform overview shows the waveform envelope of the entire track. -Select from different types of displays for the waveform overview, which differ primarily in the level of detail shown in the waveform. - - - - - - - The waveform shows the waveform envelope of the track near the current playback position. -Select from different types of displays for the waveform, which differ primarily in the level of detail shown in the waveform. - - - - - - - - - - Waveform overview type - - - - - - - Displays the actual frame rate. - - - - - - - - - - End of track warning - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - endOfTrackWarningTimeSlider - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - 10 - - - 60 - - - 30 - - - Qt::Horizontal - - - - - - - - - - fps - - - 10 - - - 60 - - - 30 - - - - - - - Default zoom level - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - defaultZoomComboBox - - - - - - - Synchronize zoom level across all waveform displays. - - - Synchronize zoom level across all waveforms - - - + @@ -452,10 +491,16 @@ Select from different types of displays for the waveform, which differ primarily PLACEHOLDER FOR DISK USAGE - + z true + + + 0 + 0 + + @@ -474,91 +519,67 @@ Select from different types of displays for the waveform, which differ primarily - - - - - - - 6 - - - Beat grid opacity - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - 100 - - - 90 - - - Qt::Horizontal - - - - - - - Set amount of opacity on beat grid lines. - - - % - - - 100 - - - 90 - - - - - - - Play marker position - - - - - - - Moves the play marker position on the waveforms to the left, right or center (default). - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - 0 - - - 100 - - - 50 - - - Qt::Horizontal + + + + + OpenGL status - - + + + + + + Displays which OpenGL version is supported by the current platform. + + + + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + true + + + + 0 + 0 + + + + + + + + + + + + Average frame rate + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Displays the actual frame rate. + + + + + + + + + + + @@ -572,6 +593,7 @@ Select from different types of displays for the waveform, which differ primarily +