Merge lp:~marcustomlinson/unity-scope-click/without-crashing into lp:unity-scope-click

Proposed by Marcus Tomlinson
Status: Merged
Approved by: dobey
Approved revision: 447
Merged at revision: 441
Proposed branch: lp:~marcustomlinson/unity-scope-click/without-crashing
Merge into: lp:unity-scope-click
Prerequisite: lp:~dobey/unity-scope-click/really-we-want-to-sign-all-the-requests
Diff against target: 113 lines (+16/-0)
4 files modified
scope/clickapps/apps-scope.cpp (+4/-0)
scope/clickapps/apps-scope.h (+4/-0)
scope/clickstore/store-scope.cpp (+4/-0)
scope/clickstore/store-scope.h (+4/-0)
To merge this branch: bzr merge lp:~marcustomlinson/unity-scope-click/without-crashing
Reviewer Review Type Date Requested Status
dobey (community) Approve
Paweł Stołowski (community) Approve
PS Jenkins bot continuous-integration Needs Fixing
Review via email: mp+291987@code.launchpad.net

Commit message

Wait for the qt main loop to be ready before allowing execution of search or preview methods

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Paweł Stołowski (stolowski) wrote :

Yeah, totally makes sense! +1

review: Approve
Revision history for this message
dobey (dobey) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'scope/clickapps/apps-scope.cpp'
--- scope/clickapps/apps-scope.cpp 2016-04-15 10:12:40 +0000
+++ scope/clickapps/apps-scope.cpp 2016-04-15 10:12:40 +0000
@@ -49,6 +49,7 @@
4949
50click::Scope::Scope()50click::Scope::Scope()
51{51{
52 qt_ready_f = qt_ready_p.get_future();
52 nam.reset(new click::network::AccessManager());53 nam.reset(new click::network::AccessManager());
53 client.reset(new click::web::Client(nam));54 client.reset(new click::web::Client(nam));
54 index.reset(new click::Index(client));55 index.reset(new click::Index(client));
@@ -84,6 +85,7 @@
84 sso.reset(new click::CredentialsService());85 sso.reset(new click::CredentialsService());
85 client->setCredentialsService(sso);86 client->setCredentialsService(sso);
86 dm.reset(Ubuntu::DownloadManager::Manager::createSessionManager());87 dm.reset(Ubuntu::DownloadManager::Manager::createSessionManager());
88 qt_ready_p.set_value();
87 };89 };
8890
89 qt::core::world::build_and_run(zero, nullptr, emptyCb);91 qt::core::world::build_and_run(zero, nullptr, emptyCb);
@@ -96,12 +98,14 @@
9698
97scopes::SearchQueryBase::UPtr click::Scope::search(unity::scopes::CannedQuery const& q, scopes::SearchMetadata const& metadata)99scopes::SearchQueryBase::UPtr click::Scope::search(unity::scopes::CannedQuery const& q, scopes::SearchMetadata const& metadata)
98{100{
101 qt_ready_f.wait();
99 return scopes::SearchQueryBase::UPtr(new click::apps::Query(q, depts_db, metadata));102 return scopes::SearchQueryBase::UPtr(new click::apps::Query(q, depts_db, metadata));
100}103}
101104
102105
103unity::scopes::PreviewQueryBase::UPtr click::Scope::preview(const unity::scopes::Result& result,106unity::scopes::PreviewQueryBase::UPtr click::Scope::preview(const unity::scopes::Result& result,
104 const unity::scopes::ActionMetadata& metadata) {107 const unity::scopes::ActionMetadata& metadata) {
108 qt_ready_f.wait();
105 qDebug() << "Scope::preview() called.";109 qDebug() << "Scope::preview() called.";
106 auto preview = new click::Preview(result, metadata);110 auto preview = new click::Preview(result, metadata);
107 preview->choose_strategy(client, pay_package, dm, depts_db);111 preview->choose_strategy(client, pay_package, dm, depts_db);
108112
=== modified file 'scope/clickapps/apps-scope.h'
--- scope/clickapps/apps-scope.h 2016-04-15 10:12:40 +0000
+++ scope/clickapps/apps-scope.h 2016-04-15 10:12:40 +0000
@@ -30,6 +30,8 @@
30#ifndef APPS_SCOPE_H30#ifndef APPS_SCOPE_H
31#define APPS_SCOPE_H31#define APPS_SCOPE_H
3232
33#include <future>
34
33#include <click/index.h>35#include <click/index.h>
34#include <click/network_access_manager.h>36#include <click/network_access_manager.h>
35#include <click/pay.h>37#include <click/pay.h>
@@ -66,6 +68,8 @@
66 virtual unity::scopes::ActivationQueryBase::UPtr perform_action(unity::scopes::Result const& result, unity::scopes::ActionMetadata const& metadata, std::string const& widget_id, std::string const& action_id) override;68 virtual unity::scopes::ActivationQueryBase::UPtr perform_action(unity::scopes::Result const& result, unity::scopes::ActionMetadata const& metadata, std::string const& widget_id, std::string const& action_id) override;
6769
68private:70private:
71 std::promise<void> qt_ready_p;
72 std::future<void> qt_ready_f;
69 QSharedPointer<click::network::AccessManager> nam;73 QSharedPointer<click::network::AccessManager> nam;
70 QSharedPointer<click::web::Client> client;74 QSharedPointer<click::web::Client> client;
71 QSharedPointer<click::Index> index;75 QSharedPointer<click::Index> index;
7276
=== modified file 'scope/clickstore/store-scope.cpp'
--- scope/clickstore/store-scope.cpp 2016-04-15 10:12:40 +0000
+++ scope/clickstore/store-scope.cpp 2016-04-15 10:12:40 +0000
@@ -47,6 +47,7 @@
4747
48click::Scope::Scope()48click::Scope::Scope()
49{49{
50 qt_ready_f = qt_ready_p.get_future();
50 nam.reset(new click::network::AccessManager());51 nam.reset(new click::network::AccessManager());
51 client.reset(new click::web::Client(nam));52 client.reset(new click::web::Client(nam));
52 index.reset(new click::Index(client));53 index.reset(new click::Index(client));
@@ -86,6 +87,7 @@
86 sso.reset(new click::CredentialsService());87 sso.reset(new click::CredentialsService());
87 client->setCredentialsService(sso);88 client->setCredentialsService(sso);
88 dm.reset(Ubuntu::DownloadManager::Manager::createSessionManager());89 dm.reset(Ubuntu::DownloadManager::Manager::createSessionManager());
90 qt_ready_p.set_value();
89 };91 };
9092
91 qt::core::world::build_and_run(zero, nullptr, emptyCb);93 qt::core::world::build_and_run(zero, nullptr, emptyCb);
@@ -98,12 +100,14 @@
98100
99scopes::SearchQueryBase::UPtr click::Scope::search(unity::scopes::CannedQuery const& q, scopes::SearchMetadata const& metadata)101scopes::SearchQueryBase::UPtr click::Scope::search(unity::scopes::CannedQuery const& q, scopes::SearchMetadata const& metadata)
100{102{
103 qt_ready_f.wait();
101 return scopes::SearchQueryBase::UPtr(new click::Query(q, *index, *depts, depts_db, *highlights, metadata, *pay_package));104 return scopes::SearchQueryBase::UPtr(new click::Query(q, *index, *depts, depts_db, *highlights, metadata, *pay_package));
102}105}
103106
104107
105unity::scopes::PreviewQueryBase::UPtr click::Scope::preview(const unity::scopes::Result& result,108unity::scopes::PreviewQueryBase::UPtr click::Scope::preview(const unity::scopes::Result& result,
106 const unity::scopes::ActionMetadata& metadata) {109 const unity::scopes::ActionMetadata& metadata) {
110 qt_ready_f.wait();
107 qDebug() << "Scope::preview() called.";111 qDebug() << "Scope::preview() called.";
108 auto preview = new click::Preview(result, metadata);112 auto preview = new click::Preview(result, metadata);
109 preview->choose_strategy(client, pay_package, dm, depts_db);113 preview->choose_strategy(client, pay_package, dm, depts_db);
110114
=== modified file 'scope/clickstore/store-scope.h'
--- scope/clickstore/store-scope.h 2016-04-15 10:12:40 +0000
+++ scope/clickstore/store-scope.h 2016-04-15 10:12:40 +0000
@@ -33,6 +33,8 @@
33#include <click/pay.h>33#include <click/pay.h>
3434
35#include <memory>35#include <memory>
36#include <future>
37
36#include <click/network_access_manager.h>38#include <click/network_access_manager.h>
37#include <click/webclient.h>39#include <click/webclient.h>
3840
@@ -69,6 +71,8 @@
69 virtual unity::scopes::ActivationQueryBase::UPtr perform_action(unity::scopes::Result const& result, unity::scopes::ActionMetadata const& metadata, std::string const& widget_id, std::string const& action_id) override;71 virtual unity::scopes::ActivationQueryBase::UPtr perform_action(unity::scopes::Result const& result, unity::scopes::ActionMetadata const& metadata, std::string const& widget_id, std::string const& action_id) override;
7072
71private:73private:
74 std::promise<void> qt_ready_p;
75 std::future<void> qt_ready_f;
72 QSharedPointer<click::network::AccessManager> nam;76 QSharedPointer<click::network::AccessManager> nam;
73 QSharedPointer<click::web::Client> client;77 QSharedPointer<click::web::Client> client;
74 QSharedPointer<click::Index> index;78 QSharedPointer<click::Index> index;

Subscribers

People subscribed via source and target branches