History

Treat QmlCommerce as a singleton class

Simon Walton committed 7 years ago

Commit 3a5d5501 parent 37764722 files · +7 −4Browse files

Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all

Unified · Split

interface/src/Application.cpp+4−3
@@ -919,6 +919,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { · 918 unmodified lines
919919 DependencyManager::set<Wallet>();
920920 DependencyManager::set<WalletScriptingInterface>();
921921 DependencyManager::set<TTSScriptingInterface>();
922+ DependencyManager::set<QmlCommerce>();
922923
923924 DependencyManager::set<FadeEffect>();
924925 DependencyManager::set<ResourceRequestObserver>();
@@ -2598,6 +2599,7 @@ void Application::cleanupBeforeQuit() { · 1673 unmodified lines
25982599 DependencyManager::destroy<ContextOverlayInterface>(); // Must be destroyed before TabletScriptingInterface
25992600
26002601 // stop QML
2602+ DependencyManager::destroy<QmlCommerce>();
26012603 DependencyManager::destroy<TabletScriptingInterface>();
26022604 DependencyManager::destroy<ToolbarScriptingInterface>();
26032605 DependencyManager::destroy<OffscreenUi>();
@@ -2886,7 +2888,7 @@ void Application::initializeUi() { · 282 unmodified lines
28862888 Tooltip::registerType();
28872889 UpdateDialog::registerType();
28882890 QmlContextCallback commerceCallback = [](QQmlContext* context) {
2889− context->setContextProperty("Commerce", new QmlCommerce());
2891+ context->setContextProperty("Commerce", DependencyManager::get<QmlCommerce>().data());
28902892 };
28912893 OffscreenQmlSurface::addWhitelistContextHandler({
28922894 QUrl{ "hifi/commerce/checkout/Checkout.qml" },
@@ -8014,8 +8016,7 @@ void Application::openUrl(const QUrl& url) const { · 5121 unmodified lines
80148016 if (url.scheme() == URL_SCHEME_HIFI) {
80158017 DependencyManager::get<AddressManager>()->handleLookupString(url.toString());
80168018 } else if (url.scheme() == URL_SCHEME_HIFIAPP) {
8017− QmlCommerce commerce;
8018− commerce.openSystemApp(url.path());
8019+ DependencyManager::get<QmlCommerce>()->openSystemApp(url.path());
80198020 } else {
80208021 // address manager did not handle - ask QDesktopServices to handle
80218022 QDesktopServices::openUrl(url);