on master help sign in
unity8/plugins/Dash/plugin.cpp
70 lines 2.2 kB history raw
1/*
2 * Copyright (C) 2013 Canonical, Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
18#include "plugin.h"
20#include "horizontaljournal.h"
21#include "listviewwithpageheader.h"
22#include "organicgrid.h"
23#include "verticaljournal.h"
25#include <QAbstractItemModel>
26#include <QUrlQuery>
28static QUrl oauthCleanedUrl(QUrl u)
30 QUrlQuery q(u);
31 q.removeQueryItem(QStringLiteral("oauth_nonce"));
32 q.removeQueryItem(QStringLiteral("oauth_timestamp"));
33 q.removeQueryItem(QStringLiteral("oauth_consumer_key"));
34 q.removeQueryItem(QStringLiteral("oauth_signature_method"));
35 q.removeQueryItem(QStringLiteral("oauth_version"));
36 q.removeQueryItem(QStringLiteral("oauth_signature"));
37 u.setQuery(q);
38 return u;
41class AudioComparer : public QObject
43 Q_OBJECT
44public:
45 Q_INVOKABLE bool compare(const QUrl &url1, const QUrl &url2)
46 {
47 return oauthCleanedUrl(url1) == oauthCleanedUrl(url2);
48 }
49};
51static QObject *audio_comparer_singleton_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
53 Q_UNUSED(engine)
54 Q_UNUSED(scriptEngine)
56 return new AudioComparer();
59void DashPlugin::registerTypes(const char *uri)
61 Q_ASSERT(uri == QLatin1String("Dash"));
62 qmlRegisterType<QAbstractItemModel>();
63 qmlRegisterType<HorizontalJournal>(uri, 0, 1, "HorizontalJournal");
64 qmlRegisterType<ListViewWithPageHeader>(uri, 0, 1, "ListViewWithPageHeader");
65 qmlRegisterType<OrganicGrid>(uri, 0, 1, "OrganicGrid");
66 qmlRegisterType<VerticalJournal>(uri, 0, 1, "VerticalJournal");
67 qmlRegisterSingletonType<AudioComparer>(uri, 0, 1, "AudioUrlComparer", audio_comparer_singleton_provider);
70#include "plugin.moc"