History

controller with menus finally work

Dante Ruiz committed 9 years ago

Commit baff07b1 parent 9a61b607 files · +117 −22Browse files

Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 7 files). Show all

Unified · Split

libraries/script-engine/src/TabletScriptingInterface.cpp+88−3
@@ -59,6 +59,71 @@ QQuickWindow* TabletScriptingInterface::getTabletWindow() { · 58 unmodified lines
59 return window;59 return window;
60}60}
61 61
62void 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
88void 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
115void 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
62QObject* TabletScriptingInterface::getFlags()127QObject* 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
335QQuickItem* 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// TabletButtonProxy359// TabletButtonProxy
275//360//