diff options
Diffstat (limited to 'src/preferences/dialog/dlgprefautodj.cpp')
-rw-r--r-- | src/preferences/dialog/dlgprefautodj.cpp | 242 |
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__ +} |