summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Qt3DStudio/Palettes/Inspector/DataInputChooser.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Qt3DStudio/Palettes/Inspector/DataInputChooser.qml')
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Inspector/DataInputChooser.qml212
1 files changed, 212 insertions, 0 deletions
diff --git a/src/Authoring/Qt3DStudio/Palettes/Inspector/DataInputChooser.qml b/src/Authoring/Qt3DStudio/Palettes/Inspector/DataInputChooser.qml
new file mode 100644
index 00000000..8b522e91
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/Palettes/Inspector/DataInputChooser.qml
@@ -0,0 +1,212 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt 3D Studio.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.8
+import QtQuick.Controls 2.1
+import QtQuick.Layouts 1.3
+import "../controls"
+
+Rectangle {
+ id: root
+
+ color: _backgroundColor
+
+ border.color: _studioColor3
+
+ StyledLabel {
+ id: title
+ color: _dataInputColor
+ text: qsTr("Select Controlling Data Input")
+ leftPadding: 8
+ height: 20
+ }
+
+ StyledMenuSeparator {
+ id: separator
+ anchors.top: title.bottom
+ leftPadding: 8
+ rightPadding: 8
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.topMargin: 30
+ spacing: 10
+ RowLayout {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ StyledComboBox {
+ id: filterCombo
+ readonly property int numOfFixedChoices: 2
+ Layout.leftMargin: 8
+ Layout.preferredWidth: 150
+
+ // Data type list must match with EDataType enum so we can use enum
+ // index directly without going through string -> int table lookup
+ model: [qsTr("[Compatible types]"), qsTr("[All types]"), qsTr("Boolean"),
+ qsTr("Float"), qsTr("Ranged Number"), qsTr("String"), qsTr("Variant"),
+ qsTr("Vector2"), qsTr("Vector3"), qsTr("Vector4")]
+
+ onCurrentIndexChanged: _parentView.setTypeFilter(currentIndex - numOfFixedChoices);
+
+ MouseArea {
+ id: filterBoxMouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ // pass through mouse click to Combobox
+ onPressed: {
+ mouse.accepted = false;
+ }
+ }
+
+ StyledTooltip {
+ text: qsTr("Filter the list by Data Input type or\n"
+ + "by compatibility with current property")
+ enabled: filterBoxMouseArea.containsMouse && !filterCombo.popup.activeFocus
+ }
+ Connections {
+ target: _parentView
+ // Filter type can be changed also from cpp side
+ onFilterChanged: {
+ filterCombo.currentIndex = _parentView.typeFilter
+ + filterCombo.numOfFixedChoices;
+ }
+ }
+ }
+
+ StyledTextField {
+ Layout.leftMargin: 8
+ Layout.rightMargin: 8
+ Layout.preferredWidth: 200
+ Layout.fillWidth: true
+ id: searchField
+ placeholderText: qsTr("[search]")
+ horizontalAlignment: TextInput.AlignLeft
+
+ property string value
+
+ rightPadding: clearText.width + 2
+
+ onTextChanged: _parentView.setSearchString(text);
+
+ MouseArea {
+ id: searchMouseArea
+ anchors.fill: parent
+ propagateComposedEvents: true
+ hoverEnabled: true
+ onClicked: {
+ searchField.forceActiveFocus();
+ }
+ }
+
+ StyledTooltip {
+ id: searchTt
+ text: qsTr("Search for Data Input")
+ enabled: searchMouseArea.containsMouse && !searchField.focus
+ }
+
+ Image {
+ anchors { verticalCenter: parent.verticalCenter; right: parent.right; }
+ id: clearText
+ fillMode: Image.PreserveAspectFit
+ smooth: true;
+ source: _resDir + "add.png"
+ rotation: 45
+
+ MouseArea {
+ id: clear
+ anchors {
+ horizontalCenter: parent.horizontalCenter;
+ verticalCenter: parent.verticalCenter
+ }
+ height: clearText.height; width: clearText.height
+ onClicked: {
+ searchField.text = ""
+ searchField.forceActiveFocus()
+ }
+ }
+ }
+ }
+ }
+
+ ListView {
+ id: listView
+ Layout.leftMargin: 8
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ boundsBehavior: Flickable.StopAtBounds
+ spacing: 4
+ clip: true
+
+ ScrollBar.vertical: ScrollBar {}
+
+ model: _dataInputSelectModel
+
+ delegate: Row {
+ height: 20
+ Image {
+ // do not show item icon for fixed items
+ visible: index >= _dataInputSelectModel.fixedItemCount
+ source: index === _parentView.selected
+ ? _dataInputSelectModel.getActiveIconPath()
+ : _dataInputSelectModel.getInactiveIconPath();
+ }
+ StyledLabel {
+ leftPadding: 5
+ text: model.display
+ width: listView.width / 2;
+ color: (index >= _dataInputSelectModel.fixedItemCount)
+ && (index === _parentView.selected)
+ ? _dataInputColor : _textColor;
+
+ MouseArea {
+ anchors.fill: parent
+ acceptedButtons: Qt.LeftButton
+ onClicked: _parentView.setSelection(index)
+ }
+ }
+ StyledLabel {
+ leftPadding: 5
+ visible: index >= _dataInputSelectModel.fixedItemCount
+ text: "(" + model.datatype + ")"
+ color: (index >= _dataInputSelectModel.fixedItemCount)
+ && (index === _parentView.selected)
+ ? _dataInputColor : _textColor;
+
+ MouseArea {
+ anchors.fill: parent
+ acceptedButtons: Qt.LeftButton
+ onClicked: _parentView.setSelection(index)
+ }
+ }
+ }
+ }
+ }
+}
+