From aa9a2532a99406a13ea5b55667996ffd61f7bcce Mon Sep 17 00:00:00 2001 From: Triplelexx Date: Thu, 30 Mar 2017 13:54:33 +0100 Subject: [PATCH] fix for displaying "Bookmark Avatar" dialog in tablet ui --- .../qml/dialogs/preferences/AvatarPreference.qml | 2 +- interface/src/Application.cpp | 10 +++++++++- interface/src/Application.h | 1 + interface/src/AvatarBookmarks.cpp | 4 ---- interface/src/AvatarBookmarks.h | 4 +++- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml index 598b367995..bcc5a1d9e6 100644 --- a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml +++ b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml @@ -86,7 +86,7 @@ Preference { bottom: parent.bottom rightMargin: hifi.dimensions.contentSpacing.x } - onClickedQueued: avatarBookmarks.addBookmark() + onClickedQueued: ApplicationInterface.loadAddAvatarBookmarkDialog() } Button { diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index c8b01706fe..58d0042322 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include #include #include @@ -522,6 +523,7 @@ bool setupEssentials(int& argc, char** argv) { DependencyManager::set(); DependencyManager::set(); DependencyManager::set(nullptr, qApp->getOcteeSceneStats()); + DependencyManager::set(); return previousSessionCrashed; } @@ -2000,6 +2002,7 @@ void Application::initializeUi() { rootContext->setContextProperty("Settings", SettingsScriptingInterface::getInstance()); rootContext->setContextProperty("ScriptDiscoveryService", DependencyManager::get().data()); rootContext->setContextProperty("AudioDevice", AudioDeviceScriptingInterface::getInstance()); + rootContext->setContextProperty("AvatarBookmarks", DependencyManager::get().data()); // Caches rootContext->setContextProperty("AnimationCache", DependencyManager::get().data()); @@ -5481,6 +5484,7 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri scriptEngine->registerGlobalObject("AudioDevice", AudioDeviceScriptingInterface::getInstance()); scriptEngine->registerGlobalObject("AudioStats", DependencyManager::get()->getStats().data()); scriptEngine->registerGlobalObject("AudioScope", DependencyManager::get().data()); + scriptEngine->registerGlobalObject("AvatarBookmarks", DependencyManager::get().data()); // Caches scriptEngine->registerGlobalObject("AnimationCache", DependencyManager::get().data()); @@ -6352,7 +6356,6 @@ void Application::loadLODToolsDialog() { } else { tablet->pushOntoStack("../../hifi/dialogs/TabletLODTools.qml"); } - } @@ -6402,6 +6405,11 @@ void Application::toggleEntityScriptServerLogDialog() { } } +void Application::loadAddAvatarBookmarkDialog() const { + auto avatarBookmarks = DependencyManager::get(); + avatarBookmarks->addBookmark(); +} + void Application::takeSnapshot(bool notify, bool includeAnimated, float aspectRatio) { postLambdaEvent([notify, includeAnimated, aspectRatio, this] { QMediaPlayer* player = new QMediaPlayer(); diff --git a/interface/src/Application.h b/interface/src/Application.h index 0123bdaf59..aeb4966066 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -334,6 +334,7 @@ public slots: void toggleEntityScriptServerLogDialog(); void toggleRunningScriptsWidget() const; Q_INVOKABLE void showAssetServerWidget(QString filePath = ""); + Q_INVOKABLE void loadAddAvatarBookmarkDialog() const; void showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const; diff --git a/interface/src/AvatarBookmarks.cpp b/interface/src/AvatarBookmarks.cpp index 6b21065328..f9d9a18bc9 100644 --- a/interface/src/AvatarBookmarks.cpp +++ b/interface/src/AvatarBookmarks.cpp @@ -41,10 +41,6 @@ void AvatarBookmarks::setupMenus(Menu* menubar, MenuWrapper* menu) { Bookmarks::setupMenus(menubar, menu); Bookmarks::sortActions(menubar, _bookmarksMenu); - - auto offscreenUi = DependencyManager::get(); - auto context = offscreenUi->getRootContext(); - context->setContextProperty("avatarBookmarks", this); } void AvatarBookmarks::changeToBookmarkedAvatar() { diff --git a/interface/src/AvatarBookmarks.h b/interface/src/AvatarBookmarks.h index 958e0e891c..725af88b0d 100644 --- a/interface/src/AvatarBookmarks.h +++ b/interface/src/AvatarBookmarks.h @@ -12,10 +12,12 @@ #ifndef hifi_AvatarBookmarks_h #define hifi_AvatarBookmarks_h +#include #include "Bookmarks.h" -class AvatarBookmarks: public Bookmarks { +class AvatarBookmarks: public Bookmarks, public Dependency { Q_OBJECT + SINGLETON_DEPENDENCY public: AvatarBookmarks();