diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-07 21:34:50 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-07 21:34:50 +0000 |
| commit | 15629f11ad6e82bcb10cd5a71d0e09684caa7965 (patch) | |
| tree | c3ffeb1186b099bfef87105c00bf8679777bbd4e | |
| parent | c77a6eaa02b2b982a9440a2505305a96aecfd7af (diff) | |
| download | qmmp-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.cpp | 8 | ||||
| -rw-r--r-- | src/qmmpui/cueeditor_p.h | 4 | ||||
| -rw-r--r-- | src/qmmpui/detailsdialog.cpp | 9 |
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 |
