History

Merge pull request #6812 from jherico/running_scripts

Running scripts in QML

Brad Hefta-Gaub committed 10 years ago

Commit cd167e42 parents 90f4ca7 e7bfcba16 files · +587 −858Browse files

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

Unified · Split

interface/src/Application.cpp+21−21
@@ -982,12 +982,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : · 981 unmodified lines
982982 });
983983
984984 connect(this, &Application::applicationStateChanged, this, &Application::activeChanged);
985−
986− // FIXME -- NOTE: This will call ProcessEvents() which can cause authentication signals to fire, which
987− // if not logged in can cause the login dialog to appear. As currently implemented, the login requires
988− // the offscreen UI to render, so this needs to be well after OffscreenUi is available
989− _runningScriptsWidget = new RunningScriptsWidget(_window);
990−
991985 qCDebug(interfaceapp, "Startup time: %4.2f seconds.", (double)startupTimer.elapsed() / 1000.0);
992986 }
993987
@@ -1199,7 +1193,10 @@ void Application::initializeUi() { · 205 unmodified lines
11991193 offscreenUi->create(_offscreenContext->getContext());
12001194 offscreenUi->setProxyWindow(_window->windowHandle());
12011195 offscreenUi->setBaseUrl(QUrl::fromLocalFile(PathUtils::resourcesPath() + "/qml/"));
1202− offscreenUi->load("Root.qml");
1196+ // OffscreenUi is a subclass of OffscreenQmlSurface specifically designed to
1197+ // support the window management and scripting proxies for VR use
1198+ offscreenUi->createDesktop();
1199+
12031200 // FIXME either expose so that dialogs can set this themselves or
12041201 // do better detection in the offscreen UI of what has focus
12051202 offscreenUi->setNavigationFocused(false);
@@ -1210,6 +1207,9 @@ void Application::initializeUi() { · 4 unmodified lines
12101207 qApp->quit();
12111208 });
12121209
1210+ // For some reason there is already an "Application" object in the QML context,
1211+ // though I can't find it. Hence, "ApplicationInterface"
1212+ rootContext->setContextProperty("ApplicationInterface", this);
12131213 rootContext->setContextProperty("AnimationCache", DependencyManager::get<AnimationCache>().data());
12141214 rootContext->setContextProperty("Audio", &AudioScriptingInterface::getInstance());
12151215 rootContext->setContextProperty("Controller", DependencyManager::get<controller::ScriptingInterface>().data());
@@ -1232,8 +1232,6 @@ void Application::initializeUi() { · 16 unmodified lines
12321232 #endif
12331233
12341234 rootContext->setContextProperty("Overlays", &_overlays);
1235− rootContext->setContextProperty("Desktop", DependencyManager::get<DesktopScriptingInterface>().data());
1236−
12371235 rootContext->setContextProperty("Window", DependencyManager::get<WindowScriptingInterface>().data());
12381236 rootContext->setContextProperty("Menu", MenuScriptingInterface::getInstance());
12391237 rootContext->setContextProperty("Stats", Stats::getInstance());
@@ -4535,18 +4533,20 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name) · 3295 unmodified lines
45354533 }
45364534
45374535 void Application::toggleRunningScriptsWidget() {
4538− if (_runningScriptsWidget->isVisible()) {
4539− if (_runningScriptsWidget->hasFocus()) {
4540− _runningScriptsWidget->hide();
4541− } else {
4542− _runningScriptsWidget->raise();
4543− setActiveWindow(_runningScriptsWidget);
4544− _runningScriptsWidget->setFocus();
4545− }
4546− } else {
4547− _runningScriptsWidget->show();
4548− _runningScriptsWidget->setFocus();
4549− }
4536+ static const QUrl url("dialogs/RunningScripts.qml");
4537+ DependencyManager::get<OffscreenUi>()->toggle(url, "RunningScripts");
4538+ //if (_runningScriptsWidget->isVisible()) {
4539+ // if (_runningScriptsWidget->hasFocus()) {
4540+ // _runningScriptsWidget->hide();
4541+ // } else {
4542+ // _runningScriptsWidget->raise();
4543+ // setActiveWindow(_runningScriptsWidget);
4544+ // _runningScriptsWidget->setFocus();
4545+ // }
4546+ //} else {
4547+ // _runningScriptsWidget->show();
4548+ // _runningScriptsWidget->setFocus();
4549+ //}
45504550 }
45514551
45524552 void Application::packageModel() {