aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-02-07 21:34:50 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-02-07 21:34:50 +0000
commit15629f11ad6e82bcb10cd5a71d0e09684caa7965 (patch)
treec3ffeb1186b099bfef87105c00bf8679777bbd4e
parentc77a6eaa02b2b982a9440a2505305a96aecfd7af (diff)
downloadqmmp-15629f11ad6e82bcb10cd5a71d0e09684caa7965.tar.gz
qmmp-15629f11ad6e82bcb10cd5a71d0e09684caa7965.tar.bz2
qmmp-15629f11ad6e82bcb10cd5a71d0e09684caa7965.zip
fixed cue tracks updating
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9703 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmpui/cueeditor.cpp8
-rw-r--r--src/qmmpui/cueeditor_p.h4
-rw-r--r--src/qmmpui/detailsdialog.cpp9
3 files changed, 19 insertions, 2 deletions
diff --git a/src/qmmpui/cueeditor.cpp b/src/qmmpui/cueeditor.cpp
index 221abee94..451fa6a77 100644
--- a/src/qmmpui/cueeditor.cpp
+++ b/src/qmmpui/cueeditor.cpp
@@ -35,6 +35,7 @@ CueEditor::CueEditor(MetaDataModel *model, const TrackInfo &info, QWidget *paren
{
m_ui->setupUi(this);
m_ui->plainTextEdit->setPlainText(model->cue());
+ m_parser.loadData(model->cue().toUtf8());
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
m_lastDir = settings.value("CueEditor/last_dir", QDir::homePath()).toString();
m_editable = m_model && (m_model->dialogHints() & MetaDataModel::IsCueEditable) && !m_model->isReadOnly();
@@ -54,11 +55,13 @@ void CueEditor::save()
if(data.isEmpty())
{
m_model->removeCue();
+ m_parser.clear();
}
else
{
data.append(QChar::LineFeed);
m_model->setCue(data);
+ m_parser.loadData(data.toUtf8());
}
}
@@ -67,6 +70,11 @@ bool CueEditor::isEditable() const
return m_editable;
}
+int CueEditor::trackCount() const
+{
+ return m_parser.count();
+}
+
void CueEditor::on_loadButton_clicked()
{
QString path = FileDialog::getOpenFileName(this, tr("Open CUE File"),
diff --git a/src/qmmpui/cueeditor_p.h b/src/qmmpui/cueeditor_p.h
index 32c909af0..2b45aa861 100644
--- a/src/qmmpui/cueeditor_p.h
+++ b/src/qmmpui/cueeditor_p.h
@@ -22,7 +22,7 @@
#define CUEEDITOR_P_H
#include <QWidget>
-
+#include <qmmp/cueparser.h>
#include <qmmp/trackinfo.h>
namespace Ui {
@@ -41,6 +41,7 @@ public:
void save();
bool isEditable() const;
+ int trackCount() const;
private slots:
void on_loadButton_clicked();
@@ -53,6 +54,7 @@ private:
QString m_lastDir;
bool m_editable;
TrackInfo m_info;
+ CueParser m_parser;
};
#endif // CUEEDITOR_P_H
diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp
index bba2d9f6a..c1ef22904 100644
--- a/src/qmmpui/detailsdialog.cpp
+++ b/src/qmmpui/detailsdialog.cpp
@@ -123,8 +123,15 @@ void DetailsDialog::on_buttonBox_clicked(QAbstractButton *button)
}
else if((cueEditor = qobject_cast<CueEditor *>(m_ui->tabWidget->currentWidget())))
{
- cueEditor->save();
+ //update all cue tracks
+ int count = cueEditor->trackCount();
+ QString path = m_info.path();
+ path.remove(QRegularExpression("#\\d+$"));
+ for(int i = 0; i < count; ++i)
+ m_modifiedPaths.insert(QString("%1#%2").arg(path).arg(i + 1));
m_modifiedPaths.insert(m_info.path());
+
+ cueEditor->save();
}
}
else