Expose DB query functions to JavaScript
Those are likely not very usable as-is because they return a model that is not yet written for use within the QML engine.
This commit is contained in:
parent
73dc64ce6a
commit
cd1e0ce590
|
@ -2,6 +2,7 @@
|
|||
#include "./fieldmapping.h"
|
||||
|
||||
#include "../application/knownfieldmodel.h"
|
||||
#include "../dbquery/dbquery.h"
|
||||
#include "../misc/utility.h"
|
||||
|
||||
#include <tagparser/abstracttrack.h>
|
||||
|
@ -126,6 +127,33 @@ QString UtilityObject::fixUmlauts(const QString &str) const
|
|||
return Utility::fixUmlauts(str);
|
||||
}
|
||||
|
||||
QJSValue UtilityObject::queryMusicBrainz(const QJSValue &songDescription)
|
||||
{
|
||||
return m_engine->newQObject(QtGui::queryMusicBrainz(makeSongDescription(songDescription)));
|
||||
}
|
||||
|
||||
QJSValue UtilityObject::queryLyricsWikia(const QJSValue &songDescription)
|
||||
{
|
||||
return m_engine->newQObject(QtGui::queryLyricsWikia(makeSongDescription(songDescription)));
|
||||
}
|
||||
|
||||
QJSValue UtilityObject::queryMakeItPersonal(const QJSValue &songDescription)
|
||||
{
|
||||
return m_engine->newQObject(QtGui::queryMakeItPersonal(makeSongDescription(songDescription)));
|
||||
}
|
||||
|
||||
QtGui::SongDescription UtilityObject::makeSongDescription(const QJSValue &obj)
|
||||
{
|
||||
auto desc = QtGui::SongDescription(obj.property(QStringLiteral("songId")).toString());
|
||||
desc.title = obj.property(QStringLiteral("title")).toString();
|
||||
desc.album = obj.property(QStringLiteral("album")).toString();
|
||||
desc.albumId = obj.property(QStringLiteral("albumId")).toString();
|
||||
desc.artist = obj.property(QStringLiteral("artist")).toString();
|
||||
desc.artistId = obj.property(QStringLiteral("artistId")).toString();
|
||||
desc.year = obj.property(QStringLiteral("year")).toString();
|
||||
return desc;
|
||||
}
|
||||
|
||||
PositionInSetObject::PositionInSetObject(TagParser::PositionInSet value, QJSEngine *engine, QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_v(value)
|
||||
|
|
|
@ -27,6 +27,10 @@ enum class KnownField : unsigned int;
|
|||
enum class TagTextEncoding : unsigned int;
|
||||
} // namespace TagParser
|
||||
|
||||
namespace QtGui {
|
||||
struct SongDescription;
|
||||
}
|
||||
|
||||
namespace Cli {
|
||||
|
||||
/*!
|
||||
|
@ -54,7 +58,13 @@ public Q_SLOTS:
|
|||
QString formatName(const QString &str) const;
|
||||
QString fixUmlauts(const QString &str) const;
|
||||
|
||||
QJSValue queryMusicBrainz(const QJSValue &songDescription);
|
||||
QJSValue queryLyricsWikia(const QJSValue &songDescription);
|
||||
QJSValue queryMakeItPersonal(const QJSValue &songDescription);
|
||||
|
||||
private:
|
||||
static QtGui::SongDescription makeSongDescription(const QJSValue &obj);
|
||||
|
||||
QJSEngine *m_engine;
|
||||
const std::string *m_context;
|
||||
TagParser::Diagnostics *m_diag;
|
||||
|
|
Loading…
Reference in New Issue