Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 7 files). Show all
Unified · Split
| @@ -59,6 +59,71 @@ QQuickWindow* TabletScriptingInterface::getTabletWindow() { · 58 unmodified lines | |||
| 59 | return window; | 59 | return window; |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | void TabletScriptingInterface::processMenuEvents(QObject* object, const QKeyEvent* event) { | ||
| 63 | switch (event->key()) { | ||
| 64 | case Qt::Key_Down: | ||
| 65 | QMetaObject::invokeMethod(object, "nextItem"); | ||
| 66 | break; | ||
| 67 | |||
| 68 | case Qt::Key_Up: | ||
| 69 | QMetaObject::invokeMethod(object, "previousItem"); | ||
| 70 | break; | ||
| 71 | |||
| 72 | case Qt::Key_Left: | ||
| 73 | QMetaObject::invokeMethod(object, "previousPage"); | ||
| 74 | break; | ||
| 75 | |||
| 76 | case Qt::Key_Right: | ||
| 77 | QMetaObject::invokeMethod(object, "selectCurrentItem"); | ||
| 78 | break; | ||
| 79 | |||
| 80 | case Qt::Key_Return: | ||
| 81 | QMetaObject::invokeMethod(object, "selectCurrentItem"); | ||
| 82 | break; | ||
| 83 | defualt: | ||
| 84 | break; | ||
| 85 | } | ||
| 86 | } | ||
| 87 | |||
| 88 | void TabletScriptingInterface::processTabletEvents(QObject* object, const QKeyEvent* event) { | ||
| 89 | switch (event->key()) { | ||
| 90 | case Qt::Key_Down: | ||
| 91 | QMetaObject::invokeMethod(object, "downItem"); | ||
| 92 | break; | ||
| 93 | |||
| 94 | case Qt::Key_Up: | ||
| 95 | QMetaObject::invokeMethod(object, "upItem"); | ||
| 96 | break; | ||
| 97 | |||
| 98 | case Qt::Key_Left: | ||
| 99 | QMetaObject::invokeMethod(object, "previousItem"); | ||
| 100 | break; | ||
| 101 | |||
| 102 | case Qt::Key_Right: | ||
| 103 | QMetaObject::invokeMethod(object, "nextItem"); | ||
| 104 | break; | ||
| 105 | |||
| 106 | case Qt::Key_Return: | ||
| 107 | QMetaObject::invokeMethod(object, "selectItem"); | ||
| 108 | break; | ||
| 109 | defualt: | ||
| 110 | break; | ||
| 111 | } | ||
| 112 | } | ||
| 113 | |||
| 114 | |||
| 115 | void TabletScriptingInterface::processEvent(const QKeyEvent* event) { | ||
| 116 | TabletProxy* tablet = qobject_cast<TabletProxy*>(getTablet("com.highfidelity.interface.tablet.system")); | ||
| 117 | QObject* qmlTablet = tablet->getQmlTablet(); | ||
| 118 | QObject* qmlMenu = tablet->getQmlMenu(); | ||
| 119 | |||
| 120 | if (qmlTablet) { | ||
| 121 | processTabletEvents(qmlTablet, event); | ||
| 122 | } else if (qmlMenu) { | ||
| 123 | processMenuEvents(qmlMenu, event); | ||
| 124 | } | ||
| 125 | } | ||
| 126 | |||
| 62 | QObject* TabletScriptingInterface::getFlags() | 127 | QObject* TabletScriptingInterface::getFlags() |
| 63 | { | 128 | { |
| 64 | auto offscreenUi = DependencyManager::get<OffscreenUi>(); | 129 | auto offscreenUi = DependencyManager::get<OffscreenUi>(); |
| @@ -215,8 +280,6 @@ void TabletProxy::addButtonsToHomeScreen() { · 150 unmodified lines | |||
| 215 | addButtonProxyToQmlTablet(tablet, buttonProxy.data()); | 280 | addButtonProxyToQmlTablet(tablet, buttonProxy.data()); |
| 216 | } | 281 | } |
| 217 | auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader"); | 282 | auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader"); |
| 218 | QMetaObject::invokeMethod(_qmlTabletRoot, "forceFocus"); | ||
| 219 | qDebug() << "----> INVOKEMETHOD"; | ||
| 220 | QObject::disconnect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen())); | 283 | QObject::disconnect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen())); |
| 221 | } | 284 | } |
| 222 | 285 | ||
| @@ -236,7 +299,6 @@ void TabletProxy::addButtonsToMenuScreen() { · 13 unmodified lines | |||
| 236 | 299 | ||
| 237 | QQuickItem* VrMenu = loader->findChild<QQuickItem*>("tabletMenu"); | 300 | QQuickItem* VrMenu = loader->findChild<QQuickItem*>("tabletMenu"); |
| 238 | if (!VrMenu) { | 301 | if (!VrMenu) { |
| 239 | qDebug() << "----------> could not find vr menu"; | ||
| 240 | return; | 302 | return; |
| 241 | } | 303 | } |
| 242 | 304 | ||
| @@ -270,6 +332,29 @@ QQuickItem* TabletProxy::getQmlTablet() const { · 27 unmodified lines | |||
| 270 | return tablet; | 332 | return tablet; |
| 271 | } | 333 | } |
| 272 | 334 | ||
| 335 | QQuickItem* TabletProxy::getQmlMenu() const { | ||
| 336 | if (!_qmlTabletRoot) { | ||
| 337 | return nullptr; | ||
| 338 | } | ||
| 339 | |||
| 340 | auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader"); | ||
| 341 | if (!loader) { | ||
| 342 | return nullptr; | ||
| 343 | } | ||
| 344 | |||
| 345 | QQuickItem* VrMenu = loader->findChild<QQuickItem*>("tabletMenu"); | ||
| 346 | if (!VrMenu) { | ||
| 347 | return nullptr; | ||
| 348 | } | ||
| 349 | |||
| 350 | QQuickItem* menuList = VrMenu->findChild<QQuickItem*>("menuList"); | ||
| 351 | if (!menuList) { | ||
| 352 | return nullptr; | ||
| 353 | } | ||
| 354 | qDebug() << "---------->found menuList"; | ||
| 355 | return menuList; | ||
| 356 | } | ||
| 357 | |||
| 273 | // | 358 | // |
| 274 | // TabletButtonProxy | 359 | // TabletButtonProxy |
| 275 | // | 360 | // |