diff --git a/interface/resources/qml/dialogs/CustomQueryDialog.qml b/interface/resources/qml/dialogs/CustomQueryDialog.qml index 5351671837..a721dfe4e3 100644 --- a/interface/resources/qml/dialogs/CustomQueryDialog.qml +++ b/interface/resources/qml/dialogs/CustomQueryDialog.qml @@ -34,6 +34,21 @@ ModalWindow { property var textInput; property var comboBox; property var checkBox; + onTextInputChanged: { + if (textInput) { + textField.text = textInput.text; + } + } + onComboBoxChanged: { + if (comboBox) { + comboBoxField.currentIndex = comboBox.index; + } + } + onCheckBoxChanged: { + if (checkBox) { + checkBoxField.checked = checkBox.checked; + } + } property var warning: ""; property var result; @@ -52,15 +67,15 @@ ModalWindow { function updateCheckbox() { if (checkBox.disableForItems) { - var currentTextInDisableList = false; + var currentItemInDisableList = false; for (var i in checkBox.disableForItems) { - if (comboBoxField.currentText === checkBox.disableForItems[i]) { - currentTextInDisableList = true; + if (comboBoxField.currentIndex === checkBox.disableForItems[i]) { + currentItemInDisableList = true; break; } } - if (currentTextInDisableList) { + if (currentItemInDisableList) { checkBoxField.enabled = false; if (checkBox.checkStateOnDisable !== null && checkBox.checkStateOnDisable !== undefined) { root.implicitCheckState = checkBoxField.checked; @@ -245,8 +260,8 @@ ModalWindow { result.textInput = textField.text; } if (comboBox) { - result.comboBox = comboBoxField.currentText; - result.comboBoxIndex = comboBoxField.currentIndex; + result.comboBox = comboBoxField.currentIndex; + result.comboBoxText = comboBoxField.currentText; } if (checkBox) { result.checkBox = checkBoxField.enabled ? checkBoxField.checked : null; diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 86aaa7adc1..1735244438 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -246,10 +246,18 @@ var toolBar = (function () { toolBar.writeProperty("shown", false); addButton("newModelButton", "model-01.svg", function () { - var SHAPE_TYPE_NONE_TEXT = "No Collision"; - var SHAPE_TYPE_SIMPLE_HULL_TEXT = "Basic - Whole model"; - var SHAPE_TYPE_SIMPLE_COMPOUND_TEXT = "Good - Sub-meshes"; - var SHAPE_TYPE_STATIC_MESH_TEXT = "Exact - All polygons"; + var SHAPE_TYPE_NONE = 0; + var SHAPE_TYPE_SIMPLE_HULL = 1; + var SHAPE_TYPE_SIMPLE_COMPOUND = 2; + var SHAPE_TYPE_STATIC_MESH = 3; + + var SHAPE_TYPES = []; + SHAPE_TYPES[SHAPE_TYPE_NONE] = "No Collision"; + SHAPE_TYPES[SHAPE_TYPE_SIMPLE_HULL] = "Basic - Whole model"; + SHAPE_TYPES[SHAPE_TYPE_SIMPLE_COMPOUND] = "Good - Sub-meshes"; + SHAPE_TYPES[SHAPE_TYPE_STATIC_MESH] = "Exact - All polygons"; + + var SHAPE_TYPE_DEFAULT = SHAPE_TYPE_STATIC_MESH; var DYNAMIC_DEFAULT = false; var result = Window.customPrompt({ textInput: { @@ -257,18 +265,14 @@ var toolBar = (function () { }, comboBox: { label: "Automatic Collisions", - items: [ - SHAPE_TYPE_NONE_TEXT, - SHAPE_TYPE_SIMPLE_HULL_TEXT, - SHAPE_TYPE_SIMPLE_COMPOUND_TEXT, - SHAPE_TYPE_STATIC_MESH_TEXT - ] + index: SHAPE_TYPE_DEFAULT, + items: SHAPE_TYPES }, checkBox: { label: "Dynamic", checked: DYNAMIC_DEFAULT, disableForItems: [ - SHAPE_TYPE_STATIC_MESH_TEXT + SHAPE_TYPE_STATIC_MESH ], checkStateOnDisable: false, warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic" @@ -279,13 +283,13 @@ var toolBar = (function () { var url = result.textInput; var shapeType; switch (result.comboBox) { - case SHAPE_TYPE_SIMPLE_HULL_TEXT: + case SHAPE_TYPE_SIMPLE_HULL: shapeType = "simple-hull"; break; - case SHAPE_TYPE_SIMPLE_COMPOUND_TEXT: + case SHAPE_TYPE_SIMPLE_COMPOUND: shapeType = "simple-compound"; break; - case SHAPE_TYPE_STATIC_MESH_TEXT: + case SHAPE_TYPE_STATIC_MESH: shapeType = "static-mesh"; break; default: