2
* Copyright (C) 2011 Canonical, Ltd.
5
* Florian Boucault <florian.boucault@canonical.com>
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; version 3.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
29
#include <UnityCore/Scope.h>
30
#include <UnityCore/Results.h>
31
#include <UnityCore/GLibWrapper.h>
33
#include "categories.h"
38
class Scope : public QObject
42
Q_PROPERTY(QString id READ id NOTIFY idChanged)
43
Q_PROPERTY(QString name READ name NOTIFY nameChanged)
44
Q_PROPERTY(QString iconHint READ iconHint NOTIFY iconHintChanged)
45
Q_PROPERTY(QString description READ description NOTIFY descriptionChanged)
46
Q_PROPERTY(QString searchHint READ searchHint NOTIFY searchHintChanged)
47
Q_PROPERTY(bool searchInProgress READ searchInProgress NOTIFY searchInProgressChanged)
48
Q_PROPERTY(bool visible READ visible NOTIFY visibleChanged)
49
Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
50
Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
51
Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
52
Q_PROPERTY(Filters* filters READ filters NOTIFY filtersChanged)
54
Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
55
Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
56
Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
57
Q_PROPERTY(bool isActive READ isActive WRITE setActive NOTIFY isActiveChanged)
60
explicit Scope(QObject *parent = 0);
65
QString iconHint() const;
66
QString description() const;
67
QString searchHint() const;
69
QString shortcut() const;
70
bool connected() const;
71
bool searchInProgress() const;
72
Categories* categories() const;
73
Filters* filters() const;
74
QString searchQuery() const;
75
QString noResultsHint() const;
76
QString formFactor() const;
77
bool isActive() const;
80
void setSearchQuery(const QString& search_query);
81
void setNoResultsHint(const QString& hint);
82
void setFormFactor(const QString& form_factor);
83
void setActive(const bool);
85
Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
86
const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
87
const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata);
88
Q_INVOKABLE void preview(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
89
const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
90
const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata);
91
Q_INVOKABLE void cancelActivation();
93
void setUnityScope(const unity::dash::Scope::Ptr& scope);
94
unity::dash::Scope::Ptr unityScope() const;
97
void idChanged(const std::string&);
98
void dbusNameChanged(const std::string&);
99
void dbusPathChanged(const std::string&);
100
void nameChanged(const std::string&);
101
void iconHintChanged(const std::string&);
102
void descriptionChanged(const std::string&);
103
void searchHintChanged(const std::string&);
104
void searchInProgressChanged();
105
void visibleChanged(bool);
106
void shortcutChanged(const std::string&);
107
void connectedChanged(bool);
108
void categoriesChanged();
109
void searchQueryChanged();
110
void noResultsHintChanged();
111
void formFactorChanged();
112
void isActiveChanged(bool);
113
void filtersChanged();
115
// signals triggered by activate(..) or preview(..) requests.
116
void previewReady(Preview *preview);
119
void gotoUri(const QString &uri);
122
void activateApplication(const QString &desktop);
125
void synchronizeStates();
126
void scopeIsActiveChanged();
127
void onSearchFinished(std::string const &, unity::glib::HintsMap const &, unity::glib::Error const&);
130
unity::dash::LocalResult createLocalResult(const QVariant &uri, const QVariant &icon_hint,
131
const QVariant &category, const QVariant &result_type,
132
const QVariant &mimetype, const QVariant &title,
133
const QVariant &comment, const QVariant &dnd_uri,
134
const QVariant &metadata);
135
void onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const& hints);
136
void onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview);
137
void fallbackActivate(const QString& uri);
138
void resultsDirtyToggled(bool);
140
unity::dash::Scope::Ptr m_unityScope;
141
std::unique_ptr<Categories> m_categories;
142
std::unique_ptr<Filters> m_filters;
143
QString m_searchQuery;
144
QString m_noResultsHint;
145
QString m_formFactor;
147
bool m_searchInProgress;
148
unity::glib::Cancellable m_cancellable;
149
unity::glib::Cancellable m_previewCancellable;
152
Q_DECLARE_METATYPE(Scope*)