mirror of
https://github.com/lubosz/overte.git
synced 2025-04-14 23:27:13 +02:00
Tweaking VR menu for PR
This commit is contained in:
parent
1a912787c2
commit
d55d467d3f
6 changed files with 42 additions and 17 deletions
|
@ -94,6 +94,9 @@ Hifi.VrMenu {
|
|||
var newWidth = minWidth;
|
||||
for (var i = 0; i < children.length; ++i) {
|
||||
var item = children[i];
|
||||
if (!item.visible) {
|
||||
continue
|
||||
}
|
||||
newHeight += item.height
|
||||
}
|
||||
parent.height = newHeight + outerMargin * 2;
|
||||
|
@ -152,8 +155,23 @@ Hifi.VrMenu {
|
|||
height: implicitHeight
|
||||
width: implicitWidth
|
||||
color: source.enabled ? hifi.colors.text : hifi.colors.disabledText
|
||||
enabled: source.enabled
|
||||
|
||||
enabled: source.enabled && source.visible
|
||||
// FIXME uncommenting this line results in menus that have blank spots
|
||||
// rather than having the correct size
|
||||
// visible: source.visible
|
||||
|
||||
onListViewChanged: {
|
||||
if (listView) {
|
||||
listView.minWidth = Math.max(listView.minWidth, implicitWidth + 64);
|
||||
listView.recalculateSize();
|
||||
}
|
||||
}
|
||||
|
||||
onVisibleChanged: {
|
||||
if (listView) {
|
||||
listView.recalculateSize();
|
||||
}
|
||||
}
|
||||
|
||||
onImplicitWidthChanged: {
|
||||
if (listView) {
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
#include <GlowEffect.h>
|
||||
#include <HFActionEvent.h>
|
||||
#include <HFBackEvent.h>
|
||||
#include <HifiMenu.h>
|
||||
#include <VrMenu.h>
|
||||
#include <LogHandler.h>
|
||||
#include <MainWindow.h>
|
||||
#include <ModelEntityItem.h>
|
||||
|
@ -1327,13 +1327,16 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//#define VR_MENU_ONLY_IN_HMD
|
||||
|
||||
void Application::keyReleaseEvent(QKeyEvent* event) {
|
||||
if (event->key() == Qt::Key_Alt && _altPressed && _window->isActiveWindow()) {
|
||||
#ifndef DEBUG
|
||||
#ifdef VR_MENU_ONLY_IN_HMD
|
||||
if (OculusManager::isConnected()) {
|
||||
#endif
|
||||
VrMenu::toggle();
|
||||
#ifndef DEBUG
|
||||
#ifdef VR_MENU_ONLY_IN_HMD
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include <PathUtils.h>
|
||||
#include <SettingHandle.h>
|
||||
#include <UserActivityLogger.h>
|
||||
#include <HifiMenu.h>
|
||||
#include <VrMenu.h>
|
||||
|
||||
#include "Application.h"
|
||||
#include "AccountManager.h"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// HifiMenu.cpp
|
||||
// VrMenu.cpp
|
||||
//
|
||||
// Created by Bradley Austin Davis on 2015/04/21
|
||||
// Copyright 2015 High Fidelity, Inc.
|
||||
|
@ -8,11 +8,15 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#include "HifiMenu.h"
|
||||
#include "VrMenu.h"
|
||||
#include <QtQml>
|
||||
#include <QMenuBar>
|
||||
|
||||
// Binds together a Qt Action or Menu with the QML Menu or MenuItem
|
||||
//
|
||||
// TODO On reflection, it may be pointless to use the UUID. Perhaps
|
||||
// simply creating the bidirectional link pointing to both the widget
|
||||
// and qml object and inject the pointer into both objects
|
||||
class MenuUserData : public QObjectUserData {
|
||||
static const int USER_DATA_ID;
|
||||
|
||||
|
@ -69,7 +73,7 @@ VrMenu::VrMenu(QQuickItem* parent) : QQuickItem(parent) {
|
|||
}
|
||||
|
||||
// QML helper functions
|
||||
QObject* addMenu(QObject* parent, const QString & text) {
|
||||
QObject* addMenu(QObject* parent, const QString& text) {
|
||||
// FIXME add more checking here to ensure no name conflicts
|
||||
QVariant returnedValue;
|
||||
QMetaObject::invokeMethod(parent, "addMenu", Qt::DirectConnection,
|
||||
|
@ -94,7 +98,7 @@ QObject* addItem(QObject* parent, const QString& text) {
|
|||
return result;
|
||||
}
|
||||
|
||||
const QObject* VrMenu::findMenuObject(const QString & menuOption) const {
|
||||
const QObject* VrMenu::findMenuObject(const QString& menuOption) const {
|
||||
if (menuOption.isEmpty()) {
|
||||
return _rootMenu;
|
||||
}
|
||||
|
@ -102,7 +106,7 @@ const QObject* VrMenu::findMenuObject(const QString & menuOption) const {
|
|||
return result;
|
||||
}
|
||||
|
||||
QObject* VrMenu::findMenuObject(const QString & menuOption) {
|
||||
QObject* VrMenu::findMenuObject(const QString& menuOption) {
|
||||
if (menuOption.isEmpty()) {
|
||||
return _rootMenu;
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// HifiMenu.h
|
||||
// VrMenu.h
|
||||
//
|
||||
// Created by Bradley Austin Davis on 2015/04/21
|
||||
// Copyright 2015 High Fidelity, Inc.
|
||||
|
@ -9,8 +9,8 @@
|
|||
//
|
||||
|
||||
#pragma once
|
||||
#ifndef hifi_HifiMenu_h
|
||||
#define hifi_HifiMenu_h
|
||||
#ifndef hifi_VrMenu_h
|
||||
#define hifi_VrMenu_h
|
||||
|
||||
#include <QQuickItem>
|
||||
#include <QHash>
|
||||
|
@ -20,7 +20,7 @@
|
|||
#include <QMenu>
|
||||
#include "OffscreenUi.h"
|
||||
|
||||
// FIXME rename the compilation files to VrMenu.h and VrMenu.cpp after upstream pull requests are merged.
|
||||
// FIXME break up the rendering code (VrMenu) and the code for mirroring a Widget based menu in QML
|
||||
class VrMenu : public QQuickItem {
|
||||
Q_OBJECT
|
||||
HIFI_QML_DECL_LAMBDA
|
||||
|
@ -45,4 +45,4 @@ protected:
|
|||
friend class MenuUserData;
|
||||
};
|
||||
|
||||
#endif // hifi_HifiMenu_h
|
||||
#endif // hifi_VrMenu_h
|
|
@ -35,7 +35,7 @@
|
|||
#include <QDir>
|
||||
|
||||
#include "MessageDialog.h"
|
||||
#include "HifiMenu.h"
|
||||
#include "VrMenu.h"
|
||||
|
||||
class RateCounter {
|
||||
std::vector<float> times;
|
||||
|
|
Loading…
Reference in a new issue