From 58ca82ebbd83ddcc1d2ff0f512327cdf45c999bf Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 16 Sep 2018 15:46:17 +0000 Subject: added some functions, fixed segmentation fault git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8299 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/detailsdialog.cpp | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'src/qmmpui/detailsdialog.cpp') 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 (m_ui->tabWidget->currentWidget()); - if(tab) - tab->save(); + TagEditor *tagEditor = qobject_cast(m_ui->tabWidget->currentWidget()); + CoverEditor *coverEditor = 0; + if(tagEditor) + tagEditor->save(); + else if((coverEditor = qobject_cast(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 (m_ui->tabWidget->widget(index)); - m_ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(tab && m_metaDataModel && !m_metaDataModel->isReadOnly()); + TagEditor *tagEditor = qobject_cast (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(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() -- cgit v1.2.3-13-gbd6f