diff --git a/cli/mediafileinfoobject.cpp b/cli/mediafileinfoobject.cpp index 3263f91..4d966ad 100644 --- a/cli/mediafileinfoobject.cpp +++ b/cli/mediafileinfoobject.cpp @@ -284,6 +284,20 @@ QString TagObject::type() const return Utility::qstr(m_tag.typeName()); } +QJSValue TagObject::target() const +{ + const auto &target = m_tag.target(); + auto obj = m_engine->newObject(); + obj.setProperty(QStringLiteral("level"), m_engine->toScriptValue(target.level())); + obj.setProperty(QStringLiteral("levelName"), QJSValue(QString::fromStdString(target.levelName()))); + obj.setProperty(QStringLiteral("tracks"), m_engine->toScriptValue(QList(target.tracks().cbegin(), target.tracks().cend()))); + obj.setProperty(QStringLiteral("chapters"), m_engine->toScriptValue(QList(target.chapters().cbegin(), target.chapters().cend()))); + obj.setProperty(QStringLiteral("editions"), m_engine->toScriptValue(QList(target.editions().cbegin(), target.editions().cend()))); + obj.setProperty( + QStringLiteral("attachments"), m_engine->toScriptValue(QList(target.attachments().cbegin(), target.attachments().cend()))); + return obj; +} + QString TagObject::propertyNameForField(TagParser::KnownField field) { static const auto reverseMapping = [] { diff --git a/cli/mediafileinfoobject.h b/cli/mediafileinfoobject.h index 110d4fd..565df21 100644 --- a/cli/mediafileinfoobject.h +++ b/cli/mediafileinfoobject.h @@ -129,6 +129,7 @@ private: class TagObject : public QObject { Q_OBJECT Q_PROPERTY(QString type READ type) + Q_PROPERTY(QJSValue target READ target) Q_PROPERTY(QJSValue fields READ fields) public: @@ -137,6 +138,7 @@ public: TagParser::Tag &tag(); QString type() const; + QJSValue target() const; QJSValue &fields(); public Q_SLOTS: