diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-09 18:31:26 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-09 18:31:26 +0000 |
| commit | 1cec7355e741f6374ffdd71c6a6c70b1102d5cb5 (patch) | |
| tree | e59f7537b308b03431abd5ad6f0605751e6085ce /src/plugins | |
| parent | 884ccfa580ca13ace41bc5bd64d89caa322a099b (diff) | |
| download | qmmp-1cec7355e741f6374ffdd71c6a6c70b1102d5cb5.tar.gz qmmp-1cec7355e741f6374ffdd71c6a6c70b1102d5cb5.tar.bz2 qmmp-1cec7355e741f6374ffdd71c6a6c70b1102d5cb5.zip | |
flac: added cue editor
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9710 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Input/flac/flacmetadatamodel.cpp | 31 | ||||
| -rw-r--r-- | src/plugins/Input/flac/flacmetadatamodel.h | 3 |
2 files changed, 32 insertions, 2 deletions
diff --git a/src/plugins/Input/flac/flacmetadatamodel.cpp b/src/plugins/Input/flac/flacmetadatamodel.cpp index c20e13d0c..dcabb2e19 100644 --- a/src/plugins/Input/flac/flacmetadatamodel.cpp +++ b/src/plugins/Input/flac/flacmetadatamodel.cpp @@ -29,7 +29,7 @@ #include "flacmetadatamodel.h" FLACMetaDataModel::FLACMetaDataModel(const QString &path, bool readOnly) : - MetaDataModel(true, MetaDataModel::IsCoverEditable), + MetaDataModel(readOnly, MetaDataModel::IsCoverEditable), m_path(path) { if(path.startsWith("flac://")) @@ -44,6 +44,7 @@ FLACMetaDataModel::FLACMetaDataModel(const QString &path, bool readOnly) : TagLib::FLAC::File *f = new TagLib::FLAC::File(m_stream, TagLib::ID3v2::FrameFactory::instance()); m_tag = f->xiphComment(); m_file = f; + setDialogHints(dialogHints() | MetaDataModel::IsCueEditable); } else if(m_path.endsWith(".oga", Qt::CaseInsensitive)) { @@ -53,9 +54,11 @@ FLACMetaDataModel::FLACMetaDataModel(const QString &path, bool readOnly) : m_file = f; } + if(m_file) + setReadOnly(m_file->readOnly()); + if(m_file && m_file->isValid() && !path.startsWith("flac://")) { - setReadOnly(readOnly); m_tags << new VorbisCommentModel(m_tag, m_file); } } @@ -141,6 +144,30 @@ void FLACMetaDataModel::removeCover() } } +QString FLACMetaDataModel::cue() const +{ + if (m_tag->fieldListMap().contains("CUESHEET")) + { + QByteArray data(m_tag->fieldListMap()["CUESHEET"].toString().toCString(true)); + return QString::fromUtf8(data); + } + + return QString(); +} + +void FLACMetaDataModel::setCue(const QString &content) +{ + m_tag->removeFields("CUESHEET"); + m_tag->addField("CUESHEET", QStringToTString(content), true); + m_file->save(); +} + +void FLACMetaDataModel::removeCue() +{ + m_tag->removeFields("CUESHEET"); + m_file->save(); +} + VorbisCommentModel::VorbisCommentModel(TagLib::Ogg::XiphComment *tag, TagLib::File *file) : TagModel(TagModel::Save) { m_file = file; diff --git a/src/plugins/Input/flac/flacmetadatamodel.h b/src/plugins/Input/flac/flacmetadatamodel.h index 6ed1a588d..22514fbec 100644 --- a/src/plugins/Input/flac/flacmetadatamodel.h +++ b/src/plugins/Input/flac/flacmetadatamodel.h @@ -37,6 +37,9 @@ public: QString coverPath() const override; void setCover(const QPixmap &pix) override; void removeCover() override; + QString cue() const override; + void setCue(const QString &content) override; + void removeCue() override; private: QString m_path; |
