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.") + "