diff --git a/interface/resources/qml/hifi/tablet/InputConfiguration.qml b/interface/resources/qml/hifi/tablet/InputConfiguration.qml new file mode 100644 index 0000000000..fc65f8a3d4 --- /dev/null +++ b/interface/resources/qml/hifi/tablet/InputConfiguration.qml @@ -0,0 +1,95 @@ +// +// Created by Dante Ruiz on 6/1/17. +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.5 +import QtGraphicalEffects 1.0 +import "../../styles-uit" +import "../../controls" +import "../../controls-uit" as HifiControls + +Rectangle { + id: inputConfiguration + anchors.fill: parent + + HifiConstants { id: hifi } + + color: hifi.colors.baseGray + + Rectangle { + width: inputConfiguration.width + height: 1 + color: hifi.colors.baseGrayShadow + x: -hifi.dimensions.contentMargin.x + } + + RalewayBold { + id: header + text: "Controller Settings" + size: 22 + color: "white" + + anchors.top: inputConfiguration.top + anchors.left: inputConfiguration.left + anchors.leftMargin: 20 + anchors.topMargin: 20 + } + + + Separator { + id: headerSeparator + width: inputConfiguration.width + anchors.top: header.bottom + anchors.topMargin: 10 + } + + RalewayBold { + id: configuration + text: "SELECT DEVICE" + size: 18 + color: hifi.colors.lightGray + + + anchors.top: headerSeparator.bottom + anchors.left: inputConfiguration.left + anchors.leftMargin: 20 + anchors.topMargin: 20 + } + + Row { + id: configRow + + anchors.top: configuration.bottom + anchors.topMargin: 20 + anchors.left: configuration.left + anchors.leftMargin: 40 + spacing: 10 + HifiControls.ComboBox { + id: box + width: 160 + + colorScheme: hifi.colorSchemes.dark + model: inputPlugins() + } + + HifiControls.CheckBox { + onClicked: { + if (checked) { + console.log("button checked"); + Tablet.getTablet(""); + InputConfiguration.inputPlugins(); + } + } + } + + } + + function inputPlugins() { + var plugins = ["temp"]; + return plugins + } +} diff --git a/interface/resources/qml/styles-uit/Separator.qml b/interface/resources/qml/styles-uit/Separator.qml new file mode 100644 index 0000000000..1067de3b29 --- /dev/null +++ b/interface/resources/qml/styles-uit/Separator.qml @@ -0,0 +1,26 @@ +// +// Created by Dante Ruiz on 6/1/17. +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.5 +import QtGraphicalEffects 1.0 + +Item { + Rectangle { + id: shadows + width: parent.width + height: 2 + color: hifi.colors.baseGrayShadow + } + + Rectangle { + width: parent.width + height: 1 + anchors.top: shadows.bottom + color: hifi.colors.baseGrayHighlight + } +} diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 46c4c0bd4e..eda3a14533 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -79,6 +79,7 @@ #include #include #include +#include #include #include #include @@ -522,6 +523,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { STATE_CAMERA_FIRST_PERSON, STATE_CAMERA_THIRD_PERSON, STATE_CAMERA_ENTITY, STATE_CAMERA_INDEPENDENT, STATE_SNAP_TURN, STATE_ADVANCED_MOVEMENT_CONTROLS, STATE_GROUNDED, STATE_NAV_FOCUSED } }); DependencyManager::set(); + DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); DependencyManager::set(true, qApp, qApp); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 4138798484..8fd560dcf3 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -311,6 +312,12 @@ Menu::Menu() { QString("../../hifi/tablet/TabletLodPreferences.qml"), "LodPreferencesDialog"); }); + action = addActionToQMenuAndActionHash(settingsMenu, "InputConfiguration"); + connect(action, &QAction::triggered, [] { + auto tablet = DependencyManager::get()->getTablet("com.highfidelity.interface.tablet.system"); + tablet->loadQMLSource("InputConfiguration.qml"); + }); + // Settings > Control with Speech [advanced] #if defined(Q_OS_MAC) || defined(Q_OS_WIN) auto speechRecognizer = DependencyManager::get(); diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp index 75c793bf77..8dcbc254f6 100644 --- a/interface/src/ui/overlays/Web3DOverlay.cpp +++ b/interface/src/ui/overlays/Web3DOverlay.cpp @@ -51,6 +51,7 @@ #include "ui/AvatarInputs.h" #include "avatar/AvatarManager.h" #include "scripting/GlobalServicesScriptingInterface.h" +#include #include "ui/Snapshot.h" static const float DPI = 30.47f; @@ -201,7 +202,7 @@ void Web3DOverlay::loadSourceURL() { _webSurface->getRootContext()->setContextProperty("GlobalServices", GlobalServicesScriptingInterface::getInstance()); _webSurface->getRootContext()->setContextProperty("AvatarList", DependencyManager::get().data()); _webSurface->getRootContext()->setContextProperty("DialogsManager", DialogsManagerScriptingInterface::getInstance()); - + _webSurface->getRootContext()->setContextProperty("InputConfiguration", DependencyManager::get().data()); _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../"); tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data()); diff --git a/libraries/plugins/src/plugins/.#PluginManager.h b/libraries/plugins/src/plugins/.#PluginManager.h new file mode 100644 index 0000000000..6d0a3bdbac Binary files /dev/null and b/libraries/plugins/src/plugins/.#PluginManager.h differ diff --git a/libraries/controllers/src/controllers/InputConfiguration.cpp b/libraries/plugins/src/plugins/InputConfiguration.cpp similarity index 50% rename from libraries/controllers/src/controllers/InputConfiguration.cpp rename to libraries/plugins/src/plugins/InputConfiguration.cpp index 863bdbf675..c15316406b 100644 --- a/libraries/controllers/src/controllers/InputConfiguration.cpp +++ b/libraries/plugins/src/plugins/InputConfiguration.cpp @@ -9,9 +9,18 @@ #include "InputConfiguration.h" -namespace controller { +#include "PluginManager.h" - InputConfiguration::InputConfiguration() { +InputConfiguration::InputConfiguration() { - } } + +void InputConfiguration::inputPlugins() { + PluginManager* inputPlugin = PluginManager::getInstance(); +} + +void InputConfiguration::enabledInputPlugins() { + qDebug() << "getting enabled plugins"; +} + + diff --git a/libraries/controllers/src/controllers/InputConfiguration.h b/libraries/plugins/src/plugins/InputConfiguration.h similarity index 63% rename from libraries/controllers/src/controllers/InputConfiguration.h rename to libraries/plugins/src/plugins/InputConfiguration.h index 0a7f01a7a1..ba6e0b7872 100644 --- a/libraries/controllers/src/controllers/InputConfiguration.h +++ b/libraries/plugins/src/plugins/InputConfiguration.h @@ -11,16 +11,17 @@ #include +#include #include -#include -namespace controller { - - class InputConfiguration : public QObject, public Dependency { - public: - InputConfiguration(); - ~InputConfiguration() {} - }; -} +class InputConfiguration : public QObject, public Dependency { + Q_OBJECT +public: + InputConfiguration(); + + void inputPlugins(); +public slots: + void enabledInputPlugins(); +}; #endif