Expose target to JavaScript

This commit is contained in:
Martchus 2023-08-02 18:08:35 +02:00
parent 1d4c18f474
commit 73dc64ce6a
2 changed files with 16 additions and 0 deletions

View File

@ -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<std::uint64_t>(target.tracks().cbegin(), target.tracks().cend())));
obj.setProperty(QStringLiteral("chapters"), m_engine->toScriptValue(QList<std::uint64_t>(target.chapters().cbegin(), target.chapters().cend())));
obj.setProperty(QStringLiteral("editions"), m_engine->toScriptValue(QList<std::uint64_t>(target.editions().cbegin(), target.editions().cend())));
obj.setProperty(
QStringLiteral("attachments"), m_engine->toScriptValue(QList<std::uint64_t>(target.attachments().cbegin(), target.attachments().cend())));
return obj;
}
QString TagObject::propertyNameForField(TagParser::KnownField field)
{
static const auto reverseMapping = [] {

View File

@ -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: