diff options
Diffstat (limited to 'src/qmmpui/detailsdialog.cpp')
| -rw-r--r-- | src/qmmpui/detailsdialog.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp index 6d34d1cb8..73c2db852 100644 --- a/src/qmmpui/detailsdialog.cpp +++ b/src/qmmpui/detailsdialog.cpp @@ -84,25 +84,35 @@ void DetailsDialog::on_buttonBox_clicked(QAbstractButton *button) { if(m_ui->buttonBox->standardButton(button) == QDialogButtonBox::Save) { - TagEditor *tab = qobject_cast<TagEditor *> (m_ui->tabWidget->currentWidget()); - if(tab) - tab->save(); + TagEditor *tagEditor = qobject_cast<TagEditor *>(m_ui->tabWidget->currentWidget()); + CoverEditor *coverEditor = 0; + if(tagEditor) + tagEditor->save(); + else if((coverEditor = qobject_cast<CoverEditor *>(m_ui->tabWidget->currentWidget()))) + coverEditor->save(); } else - reject(); - - //close all files before closing dialog - if(m_metaDataModel) { - delete m_metaDataModel; - m_metaDataModel = 0; + //close all files before closing dialog + if(m_metaDataModel) + { + delete m_metaDataModel; + m_metaDataModel = 0; + } + reject(); } } void DetailsDialog::on_tabWidget_currentChanged(int index) { - TagEditor *tab = qobject_cast<TagEditor *> (m_ui->tabWidget->widget(index)); - m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(tab && m_metaDataModel && !m_metaDataModel->isReadOnly()); + TagEditor *tagEditor = qobject_cast<TagEditor *> (m_ui->tabWidget->widget(index)); + CoverEditor *coverEditor = 0; + if(tagEditor) + m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(m_metaDataModel && !m_metaDataModel->isReadOnly()); + else if((coverEditor = qobject_cast<CoverEditor *>(m_ui->tabWidget->currentWidget()))) + m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(coverEditor->isEditable()); + else + m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(false); } void DetailsDialog::on_prevButton_clicked() |
