@@ -31,10 +31,8 @@
31Scope::Scope(QObject *parent) :
31Scope::Scope(QObject *parent) :
32 QObject(parent)
32 QObject(parent)
34− m_results = new DeeListModel(this);
34+ m_results.reset(new DeeListModel(this));
35− m_categories = new Categories(this);
35+ m_categories.reset(new Categories(this));
37− m_categories->setResultModel(m_results);
40QString Scope::id() const
38QString Scope::id() const
@@ -77,14 +75,9 @@ bool Scope::connected() const
77 return m_unityScope->connected();
75 return m_unityScope->connected();
80−DeeListModel* Scope::results() const
85Categories* Scope::categories() const
78Categories* Scope::categories() const
87− return m_categories;
80+ return m_categories.get();
90QString Scope::searchQuery() const
83QString Scope::searchQuery() const
@@ -97,6 +90,11 @@ QString Scope::noResultsHint() const
97 return m_noResultsHint;
90 return m_noResultsHint;
93+QString Scope::formFactor() const
100void Scope::setSearchQuery(const QString& search_query)
98void Scope::setSearchQuery(const QString& search_query)
102 /* Checking for m_searchQuery.isNull() which returns true only when the string
100 /* Checking for m_searchQuery.isNull() which returns true only when the string
@@ -118,6 +116,16 @@ void Scope::setNoResultsHint(const QString& hint) {
119+void Scope::setFormFactor(const QString& form_factor) {
120+ if (form_factor != m_formFactor) {
121+ m_formFactor = form_factor;
123+ m_unityScope->form_factor = m_formFactor.toStdString();
125+ Q_EMIT formFactorChanged();
121void Scope::activate(const QString& /*uri*/)
129void Scope::activate(const QString& /*uri*/)
@@ -171,18 +179,11 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
172 m_unityScope = scope;
180 m_unityScope = scope;
174− if (QString::fromStdString(m_unityScope->results()->swarm_name) == QString(":local")) {
182+ // TODO: do we even need this?
175− m_results->setModel(m_unityScope->results()->model());
177− m_results->setName(QString::fromStdString(m_unityScope->results()->swarm_name));
183+ m_results->setModel(m_unityScope->results()->model());
180− if (QString::fromStdString(m_unityScope->categories()->swarm_name) == QString(":local")) {
181− m_categories->setModel(m_unityScope->categories()->model());
183− m_categories->setName(QString::fromStdString(m_unityScope->categories()->swarm_name));
184+ m_categories->setUnityScope(m_unityScope);
186+ m_unityScope->form_factor = m_formFactor.toStdString();
186 /* Property change signals */
187 /* Property change signals */
187 m_unityScope->id.changed.connect(sigc::mem_fun(this, &Scope::idChanged));
188 m_unityScope->id.changed.connect(sigc::mem_fun(this, &Scope::idChanged));
188 m_unityScope->name.changed.connect(sigc::mem_fun(this, &Scope::nameChanged));
189 m_unityScope->name.changed.connect(sigc::mem_fun(this, &Scope::nameChanged));
@@ -192,12 +193,7 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
192 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
193 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
193 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
194 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
194 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
195 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
195− m_unityScope->results.changed.connect(sigc::mem_fun(this, &Scope::onResultsChanged));
196− m_unityScope->results()->swarm_name.changed.connect(sigc::mem_fun(this, &Scope::onResultsSwarmNameChanged));
197 m_unityScope->results()->model.changed.connect(sigc::mem_fun(this, &Scope::onResultsModelChanged));
196 m_unityScope->results()->model.changed.connect(sigc::mem_fun(this, &Scope::onResultsModelChanged));
198− m_unityScope->categories()->model.changed.connect(sigc::mem_fun(this, &Scope::onCategoriesModelChanged));
199− m_unityScope->categories.changed.connect(sigc::mem_fun(this, &Scope::onCategoriesChanged));
200− m_unityScope->categories()->swarm_name.changed.connect(sigc::mem_fun(this, &Scope::onCategoriesSwarmNameChanged));
201 /* Signals forwarding */
197 /* Signals forwarding */
202 connect(this, SIGNAL(searchFinished(const std::string &, unity::glib::HintsMap const &, unity::glib::Error const &)), SLOT(onSearchFinished(const std::string &, unity::glib::HintsMap const &)));
198 connect(this, SIGNAL(searchFinished(const std::string &, unity::glib::HintsMap const &, unity::glib::Error const &)), SLOT(onSearchFinished(const std::string &, unity::glib::HintsMap const &)));
@@ -226,36 +222,11 @@ void Scope::synchronizeStates()
229−void Scope::onResultsSwarmNameChanged(const std::string& /* swarm_name */)
231− m_results->setName(QString::fromStdString(m_unityScope->results()->swarm_name));
234−void Scope::onResultsChanged(const unity::dash::Results::Ptr& /* results */)
236− m_results->setName(QString::fromStdString(m_unityScope->results()->swarm_name));
239void Scope::onResultsModelChanged(unity::glib::Object<DeeModel> /* model */)
225void Scope::onResultsModelChanged(unity::glib::Object<DeeModel> /* model */)
241 m_results->setModel(m_unityScope->results()->model());
227 m_results->setModel(m_unityScope->results()->model());
244−void Scope::onCategoriesSwarmNameChanged(const std::string& /* swarm_name */)
246− m_categories->setName(QString::fromStdString(m_unityScope->categories()->swarm_name));
249−void Scope::onCategoriesChanged(const unity::dash::Categories::Ptr& /* categories */)
251− m_categories->setName(QString::fromStdString(m_unityScope->categories()->swarm_name));
254−void Scope::onCategoriesModelChanged(unity::glib::Object<DeeModel> model)
256− m_categories->setModel(model);
259void Scope::onSearchFinished(const std::string& /* query */, unity::glib::HintsMap const &hints)
230void Scope::onSearchFinished(const std::string& /* query */, unity::glib::HintsMap const &hints)
261 QString hint;
232 QString hint;