summaryrefslogtreecommitdiffstats
path: root/src/preferences/dialog/dlgprefautodj.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/preferences/dialog/dlgprefautodj.cpp')
-rw-r--r--src/preferences/dialog/dlgprefautodj.cpp242
1 files changed, 242 insertions, 0 deletions
diff --git a/src/preferences/dialog/dlgprefautodj.cpp b/src/preferences/dialog/dlgprefautodj.cpp
new file mode 100644
index 0000000000..5d84ac1023
--- /dev/null
+++ b/src/preferences/dialog/dlgprefautodj.cpp
@@ -0,0 +1,242 @@
+#include "preferences/dialog/dlgprefautodj.h"
+
+DlgPrefAutoDJ::DlgPrefAutoDJ(QWidget* pParent,
+ ConfigObject<ConfigValue>* pConfig)
+ : DlgPreferencePage(pParent),
+ m_pConfig(pConfig) {
+ setupUi(this);
+
+ // Re-queue tracks in Auto DJ
+ ComboBoxAutoDjRequeue->addItem(tr("Off"));
+ ComboBoxAutoDjRequeue->addItem(tr("On"));
+ ComboBoxAutoDjRequeue->setCurrentIndex(m_pConfig->getValueString(ConfigKey("[Auto DJ]", "Requeue")).toInt());
+ connect(ComboBoxAutoDjRequeue, SIGNAL(activated(int)),
+ this, SLOT(slotSetAutoDjRequeue(int)));
+
+#ifdef __AUTODJCRATES__
+
+ // The minimum available for randomly-selected tracks
+ autoDjMinimumAvailableSpinBox->setValue(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "MinimumAvailable"), "20").toInt());
+ connect(autoDjMinimumAvailableSpinBox, SIGNAL(valueChanged(int)), this,
+ SLOT(slotSetAutoDjMinimumAvailable(int)));
+
+ // The auto-DJ replay-age for randomly-selected tracks
+ autoDjIgnoreTimeCheckBox->setChecked(
+ (bool) m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "UseIgnoreTime"), "0").toInt());
+ connect(autoDjIgnoreTimeCheckBox, SIGNAL(stateChanged(int)), this,
+ SLOT(slotSetAutoDjUseIgnoreTime(int)));
+ autoDjIgnoreTimeEdit->setTime(
+ QTime::fromString(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "IgnoreTime"), "23:59"),
+ autoDjIgnoreTimeEdit->displayFormat()));
+ autoDjIgnoreTimeEdit->setEnabled(
+ autoDjIgnoreTimeCheckBox->checkState() == Qt::Checked);
+ connect(autoDjIgnoreTimeEdit, SIGNAL(timeChanged(const QTime &)), this,
+ SLOT(slotSetAutoDjIgnoreTime(const QTime &)));
+
+ // Auto DJ random enqueue
+ ComboBoxAutoDjRandomQueue->addItem(tr("Off"));
+ ComboBoxAutoDjRandomQueue->addItem(tr("On"));
+ ComboBoxAutoDjRandomQueue->setCurrentIndex(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueue"),"0").toInt());
+ // 5-arbitrary
+ autoDJRandomQueueMinimumSpinBox->setValue(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "RandomQueueMinimumAllowed"),"5").toInt());
+ slotEnableAutoDJRandomQueueComboBox(
+ m_pConfig->getValueString(ConfigKey("[Auto DJ]", "Requeue")).toInt());
+ slotEnableAutoDJRandomQueue(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueue")).toInt());
+ // Be ready to enable disable the random enque as reque is modified
+ connect(ComboBoxAutoDjRequeue, SIGNAL(activated(int)), this,
+ SLOT(slotEnableAutoDJRandomQueueComboBox(int)));
+ // Be ready to enable and modify the minimum number and enable disable the spinbox
+ connect(ComboBoxAutoDjRandomQueue, SIGNAL(activated(int)), this,
+ SLOT(slotEnableAutoDJRandomQueue(int)));
+ connect(autoDJRandomQueueMinimumSpinBox, SIGNAL(valueChanged(int)), this,
+ SLOT(slotSetAutoDJRandomQueueMin(int)));
+
+#else // __AUTODJCRATES__
+
+ // Remove the preferences.
+ autoDjMinimumAvailableLabel->setVisible(false);
+ GridLayout1->removeWidget(autoDjMinimumAvailableLabel);
+ autoDjMinimumAvailableSpinBox->setVisible(false);
+ GridLayout1->removeWidget(autoDjMinimumAvailableSpinBox);
+ autoDjIgnoreTimeCheckBox->setVisible(false);
+ GridLayout1->removeWidget(autoDjIgnoreTimeCheckBox);
+ autoDjIgnoreTimeEdit->setVisible(false);
+ GridLayout1->removeWidget(autoDjIgnoreTimeEdit);
+#endif // __AUTODJCRATES__
+}
+
+DlgPrefAutoDJ::~DlgPrefAutoDJ() {
+}
+
+void DlgPrefAutoDJ::slotUpdate() {
+}
+
+void DlgPrefAutoDJ::slotApply() {
+ //Copy from Buffer to actual values
+ m_pConfig->set(ConfigKey("[Auto DJ]", "Requeue"),
+ m_pConfig->getValueString(ConfigKey("[Auto DJ]", "RequeueBuff"),"0"));
+#ifdef __AUTODJCRATES__
+ m_pConfig->set(ConfigKey("[Auto DJ]","MinimumAvailable"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "MinimumAvailableBuff"), "20"));
+
+ m_pConfig->set(ConfigKey("[Auto DJ]", "IgnoreTime"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "IgnoreTimeBuff"), "23:59"));
+ m_pConfig->set(ConfigKey("[Auto DJ]", "UseIgnoreTime"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "UseIgnoreTimeBuff"), "0"));
+
+ m_pConfig->set(ConfigKey("[Auto DJ]", "RandomQueueMinimumAllowed"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "RandomQueueMinimumAllowedBuff"),"5"));
+ m_pConfig->set(ConfigKey("[Auto DJ]", "EnableRandomQueue"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),"0"));
+#endif //__AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotCancel() {
+ // Load actual values and reset Buffer Values where ever needed
+ ComboBoxAutoDjRequeue->setCurrentIndex(
+ m_pConfig->getValueString(ConfigKey("[Auto DJ]", "Requeue"),"0").toInt());
+ m_pConfig->set(ConfigKey("[Auto DJ]", "RequeueBuff"),
+ m_pConfig->getValueString(ConfigKey("[Auto DJ]", "Requeue"),"0"));
+#ifdef __AUTODJCRATES__
+ autoDjMinimumAvailableSpinBox->setValue(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "MinimumAvailable"), "20").toInt());
+
+ autoDjIgnoreTimeEdit->setTime(
+ QTime::fromString(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "IgnoreTime"), "23:59"),
+ autoDjIgnoreTimeEdit->displayFormat()));
+ autoDjIgnoreTimeCheckBox->setChecked(
+ (bool) m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "UseIgnoreTime"), "0").toInt());
+ autoDjIgnoreTimeEdit->setEnabled(
+ autoDjIgnoreTimeCheckBox->checkState() == Qt::Checked);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "UseIgnoreTimeBuff"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "UseIgnoreTime"), "0"));
+
+ autoDJRandomQueueMinimumSpinBox->setValue(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "RandomQueueMinimumAllowed"),"5").toInt());
+ ComboBoxAutoDjRandomQueue->setCurrentIndex(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueue"),"0").toInt());
+ m_pConfig->set(ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueue"), "0"));
+ slotEnableAutoDJRandomQueue(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueue")).toInt());
+ slotEnableAutoDJRandomQueueComboBox(
+ m_pConfig->getValueString(ConfigKey("[Auto DJ]", "Requeue")).toInt());
+#endif //__AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotResetToDefaults() {
+ // Re-queue tracks in AutoDJ
+ ComboBoxAutoDjRequeue->setCurrentIndex(0);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "RequeueBuff"),ConfigValue(0));
+#ifdef __AUTODJCRATES__
+ autoDjMinimumAvailableSpinBox->setValue(20);
+
+ autoDjIgnoreTimeEdit->setTime(QTime::fromString(
+ "23:59", autoDjIgnoreTimeEdit->displayFormat()));
+ autoDjIgnoreTimeCheckBox->setChecked(false);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "UseIgnoreTimeBuff"),QString("0"));
+ autoDjIgnoreTimeEdit->setEnabled(false);
+
+ autoDJRandomQueueMinimumSpinBox->setValue(5);
+ ComboBoxAutoDjRandomQueue->setCurrentIndex(0);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),QString("0"));
+ autoDJRandomQueueMinimumSpinBox->setEnabled(false);
+ ComboBoxAutoDjRandomQueue->setEnabled(true);
+#endif
+}
+
+void DlgPrefAutoDJ::slotSetAutoDjRequeue(int) {
+ m_pConfig->set(ConfigKey("[Auto DJ]", "RequeueBuff"),
+ ConfigValue(ComboBoxAutoDjRequeue->currentIndex()));
+}
+
+void DlgPrefAutoDJ::slotSetAutoDjMinimumAvailable(int a_iValue) {
+#ifdef __AUTODJCRATES__
+ QString str;
+ str.setNum(a_iValue);
+ m_pConfig->set(ConfigKey("[Auto DJ]","MinimumAvailableBuff"),str);
+#endif // __AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotSetAutoDjUseIgnoreTime(int a_iState) {
+#ifdef __AUTODJCRATES__
+ bool bChecked = (a_iState == Qt::Checked);
+ QString strChecked = (bChecked) ? "1" : "0";
+ m_pConfig->set(ConfigKey("[Auto DJ]", "UseIgnoreTimeBuff"), strChecked);
+ autoDjIgnoreTimeEdit->setEnabled(bChecked);
+#endif // __AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotSetAutoDjIgnoreTime(const QTime &a_rTime) {
+#ifdef __AUTODJCRATES__
+ QString str = a_rTime.toString(autoDjIgnoreTimeEdit->displayFormat());
+ m_pConfig->set(ConfigKey("[Auto DJ]", "IgnoreTimeBuff"),str);
+#endif // __AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotSetAutoDJRandomQueueMin(int a_iValue) {
+#ifdef __AUTODJCRATES__
+ QString str;
+ //qDebug() << "min allowed " << a_iValue;
+ str.setNum(a_iValue);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "RandomQueueMinimumAllowedBuff"), str);
+#endif // __AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotEnableAutoDJRandomQueueComboBox(int a_iValue) {
+#ifdef __AUTODJCRATES__
+ if (a_iValue == 1) {
+ // Requeue is enabled
+ m_pConfig->set(ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),
+ ConfigValue(0));
+ ComboBoxAutoDjRandomQueue->setCurrentIndex(0);
+ ComboBoxAutoDjRandomQueue->setEnabled(false);
+ autoDJRandomQueueMinimumSpinBox->setEnabled(false);
+ } else {
+ ComboBoxAutoDjRandomQueue->setEnabled(true);
+ autoDJRandomQueueMinimumSpinBox->setEnabled(
+ m_pConfig->getValueString(
+ ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),"0").toInt());
+ }
+#endif // __AUTODJCRATES__
+}
+
+void DlgPrefAutoDJ::slotEnableAutoDJRandomQueue(int a_iValue) {
+#ifdef __AUTODJCRATES__
+ // Disable enable the option to select minimum tracks
+ if (a_iValue == 0) {
+ autoDJRandomQueueMinimumSpinBox->setEnabled(false);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),
+ ConfigValue(0));
+ } else {
+ autoDJRandomQueueMinimumSpinBox->setEnabled(true);
+ m_pConfig->set(ConfigKey("[Auto DJ]", "EnableRandomQueueBuff"),
+ ConfigValue(1));
+ }
+#endif // __AUTODJCRATES__
+}