aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/detailsdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/detailsdialog.cpp')
-rw-r--r--src/qmmpui/detailsdialog.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp
index e03e757a0..54b9b870c 100644
--- a/src/qmmpui/detailsdialog.cpp
+++ b/src/qmmpui/detailsdialog.cpp
@@ -46,10 +46,27 @@ DetailsDialog::DetailsDialog(const QList<PlayListTrack *> &tracks, QWidget *pare
m_ui->prevButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowLeft));
updatePage();
on_tabWidget_currentChanged(0);
+
+ for(PlayListTrack *t : qAsConst(m_tracks))
+ t->beginUsage();
}
DetailsDialog::~DetailsDialog()
{
+ for(PlayListTrack *t : qAsConst(m_tracks))
+ {
+ t->endUsage();
+ if (!t->isUsed() && t->isSheduledForDeletion())
+ {
+ delete t;
+ t = nullptr;
+ }
+ else
+ {
+ t->updateMetaData();
+ }
+ }
+
if(m_metaDataModel)
{
delete m_metaDataModel;
@@ -58,6 +75,11 @@ DetailsDialog::~DetailsDialog()
delete m_ui;
}
+QStringList DetailsDialog::modifiedPaths() const
+{
+ return m_modifiedPaths.values();
+}
+
void DetailsDialog:: on_directoryButton_clicked()
{
QString dir_path;
@@ -81,19 +103,25 @@ void DetailsDialog::on_buttonBox_clicked(QAbstractButton *button)
{
if(m_ui->buttonBox->standardButton(button) == QDialogButtonBox::Save)
{
- TagEditor *tagEditor = qobject_cast<TagEditor *>(m_ui->tabWidget->currentWidget());
+ TagEditor *tagEditor = nullptr;
CoverEditor *coverEditor = nullptr;
CueEditor *cueEditor = nullptr;
- if(tagEditor)
+
+ if((tagEditor = qobject_cast<TagEditor *>(m_ui->tabWidget->currentWidget())))
+ {
tagEditor->save();
+ m_modifiedPaths.insert(m_info.path());
+ }
else if((coverEditor = qobject_cast<CoverEditor *>(m_ui->tabWidget->currentWidget())))
{
coverEditor->save();
+ m_modifiedPaths.insert(m_info.path());
MetaDataManager::instance()->clearCoverCache();
}
else if((cueEditor = qobject_cast<CueEditor *>(m_ui->tabWidget->currentWidget())))
{
cueEditor->save();
+ m_modifiedPaths.insert(m_info.path());
}
}
else