@@ -24,6 +24,38 @@
24#include "verticaljournal.h"
24#include "verticaljournal.h"
26#include <QAbstractItemModel>
26#include <QAbstractItemModel>
29+static QUrl oauthCleanedUrl(QUrl u)
32+ q.removeQueryItem("oauth_nonce");
33+ q.removeQueryItem("oauth_timestamp");
34+ q.removeQueryItem("oauth_consumer_key");
35+ q.removeQueryItem("oauth_signature_method");
36+ q.removeQueryItem("oauth_version");
37+ q.removeQueryItem("oauth_signature");
42+class AudioComparer : public QObject
46+ Q_INVOKABLE bool compare(const QUrl &url1, const QUrl &url2)
48+ return oauthCleanedUrl(url1) == oauthCleanedUrl(url2);
52+static QObject *audio_comparer_singleton_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
55+ Q_UNUSED(scriptEngine)
57+ return new AudioComparer();
28void DashPlugin::registerTypes(const char *uri)
60void DashPlugin::registerTypes(const char *uri)
@@ -34,4 +66,7 @@ void DashPlugin::registerTypes(const char *uri)
34 qmlRegisterType<OrganicGrid>(uri, 0, 1, "OrganicGrid");
66 qmlRegisterType<OrganicGrid>(uri, 0, 1, "OrganicGrid");
35 qmlRegisterType<VerticalJournal>(uri, 0, 1, "VerticalJournal");
67 qmlRegisterType<VerticalJournal>(uri, 0, 1, "VerticalJournal");
36 qmlRegisterType<CroppedImageSizer>(uri, 0, 1, "CroppedImageSizer");
68 qmlRegisterType<CroppedImageSizer>(uri, 0, 1, "CroppedImageSizer");
69+ qmlRegisterSingletonType<AudioComparer>(uri, 0, 1, "AudioUrlComparer", audio_comparer_singleton_provider);