add move shortcut settings and deal with double handed moves

This commit is contained in:
Robin Appelman
2018-03-20 21:53:42 +01:00
parent e77b2bf658
commit d3ba00c01d
3 changed files with 190 additions and 50 deletions
+16 -1
View File
@@ -20,6 +20,8 @@ class MoveCenterTabController : public QObject {
Q_PROPERTY(float offsetZ READ offsetZ WRITE setOffsetZ NOTIFY offsetZChanged)
Q_PROPERTY(int rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
Q_PROPERTY(bool adjustChaperone READ adjustChaperone WRITE setAdjustChaperone NOTIFY adjustChaperoneChanged)
Q_PROPERTY(bool moveShortcutRight READ moveShortcutRight WRITE setMoveShortcutRight NOTIFY moveShortcutRightChanged)
Q_PROPERTY(bool moveShortcutLeft READ moveShortcutLeft WRITE setMoveShortcutLeft NOTIFY moveShortcutLeftChanged)
private:
OverlayController* parent;
@@ -31,11 +33,17 @@ private:
float m_offsetZ = 0.0f;
int m_rotation = 0;
bool m_adjustChaperone = true;
bool m_moveActive = false;
bool m_moveShortcutRightPressed = false;
bool m_moveShortcutLeftPressed = false;
vr::ETrackedControllerRole m_activeMoveController;
float m_lastControllerPosition[3];
bool m_moveShortcutRightEnabled = false;
bool m_moveShortcutLeftEnabled = false;
unsigned settingsUpdateCounter = 0;
vr::ETrackedControllerRole getMoveShortcutHand();
public:
void initStage1();
void initStage2(OverlayController* parent, QQuickWindow* widget);
@@ -47,6 +55,8 @@ public:
float offsetZ() const;
int rotation() const;
bool adjustChaperone() const;
bool moveShortcutRight() const;
bool moveShortcutLeft() const;
public slots:
int trackingUniverse() const;
@@ -60,6 +70,9 @@ public slots:
void setAdjustChaperone(bool value, bool notify = true);
void setMoveShortcutRight(bool value, bool notify = true);
void setMoveShortcutLeft(bool value, bool notify = true);
void modOffsetX(float value, bool notify = true);
void modOffsetY(float value, bool notify = true);
void modOffsetZ(float value, bool notify = true);
@@ -72,6 +85,8 @@ signals:
void offsetZChanged(float value);
void rotationChanged(int value);
void adjustChaperoneChanged(bool value);
void moveShortcutRightChanged(bool value);
void moveShortcutLeftChanged(bool value);
};
} // namespace advsettings