summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Application/DataInputDlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Studio/Application/DataInputDlg.cpp')
-rw-r--r--src/Authoring/Studio/Application/DataInputDlg.cpp45
1 files changed, 37 insertions, 8 deletions
diff --git a/src/Authoring/Studio/Application/DataInputDlg.cpp b/src/Authoring/Studio/Application/DataInputDlg.cpp
index 57c16e4d..c110452d 100644
--- a/src/Authoring/Studio/Application/DataInputDlg.cpp
+++ b/src/Authoring/Studio/Application/DataInputDlg.cpp
@@ -89,12 +89,7 @@ void CDataInputDlg::initDialog()
if (!m_dataInput->name.isEmpty()) {
m_name = m_dataInput->name;
- m_type = m_dataInput->type;
- m_ui->comboBoxTypeList->setCurrentIndex(m_dataInput->type);
- m_ui->lineEditInputName->setText(m_dataInput->name);
- if (m_type == DataTypeRangedNumber) {
- m_ui->doubleSpinBoxMin->setValue(m_dataInput->minValue);
- m_ui->doubleSpinBoxMax->setValue(m_dataInput->maxValue);
+ if (m_dataInput->type == DataTypeRangedNumber) {
m_min = m_dataInput->minValue;
m_max = m_dataInput->maxValue;
}
@@ -105,8 +100,18 @@ void CDataInputDlg::initDialog()
#endif
} else {
m_name = getUniqueId(tr("newDataInput"));
- m_ui->comboBoxTypeList->setCurrentIndex(m_dataInput->type);
- m_ui->lineEditInputName->setText(m_name);
+ if (m_dataInput->type == DataTypeRangedNumber) {
+ m_dataInput->minValue = m_min;
+ m_dataInput->maxValue = m_max;
+ }
+ }
+
+ m_type = m_dataInput->type;
+ m_ui->comboBoxTypeList->setCurrentIndex(m_type);
+ m_ui->lineEditInputName->setText(m_name);
+ if (m_type == DataTypeRangedNumber) {
+ m_ui->doubleSpinBoxMin->setValue(m_dataInput->minValue);
+ m_ui->doubleSpinBoxMax->setValue(m_dataInput->maxValue);
}
updateVisibility(m_dataInput->type);
@@ -234,3 +239,27 @@ const bool CDataInputDlg::isEquivalentDataType(int dlgType,
return false;
}
+
+QVector<EDataType> CDataInputDlg::getAcceptedTypes(qt3dsdm::DataModelDataType::Value dmType)
+{
+ // The order also specifies the priority for default type in case of multiple accepted types
+ static const QVector<EDataType> allDataTypes = {
+ EDataType::DataTypeString,
+ EDataType::DataTypeFloat,
+ EDataType::DataTypeVector3,
+ EDataType::DataTypeVector2,
+ EDataType::DataTypeRangedNumber,
+ EDataType::DataTypeBoolean,
+#ifdef DATAINPUT_EVALUATOR_ENABLED
+ EDataType::DataTypeEvaluator,
+#endif
+ EDataType::DataTypeVariant
+ };
+
+ QVector<EDataType> acceptedTypes;
+ for (auto candidate : allDataTypes) {
+ if (isEquivalentDataType(candidate, dmType))
+ acceptedTypes.append(candidate);
+ }
+ return acceptedTypes;
+}