on 68ddbaf help sign in
unity8/plugins/Dash/plugin.cpp
72 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 "croppedimagesizer.h"
21#include "horizontaljournal.h"
22#include "listviewwithpageheader.h"
23#include "organicgrid.h"
24#include "verticaljournal.h"
26#include <QAbstractItemModel>
27#include <QUrlQuery>
29static QUrl oauthCleanedUrl(QUrl u)
31 QUrlQuery q(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");
38 u.setQuery(q);
39 return u;
42class AudioComparer : public QObject
44 Q_OBJECT
45public:
46 Q_INVOKABLE bool compare(const QUrl &url1, const QUrl &url2)
47 {
48 return oauthCleanedUrl(url1) == oauthCleanedUrl(url2);
49 }
50};
52static QObject *audio_comparer_singleton_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
54 Q_UNUSED(engine)
55 Q_UNUSED(scriptEngine)
57 return new AudioComparer();
60void DashPlugin::registerTypes(const char *uri)
62 Q_ASSERT(uri == QLatin1String("Dash"));
63 qmlRegisterType<QAbstractItemModel>();
64 qmlRegisterType<HorizontalJournal>(uri, 0, 1, "HorizontalJournal");
65 qmlRegisterType<ListViewWithPageHeader>(uri, 0, 1, "ListViewWithPageHeader");
66 qmlRegisterType<OrganicGrid>(uri, 0, 1, "OrganicGrid");
67 qmlRegisterType<VerticalJournal>(uri, 0, 1, "VerticalJournal");
68 qmlRegisterType<CroppedImageSizer>(uri, 0, 1, "CroppedImageSizer");
69 qmlRegisterSingletonType<AudioComparer>(uri, 0, 1, "AudioUrlComparer", audio_comparer_singleton_provider);
72#include "plugin.moc"