diff --git a/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml b/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml index 95f55f504b..9e46d86ecd 100644 --- a/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml +++ b/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml @@ -17,7 +17,7 @@ PreferencesDialog { id: root objectName: "GeneralPreferencesDialog" title: "General Settings" - showCategories: ["Snapshots", "Scripts", "Privacy", "Octree", "HMD", "Sixense Controllers"] + showCategories: ["UI", "Snapshots", "Scripts", "Privacy", "Octree", "HMD", "Sixense Controllers"] property var settings: Settings { category: root.objectName property alias x: root.x diff --git a/interface/resources/qml/hifi/toolbars/Toolbar.qml b/interface/resources/qml/hifi/toolbars/Toolbar.qml index 30989be688..2968d61324 100644 --- a/interface/resources/qml/hifi/toolbars/Toolbar.qml +++ b/interface/resources/qml/hifi/toolbars/Toolbar.qml @@ -25,11 +25,13 @@ Window { property real buttonSize: 50; property var buttons: [] property var container: horizontal ? row : column + property bool constrainToolbarToCenterX: false Settings { category: "toolbar/" + window.objectName property alias x: window.x property alias y: window.y + property alias constrainToolbarToCenterX: window.constrainToolbarToCenterX } onHorizontalChanged: { diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 5fe15fa8e5..ecedc33542 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -523,6 +523,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo _mirrorViewRect(QRect(MIRROR_VIEW_LEFT_PADDING, MIRROR_VIEW_TOP_PADDING, MIRROR_VIEW_WIDTH, MIRROR_VIEW_HEIGHT)), _previousScriptLocation("LastScriptLocation", DESKTOP_LOCATION), _fieldOfView("fieldOfView", DEFAULT_FIELD_OF_VIEW_DEGREES), + _constrainToolbarPosition("constrainToolbarToCenterX", false), _scaleMirror(1.0f), _rotateMirror(0.0f), _raiseMirror(0.0f), @@ -2150,6 +2151,10 @@ void Application::setFieldOfView(float fov) { } } +void Application::setSettingConstrainToolbarPosition(bool setting) { + _constrainToolbarPosition.set(setting); +} + void Application::aboutApp() { InfoView::show(INFO_WELCOME_PATH); } diff --git a/interface/src/Application.h b/interface/src/Application.h index 79c9ae735c..4c98be9c2d 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -206,6 +206,9 @@ public: float getFieldOfView() { return _fieldOfView.get(); } void setFieldOfView(float fov); + float getSettingConstrainToolbarPosition() { return _constrainToolbarPosition.get(); } + void setSettingConstrainToolbarPosition(bool setting); + NodeToOctreeSceneStats* getOcteeSceneStats() { return &_octreeServerSceneStats; } virtual controller::ScriptingInterface* getControllerScriptingInterface() { return _controllerScriptingInterface; } @@ -506,6 +509,7 @@ private: Setting::Handle _previousScriptLocation; Setting::Handle _fieldOfView; + Setting::Handle _constrainToolbarPosition; float _scaleMirror; float _rotateMirror; diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index 8e65b2fb57..37135a9379 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -66,7 +66,14 @@ void setupPreferences() { auto getter = [=]()->bool { return myAvatar->getClearOverlayWhenMoving(); }; auto setter = [=](bool value) { myAvatar->setClearOverlayWhenMoving(value); }; preferences->addPreference(new CheckPreference(AVATAR_BASICS, "Clear overlays when moving", getter, setter)); - } + } + + // UI + { + auto getter = []()->bool { return qApp->getSettingConstrainToolbarPosition(); }; + auto setter = [](bool value) { qApp->setSettingConstrainToolbarPosition(!value); }; + preferences->addPreference(new CheckPreference("UI", "Constrain Toolbar Position to Horizontal Center", getter, setter)); + } // Snapshots static const QString SNAPSHOTS { "Snapshots" };