diff --git a/interface/resources/qml/hifi/tablet/Tablet.qml b/interface/resources/qml/hifi/tablet/Tablet.qml index c6b38b538f..1f45d6cf4c 100644 --- a/interface/resources/qml/hifi/tablet/Tablet.qml +++ b/interface/resources/qml/hifi/tablet/Tablet.qml @@ -3,6 +3,7 @@ import QtGraphicalEffects 1.0 Item { id: tablet + objectName: "tablet" property double miclevel: 0.8 diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7014cb400c..a4d72a3e1d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -104,6 +104,7 @@ #include #include #include +#include #include #include #include @@ -144,7 +145,6 @@ #include "scripting/SettingsScriptingInterface.h" #include "scripting/WindowScriptingInterface.h" #include "scripting/ControllerScriptingInterface.h" -#include "scripting/TabletScriptingInterface.h" #include "scripting/ToolbarScriptingInterface.h" #include "scripting/RatesScriptingInterface.h" #if defined(Q_OS_MAC) || defined(Q_OS_WIN) @@ -5183,8 +5183,6 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri scriptEngine->registerGlobalObject("ScriptDiscoveryService", DependencyManager::get().data()); scriptEngine->registerGlobalObject("Reticle", getApplicationCompositor().getReticleInterface()); - scriptEngine->registerGlobalObject("Tablet", DependencyManager::get().data()); - scriptEngine->registerGlobalObject("UserActivityLogger", DependencyManager::get().data()); scriptEngine->registerGlobalObject("Users", DependencyManager::get().data()); diff --git a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp index b48fd4263a..29f6a3afd1 100644 --- a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include "EntityTreeRenderer.h" #include "EntitiesRendererLogging.h" @@ -255,7 +256,13 @@ void RenderableWebEntityItem::loadSourceURL() { } else { _contentType = qmlContent; _webSurface->setBaseUrl(QUrl::fromLocalFile(PathUtils::resourcesPath())); - _webSurface->load(_sourceUrl, [&](QQmlContext* context, QObject* obj) { }); + _webSurface->load(_sourceUrl, [&](QQmlContext* context, QObject* obj) {}); + + // TABLET_UI_HACK: move this to overlays as well! + if (_webSurface->getRootItem() && _webSurface->getRootItem()->objectName() == "tablet") { + auto tabletScriptingInterface = DependencyManager::get(); + tabletScriptingInterface->setupTablet("com.highfidelity.interface.tablet.system", _webSurface->getRootItem()); + } } } diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 070bc98dbc..8e8ce6a851 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -62,6 +62,7 @@ #include "WebSocketClass.h" #include "RecordingScriptingInterface.h" #include "ScriptEngines.h" +#include "TabletScriptingInterface.h" #include "MIDIEvent.h" @@ -542,6 +543,8 @@ void ScriptEngine::init() { auto recordingInterface = DependencyManager::get(); registerGlobalObject("Recording", recordingInterface.data()); + registerGlobalObject("Tablet", DependencyManager::get().data()); + registerGlobalObject("Assets", &_assetScriptingInterface); registerGlobalObject("Resources", DependencyManager::get().data()); } diff --git a/interface/src/scripting/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp similarity index 93% rename from interface/src/scripting/TabletScriptingInterface.cpp rename to libraries/script-engine/src/TabletScriptingInterface.cpp index 0899460092..e1dd466f59 100644 --- a/interface/src/scripting/TabletScriptingInterface.cpp +++ b/libraries/script-engine/src/TabletScriptingInterface.cpp @@ -27,6 +27,11 @@ QObject* TabletScriptingInterface::getTablet(const QString& tabletId) { } } +void TabletScriptingInterface::setupTablet(QString tabletId, QQuickItem* qmlTablet) { + // AJT: TODO + qDebug() << "AJT: setupTablet objname = " << qmlTablet->objectName(); +} + // // TabletProxy // diff --git a/interface/src/scripting/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h similarity index 97% rename from interface/src/scripting/TabletScriptingInterface.h rename to libraries/script-engine/src/TabletScriptingInterface.h index 48407f823c..ee2b22eed6 100644 --- a/interface/src/scripting/TabletScriptingInterface.h +++ b/libraries/script-engine/src/TabletScriptingInterface.h @@ -14,6 +14,7 @@ #include #include #include +#include #include @@ -34,6 +35,8 @@ public: * @return {TabletProxy} tablet instance */ Q_INVOKABLE QObject* getTablet(const QString& tabletId); + + void setupTablet(QString tabletId, QQuickItem* qmlTablet); protected: std::mutex _tabletProxiesMutex; std::map> _tabletProxies;