Tinkering with toolbar visibility signal - not quite working

This commit is contained in:
Zach Fox 2019-06-12 10:20:54 -07:00 committed by Preston Bezos
parent 35cdd19456
commit 51c2cc793a
5 changed files with 28 additions and 1 deletions

View file

@ -12,6 +12,8 @@ import controlsUit 1.0
OriginalDesktop.Desktop { OriginalDesktop.Desktop {
id: desktop id: desktop
property alias toolbarObjectName: sysToolbar.objectName
MouseArea { MouseArea {
id: hoverWatch id: hoverWatch
anchors.fill: parent anchors.fill: parent
@ -70,7 +72,13 @@ OriginalDesktop.Desktop {
x: sysToolbar.x x: sysToolbar.x
buttonModel: tablet ? tablet.buttons : null; buttonModel: tablet ? tablet.buttons : null;
shown: tablet ? tablet.toolbarMode : false; shown: tablet ? tablet.toolbarMode : false;
onVisibleChanged: {
console.log("ZRF HERE DESKTOP.QML: " + visible);
desktop.toolbarVisibleChanged(visible);
}
} }
signal toolbarVisibleChanged(bool isVisible);
QtSettings.Settings { QtSettings.Settings {
id: settings; id: settings;

View file

@ -688,6 +688,12 @@ void OffscreenUi::createDesktop(const QUrl& url) {
menuInitializer(_vrMenu); menuInitializer(_vrMenu);
} }
QString toolbarName = newObject->property("toolbarObjectName").toString(); // will return "com.highfidelity.interface.toolbar.system"
auto toolbarScriptingInterface = DependencyManager::get<ToolbarScriptingInterface>();
_currentToolbarProxy = dynamic_cast<ToolbarProxy*>(toolbarScriptingInterface->getToolbar(toolbarName));
connect(_desktop, SIGNAL(toolbarVisibleChanged(bool)), _currentToolbarProxy, SLOT(onToolbarVisibleChanged(bool)));
auto keyboardFocus = new KeyboardFocusHack(); auto keyboardFocus = new KeyboardFocusHack();
connect(_desktop, SIGNAL(showDesktop()), this, SIGNAL(showDesktop())); connect(_desktop, SIGNAL(showDesktop()), this, SIGNAL(showDesktop()));
emit desktopReady(); emit desktopReady();

View file

@ -24,6 +24,7 @@
#include <DependencyManager.h> #include <DependencyManager.h>
#include "ui/OffscreenQmlSurface.h" #include "ui/OffscreenQmlSurface.h"
#include "ui/ToolbarScriptingInterface.h"
#include "OffscreenQmlElement.h" #include "OffscreenQmlElement.h"
class VrMenu; class VrMenu;
@ -270,7 +271,8 @@ private:
QList<QObject*> _modalDialogListeners; QList<QObject*> _modalDialogListeners;
std::unordered_map<int, bool> _pressedKeys; std::unordered_map<int, bool> _pressedKeys;
VrMenu* _vrMenu { nullptr }; VrMenu* _vrMenu { nullptr };
QQueue<std::function<void(VrMenu*)>> _queuedMenuInitializers; QQueue<std::function<void(VrMenu*)>> _queuedMenuInitializers;
ToolbarProxy* _currentToolbarProxy;
}; };
#endif #endif

View file

@ -63,6 +63,11 @@ void ToolbarButtonProxy::editProperties(const QVariantMap& properties) {
} }
} }
void ToolbarProxy::onToolbarVisibleChanged(bool isVisible) {
qDebug() << "ZRF HERE IN ENGINE SLOT";
emit ToolbarProxy::toolbarVisibleChanged(isVisible);
}
ToolbarProxy::ToolbarProxy(QObject* qmlObject, QObject* parent) : QmlWrapper(qmlObject, parent) { ToolbarProxy::ToolbarProxy(QObject* qmlObject, QObject* parent) : QmlWrapper(qmlObject, parent) {
Q_ASSERT(QThread::currentThread() == qApp->thread()); Q_ASSERT(QThread::currentThread() == qApp->thread());
} }

View file

@ -129,6 +129,12 @@ public:
* @param {string[]} propertyList * @param {string[]} propertyList
* @returns {object} * @returns {object}
*/ */
public slots:
void onToolbarVisibleChanged(bool isVisible);
signals:
void toolbarVisibleChanged(bool isVisible);
}; };
Q_DECLARE_METATYPE(ToolbarProxy*); Q_DECLARE_METATYPE(ToolbarProxy*);