Added support for enum properties

This commit is contained in:
parax0
2015-10-19 04:35:05 -06:00
parent 0df6ca100b
commit 1dcfa63f3c
10 changed files with 283 additions and 19 deletions

View File

@@ -135,6 +135,27 @@ void WPropertyEditor::CreateEditor()
break;
}
// Enum - QComboBox
case eEnumProperty:
{
CEnumProperty *pEnumCast = static_cast<CEnumProperty*>(mpProperty);
CEnumTemplate *pTemplate = static_cast<CEnumTemplate*>(pEnumCast->Template());
QComboBox *pComboBox = new QComboBox(this);
for (u32 iEnum = 0; iEnum < pTemplate->NumEnumerators(); iEnum++)
{
std::string name = pTemplate->EnumeratorName(iEnum);
pComboBox->addItem(QString::fromStdString(name));
}
pComboBox->setCurrentIndex(pEnumCast->Get());
pComboBox->setFocusPolicy(Qt::StrongFocus);
pComboBox->setContextMenuPolicy(Qt::NoContextMenu);
mUI.EditorWidget = pComboBox;
break;
}
// Float - WDraggableSpinBox
case eFloatProperty:
{
@@ -199,11 +220,6 @@ void WPropertyEditor::CreateEditor()
break;
}
// Enum - todo (will be QComboBox)
case eEnumProperty:
mUI.EditorWidget = new QLabel("[placeholder]", this);
break;
// File - WResourceSelector
case eFileProperty:
{
@@ -311,6 +327,14 @@ void WPropertyEditor::UpdateEditor()
break;
}
case eEnumProperty:
{
CEnumProperty *pEnumCast = static_cast<CEnumProperty*>(mpProperty);
QComboBox *pComboBox = static_cast<QComboBox*>(mUI.EditorWidget);
pComboBox->setCurrentIndex(pEnumCast->Get());
break;
}
case eFloatProperty:
{
CFloatProperty *pFloatCast = static_cast<CFloatProperty*>(mpProperty);
@@ -350,9 +374,6 @@ void WPropertyEditor::UpdateEditor()
break;
}
case eEnumProperty:
break;
case eFileProperty:
{
CFileProperty *pFileCast = static_cast<CFileProperty*>(mpProperty);