From 9648dbb97796c27abe3fb68db94d27f223baa645 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Sat, 2 Sep 2023 10:21:25 -0700 Subject: [PATCH] Reorganized properties tree. --- qt/lc_qpropertiestree.cpp | 292 +++++++++++++++++--------------------- qt/lc_qpropertiestree.h | 127 ++++++++--------- 2 files changed, 190 insertions(+), 229 deletions(-) diff --git a/qt/lc_qpropertiestree.cpp b/qt/lc_qpropertiestree.cpp index a06f3276..b25f6bff 100644 --- a/qt/lc_qpropertiestree.cpp +++ b/qt/lc_qpropertiestree.cpp @@ -430,19 +430,8 @@ QWidget *lcQPropertiesTree::createEditor(QWidget *parent, QTreeWidgetItem *item) switch (propertyType) { case PropertyGroup: - return nullptr; - case PropertyBool: - { - QCheckBox *editor = new QCheckBox(parent); - bool value = item->data(0, PropertyValueRole).toBool(); - - editor->setChecked(value); - - connect(editor, SIGNAL(toggled(bool)), this, SLOT(slotToggled(bool))); - - return editor; - } + return nullptr; case PropertyFloat: { @@ -528,9 +517,15 @@ QWidget *lcQPropertiesTree::createEditor(QWidget *parent, QTreeWidgetItem *item) { QComboBox* editor = new QComboBox(parent); - if (item == mLightTypeItem) + if (item == mCameraProjectionItem) + { + editor->addItems( { tr("Perspective"), tr("Orthographic") } ); + } + else if (item == mLightTypeItem) + { for (int LightTypeIndex = 0; LightTypeIndex < static_cast(lcLightType::Count); LightTypeIndex++) editor->addItem(lcLight::GetLightTypeString(static_cast(LightTypeIndex))); + } int value = item->data(0, PropertyValueRole).toInt(); editor->setCurrentIndex(value); @@ -578,7 +573,7 @@ QWidget *lcQPropertiesTree::createEditor(QWidget *parent, QTreeWidgetItem *item) return editor; } - case PropertyLightColor: + case PropertyColor: { QPushButton *Editor = new QPushButton(parent); QColor Value = item->data(0, PropertyValueRole).value(); @@ -590,7 +585,7 @@ QWidget *lcQPropertiesTree::createEditor(QWidget *parent, QTreeWidgetItem *item) return Editor; } - case PropertyColor: + case PropertyPieceColor: { QPushButton *editor = new QPushButton(parent); int value = item->data(0, PropertyValueRole).toInt(); @@ -685,19 +680,7 @@ void lcQPropertiesTree::slotToggled(bool Value) lcModel* Model = gMainWindow->GetActiveModel(); lcObject* Focus = Model->GetFocusObject(); - if (mWidgetMode == LC_PROPERTY_WIDGET_CAMERA) - { - if (Focus && Focus->IsCamera()) - { - lcCamera* Camera = (lcCamera*)Focus; - - if (Item == cameraOrtho) - { - Model->SetCameraOrthographic(Camera, Value); - } - } - } - else if (mWidgetMode == LC_PROPERTY_WIDGET_LIGHT) + if (mWidgetMode == LC_PROPERTY_WIDGET_LIGHT) { lcLight* Light = (Focus && Focus->IsLight()) ? (lcLight*)Focus : nullptr; @@ -866,7 +849,7 @@ void lcQPropertiesTree::slotReturnPressed() Model->SetCameraZFar(Camera, Value); } - else if (Item == cameraName) + else if (Item == mCameraNameItem) { QString Value = Editor->text(); @@ -916,20 +899,6 @@ void lcQPropertiesTree::slotReturnPressed() Model->MoveSelectedObjects(Distance, Distance, false, false, true, true); } - else if (Item == lightColorR || Item == lightColorG || Item == lightColorB) - { - lcVector3 Color = Light->GetColor(); - float Value = lcParseValueLocalized(Editor->text()); - - if (Item == lightColorR) - Color[0] = Value; - else if (Item == lightColorG) - Color[2] = Value; - else if (Item == lightColorB) - Color[1] = Value; - - Model->SetLightColor(Light, Color); - } else if (Item == lightFactorA || Item == lightFactorB) { float Value = lcParseValueLocalized(Editor->text()); @@ -994,7 +963,7 @@ void lcQPropertiesTree::slotReturnPressed() Model->UpdateLight(Light, Props, LC_LIGHT_AREA_GRID); } - else if (Item == lightName) + else if (Item == mLightNameItem) { QString Value = Editor->text(); @@ -1011,14 +980,14 @@ void lcQPropertiesTree::slotSetValue(int Value) if (mWidgetMode == LC_PROPERTY_WIDGET_PIECE) { - if (Item == partColor) + if (Item == mPieceColorItem) { Model->SetSelectedPiecesColorIndex(Value); QPushButton *editor = (QPushButton*)mDelegate->editor(); updateColorEditor(editor, Value); } - else if (Item == partID) + else if (Item == mPieceIdItem) { QComboBox *editor = (QComboBox*)sender(); @@ -1033,6 +1002,20 @@ void lcQPropertiesTree::slotSetValue(int Value) gMainWindow->PreviewPiece(Info->mFileName, ColorCode, false); } } + else if (mWidgetMode == LC_PROPERTY_WIDGET_CAMERA) + { + lcObject* Focus = Model->GetFocusObject(); + + if (Focus && Focus->IsCamera()) + { + lcCamera* Camera = (lcCamera*)Focus; + + if (Item == mCameraProjectionItem) + { + Model->SetCameraOrthographic(Camera, Value == 1); + } + } + } else if (mWidgetMode == LC_PROPERTY_WIDGET_LIGHT) { lcObject* Focus = Model->GetFocusObject(); @@ -1137,7 +1120,10 @@ QTreeWidgetItem *lcQPropertiesTree::addProperty(QTreeWidgetItem *parent, const Q newItem = new QTreeWidgetItem(this, QStringList(label)); newItem->setData(0, PropertyTypeRole, QVariant(propertyType)); - newItem->setFlags(newItem->flags() | Qt::ItemIsEditable); + + if (propertyType != PropertyFloatReadOnly) + newItem->setFlags(newItem->flags() | Qt::ItemIsEditable); + newItem->setExpanded(true); if (propertyType == PropertyGroup) @@ -1146,9 +1132,6 @@ QTreeWidgetItem *lcQPropertiesTree::addProperty(QTreeWidgetItem *parent, const Q newItem->setIcon(0, m_expandIcon); } - if (propertyType == PropertyFloatReadOnly) - newItem->setFlags(newItem->flags() & ~Qt::ItemIsEditable); - return newItem; } @@ -1156,6 +1139,7 @@ void lcQPropertiesTree::SetEmpty() { clear(); + mPieceAttributesItem = nullptr; partPosition = nullptr; partPositionX = nullptr; partPositionY = nullptr; @@ -1168,8 +1152,8 @@ void lcQPropertiesTree::SetEmpty() partShow = nullptr; partHide = nullptr; partAppearance = nullptr; - partColor = nullptr; - partID = nullptr; + mPieceColorItem = nullptr; + mPieceIdItem = nullptr; cameraPosition = nullptr; cameraPositionX = nullptr; @@ -1183,12 +1167,12 @@ void lcQPropertiesTree::SetEmpty() cameraUpX = nullptr; cameraUpY = nullptr; cameraUpZ = nullptr; - cameraSettings = nullptr; - cameraOrtho = nullptr; + mCameraAttributesItem = nullptr; + mCameraProjectionItem = nullptr; cameraFOV = nullptr; cameraNear = nullptr; cameraFar = nullptr; - cameraName = nullptr; + mCameraNameItem = nullptr; lightConfiguration = nullptr; lightPosition = nullptr; @@ -1199,12 +1183,8 @@ void lcQPropertiesTree::SetEmpty() lightTargetX = nullptr; lightTargetY = nullptr; lightTargetZ = nullptr; - lightColor = nullptr; - lightColorIcon = nullptr; - lightColorR = nullptr; - lightColorG = nullptr; - lightColorB = nullptr; - lightProperties = nullptr; + mLightColorItem = nullptr; + mLightAttributesItem = nullptr; lightDiffuse = nullptr; lightSpecular = nullptr; lightCutoff = nullptr; @@ -1213,7 +1193,7 @@ void lcQPropertiesTree::SetEmpty() mLightTypeItem = nullptr; lightFactorA = nullptr; lightFactorB = nullptr; - lightName = nullptr; + mLightNameItem = nullptr; lightSpotSize = nullptr; lightShape = nullptr; lightFormat = nullptr; @@ -1233,6 +1213,14 @@ void lcQPropertiesTree::SetPiece(const lcArray& Selection, lcObject* { SetEmpty(); + mPieceAttributesItem = addProperty(nullptr, tr("Piece Attributes"), PropertyGroup); + mPieceIdItem = addProperty(mPieceAttributesItem, tr("Part"), PropertyPart); + mPieceColorItem = addProperty(mPieceAttributesItem, tr("Color"), PropertyPieceColor); + + partVisibility = addProperty(nullptr, tr("Visible Steps"), PropertyGroup); + partShow = addProperty(partVisibility, tr("Show"), PropertyStep); + partHide = addProperty(partVisibility, tr("Hide"), PropertyStep); + partPosition = addProperty(nullptr, tr("Position"), PropertyGroup); partPositionX = addProperty(partPosition, tr("X"), PropertyFloat); partPositionY = addProperty(partPosition, tr("Y"), PropertyFloat); @@ -1243,14 +1231,6 @@ void lcQPropertiesTree::SetPiece(const lcArray& Selection, lcObject* partRotationY = addProperty(partRotation, tr("Y"), PropertyFloat); partRotationZ = addProperty(partRotation, tr("Z"), PropertyFloat); - partVisibility = addProperty(nullptr, tr("Visible Steps"), PropertyGroup); - partShow = addProperty(partVisibility, tr("Show"), PropertyStep); - partHide = addProperty(partVisibility, tr("Hide"), PropertyStep); - - partAppearance = addProperty(nullptr, tr("Appearance"), PropertyGroup); - partColor = addProperty(partAppearance, tr("Color"), PropertyColor); - partID = addProperty(partAppearance, tr("Part"), PropertyPart); - mWidgetMode = LC_PROPERTY_WIDGET_PIECE; } @@ -1349,14 +1329,14 @@ void lcQPropertiesTree::SetPiece(const lcArray& Selection, lcObject* painter.drawRect(0, 0, img.width() - 1, img.height() - 1); painter.end(); - partColor->setIcon(1, QIcon(QPixmap::fromImage(img))); - partColor->setText(1, color->Name); - partColor->setData(0, PropertyValueRole, ColorIndex); + mPieceColorItem->setIcon(1, QIcon(QPixmap::fromImage(img))); + mPieceColorItem->setText(1, color->Name); + mPieceColorItem->setData(0, PropertyValueRole, ColorIndex); QString text = Info ? Info->m_strDescription : QString(); - partID->setText(1, text); - partID->setToolTip(1, text); - partID->setData(0, PropertyValueRole, QVariant::fromValue((void*)Info)); + mPieceIdItem->setText(1, text); + mPieceIdItem->setToolTip(1, text); + mPieceIdItem->setData(0, PropertyValueRole, QVariant::fromValue((void*)Info)); } void lcQPropertiesTree::SetCamera(lcObject* Focus) @@ -1365,6 +1345,13 @@ void lcQPropertiesTree::SetCamera(lcObject* Focus) { SetEmpty(); + mCameraAttributesItem = addProperty(nullptr, tr("Camera Attributes"), PropertyGroup); + mCameraNameItem = addProperty(mCameraAttributesItem, tr("Name"), PropertyString); + mCameraProjectionItem = addProperty(mCameraAttributesItem, tr("Projection"), PropertyStringList); + cameraFOV = addProperty(mCameraAttributesItem, tr("FOV"), PropertyFloat); + cameraNear = addProperty(mCameraAttributesItem, tr("Near"), PropertyFloat); + cameraFar = addProperty(mCameraAttributesItem, tr("Far"), PropertyFloat); + cameraPosition = addProperty(nullptr, tr("Position"), PropertyGroup); cameraPositionX = addProperty(cameraPosition, tr("X"), PropertyFloat); cameraPositionY = addProperty(cameraPosition, tr("Y"), PropertyFloat); @@ -1380,13 +1367,6 @@ void lcQPropertiesTree::SetCamera(lcObject* Focus) cameraUpY = addProperty(cameraUp, tr("Y"), PropertyFloat); cameraUpZ = addProperty(cameraUp, tr("Z"), PropertyFloat); - cameraSettings = addProperty(nullptr, tr("Up"), PropertyGroup); - cameraOrtho = addProperty(cameraSettings, tr("Orthographic"), PropertyBool); - cameraFOV = addProperty(cameraSettings, tr("FOV"), PropertyFloat); - cameraNear = addProperty(cameraSettings, tr("Near"), PropertyFloat); - cameraFar = addProperty(cameraSettings, tr("Far"), PropertyFloat); - cameraName = addProperty(cameraSettings, tr("Name"), PropertyString); - mWidgetMode = LC_PROPERTY_WIDGET_CAMERA; } @@ -1436,8 +1416,8 @@ void lcQPropertiesTree::SetCamera(lcObject* Focus) cameraUpZ->setText(1, lcFormatValueLocalized(UpVector[2])); cameraUpZ->setData(0, PropertyValueRole, UpVector[2]); - cameraOrtho->setText(1, Ortho ? "True" : "False"); - cameraOrtho->setData(0, PropertyValueRole, Ortho); + mCameraProjectionItem->setText(1, Ortho ? tr("Orthographic") : tr("Perspective")); + mCameraProjectionItem->setData(0, PropertyValueRole, Ortho); cameraFOV->setText(1, lcFormatValueLocalized(FoV)); cameraFOV->setData(0, PropertyValueRole, FoV); cameraNear->setText(1, lcFormatValueLocalized(ZNear)); @@ -1445,8 +1425,8 @@ void lcQPropertiesTree::SetCamera(lcObject* Focus) cameraFar->setText(1, lcFormatValueLocalized(ZFar)); cameraFar->setData(0, PropertyValueRole, ZFar); - cameraName->setText(1, Name); - cameraName->setData(0, PropertyValueRole, Name); + mCameraNameItem->setText(1, Name); + mCameraNameItem->setData(0, PropertyValueRole, Name); } void lcQPropertiesTree::SetLight(lcObject* Focus) @@ -1593,6 +1573,60 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) { SetEmpty(); + // Attributes + mLightAttributesItem = addProperty(nullptr, tr("Light Attributes"), PropertyGroup); + mLightNameItem = addProperty(mLightAttributesItem, tr("Name"), PropertyString); + mLightTypeItem = addProperty(mLightAttributesItem, tr("Type"), PropertyStringList); + mLightColorItem = addProperty(mLightAttributesItem, tr("Color"), PropertyColor); + + lightShadowless = addProperty(mLightAttributesItem, tr("Cast Shadows"), PropertyBool); + lightExponent = addProperty(mLightAttributesItem, ExponentLabel, PropertyFloat); + + if ((LightType == lcLightType::Point || LightType == lcLightType::Directional) && !POVRayLight) + lightFactorA = addProperty(mLightAttributesItem, FactorALabel, PropertyFloat); + + if (LightType == lcLightType::Spot) + { + lightSpotSize = addProperty(mLightAttributesItem, tr("Spot Size (°)"), SpotSizeProperty); + lightFactorA = addProperty(mLightAttributesItem, FactorALabel, PropertyFloatLightSpotSize); + + if (!POVRayLight) + lightFactorB = addProperty(mLightAttributesItem, tr("Spot Blend"), PropertyFloat); + else + { + lightSpotFalloff = addProperty(mLightAttributesItem, tr("Spot Falloff (°)"), PropertyFloatLightSpotFalloff); + lightSpotTightness = addProperty(mLightAttributesItem, tr("Spot Tightness"), PropertyFloat); + } + } + else if (LightType == lcLightType::Area) + { + lightShape = addProperty(mLightAttributesItem, tr("Shape"), PropertyLightShape); + lightFactorA = addProperty(mLightAttributesItem, FactorALabel, PropertyFloat); + + if (ShapeIndex == LC_LIGHT_SHAPE_RECTANGLE || ShapeIndex == LC_LIGHT_SHAPE_ELLIPSE || POVRayLight) + lightFactorB = addProperty(mLightAttributesItem, tr("Height"), PropertyFloat); + else + FactorAToolTip = tr("The size of the area light grid."); + + if (POVRayLight) + { + lightAreaGridRows = addProperty(mLightAttributesItem, tr("Grid Rows"), PropertyFloat); + lightAreaGridColumns = addProperty(mLightAttributesItem, tr("Grid Columns"), PropertyFloat); + } + } + + if (!POVRayLight) + { + if (LightType != lcLightType::Directional) + { + lightEnableCutoff = addProperty(mLightAttributesItem, tr("Cutoff"), PropertyBool); + lightCutoff = addProperty(mLightAttributesItem, tr("Cutoff Distance"), PropertyFloat); + } + + lightDiffuse = addProperty(mLightAttributesItem, tr("Diffuse"), PropertyFloat); + lightSpecular = addProperty(mLightAttributesItem, tr("Specular"), PropertyFloat); + } + // Configuration lightConfiguration = addProperty(nullptr, tr("Configuration"), PropertyGroup); lightFormat = addProperty(lightConfiguration, tr("Format"), PropertyLightFormat); @@ -1612,66 +1646,6 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) lightTargetZ = addProperty(lightTarget, tr("Z"), TargetProperty); } - // Light Color - lightColor = addProperty(nullptr, tr("Color"), PropertyGroup); - lightColorIcon = addProperty(lightColor, tr("Value"), PropertyLightColor); - lightColorR = addProperty(lightColor, tr("Red"), PropertyFloat); - lightColorG = addProperty(lightColor, tr("Green"), PropertyFloat); - lightColorB = addProperty(lightColor, tr("Blue"), PropertyFloat); - - // Properties - lightProperties = addProperty(nullptr, tr("Properties"), PropertyGroup); - mLightTypeItem = addProperty(lightProperties, tr("Type"), PropertyStringList); - lightShadowless = addProperty(lightProperties, tr("Shadowless"), PropertyBool); - lightExponent = addProperty(lightProperties, ExponentLabel, PropertyFloat); - - if ((LightType == lcLightType::Point || LightType == lcLightType::Directional) && !POVRayLight) - lightFactorA = addProperty(lightProperties, FactorALabel, PropertyFloat); - - if (LightType == lcLightType::Spot) - { - lightSpotSize = addProperty(lightProperties, tr("Spot Size (°)"), SpotSizeProperty); - lightFactorA = addProperty(lightProperties, FactorALabel, PropertyFloatLightSpotSize); - - if (!POVRayLight) - lightFactorB = addProperty(lightProperties, tr("Spot Blend"), PropertyFloat); - else - { - lightSpotFalloff = addProperty(lightProperties, tr("Spot Falloff (°)"), PropertyFloatLightSpotFalloff); - lightSpotTightness = addProperty(lightProperties, tr("Spot Tightness"), PropertyFloat); - } - } - else if (LightType == lcLightType::Area) - { - lightShape = addProperty(lightProperties, tr("Shape"), PropertyLightShape); - lightFactorA = addProperty(lightProperties, FactorALabel, PropertyFloat); - - if (ShapeIndex == LC_LIGHT_SHAPE_RECTANGLE || ShapeIndex == LC_LIGHT_SHAPE_ELLIPSE || POVRayLight) - lightFactorB = addProperty(lightProperties, tr("Height"), PropertyFloat); - else - FactorAToolTip = tr("The size of the area light grid."); - - if (POVRayLight) - { - lightAreaGridRows = addProperty(lightProperties, tr("Grid Rows"), PropertyFloat); - lightAreaGridColumns = addProperty(lightProperties, tr("Grid Columns"), PropertyFloat); - } - } - - if (!POVRayLight) - { - if (LightType != lcLightType::Directional) - { - lightEnableCutoff = addProperty(lightProperties, tr("Cutoff"), PropertyBool); - lightCutoff = addProperty(lightProperties, tr("Cutoff Distance"), PropertyFloat); - } - - lightDiffuse = addProperty(lightProperties, tr("Diffuse"), PropertyFloat); - lightSpecular = addProperty(lightProperties, tr("Specular"), PropertyFloat); - } - - lightName = addProperty(lightProperties, tr("Name"), PropertyString); - mWidgetMode = LC_PROPERTY_WIDGET_LIGHT; mLightType = LightType; mLightShape = ShapeIndex; @@ -1707,19 +1681,9 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) painter.drawRect(0, 0, ColorImage.width() - 1, ColorImage.height() - 1); painter.end(); - lightColorIcon->setIcon(1, QIcon(QPixmap::fromImage(ColorImage))); - lightColorIcon->setText(1, Color.name().toUpper()); - lightColorIcon->setData(0, PropertyValueRole, Color); - - lightColorR->setText(1, lcFormatValueLocalized(Color.redF())); - lightColorR->setData(0, PropertyValueRole, Color.redF()); - lightColorR->setToolTip(1, tr("Red color using 0 to 1 decimal.")); - lightColorG->setText(1, lcFormatValueLocalized(Color.greenF())); - lightColorG->setData(0, PropertyValueRole, Color.greenF()); - lightColorG->setToolTip(1, tr("Green color using 0 to 1 decimal.")); - lightColorB->setText(1, lcFormatValueLocalized(Color.blueF())); - lightColorB->setData(0, PropertyValueRole, Color.blueF()); - lightColorB->setToolTip(1, tr("Blue color using 0 to 1 decimal.")); + mLightColorItem->setIcon(1, QIcon(QPixmap::fromImage(ColorImage))); + mLightColorItem->setText(1, Color.name().toUpper()); + mLightColorItem->setData(0, PropertyValueRole, Color); lightFormat->setText(1, Format); lightFormat->setData(0, PropertyValueRole, FormatIndex); @@ -1727,7 +1691,7 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) mLightTypeItem->setText(1, lcLight::GetLightTypeString(LightType)); mLightTypeItem->setData(0, PropertyValueRole, static_cast(LightType)); - lightShadowless->setText(1, Shadowless ? "True" : "False"); + lightShadowless->setCheckState(1, Shadowless ? Qt::Checked : Qt::Unchecked); lightShadowless->setData(0, PropertyValueRole, Shadowless); lightExponent->setText(1, lcFormatValueLocalized(Exponent)); @@ -1800,7 +1764,7 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) { if (LightType != lcLightType::Directional) { - lightEnableCutoff->setText(1, EnableCutoff ? "True" : "False"); + lightEnableCutoff->setCheckState(1, EnableCutoff ? Qt::Checked : Qt::Unchecked); lightEnableCutoff->setData(0, PropertyValueRole, EnableCutoff); lightCutoff->setText(1, lcFormatValueLocalized(Cutoff)); @@ -1817,8 +1781,8 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) lightSpecular->setToolTip(1, tr("Specular reflection multiplier factor.")); } - lightName->setText(1, Name); - lightName->setData(0, PropertyValueRole, QVariant::fromValue(Name)); + mLightNameItem->setText(1, Name); + mLightNameItem->setData(0, PropertyValueRole, QVariant::fromValue(Name)); } void lcQPropertiesTree::SetMultiple() diff --git a/qt/lc_qpropertiestree.h b/qt/lc_qpropertiestree.h index 23d80dc6..6c6dbfc1 100644 --- a/qt/lc_qpropertiestree.h +++ b/qt/lc_qpropertiestree.h @@ -52,8 +52,8 @@ public: PropertyStringList, PropertyLightFormat, PropertyLightShape, - PropertyLightColor, PropertyColor, + PropertyPieceColor, PropertyPart }; @@ -91,72 +91,69 @@ protected: QIcon m_checkedIcon; QIcon m_uncheckedIcon; - QTreeWidgetItem *partPosition; - QTreeWidgetItem *partPositionX; - QTreeWidgetItem *partPositionY; - QTreeWidgetItem *partPositionZ; - QTreeWidgetItem *partRotation; - QTreeWidgetItem *partRotationX; - QTreeWidgetItem *partRotationY; - QTreeWidgetItem *partRotationZ; - QTreeWidgetItem *partVisibility; - QTreeWidgetItem *partShow; - QTreeWidgetItem *partHide; - QTreeWidgetItem *partAppearance; - QTreeWidgetItem *partColor; - QTreeWidgetItem *partID; + QTreeWidgetItem* mPieceAttributesItem; + QTreeWidgetItem* partPosition; + QTreeWidgetItem* partPositionX; + QTreeWidgetItem* partPositionY; + QTreeWidgetItem* partPositionZ; + QTreeWidgetItem* partRotation; + QTreeWidgetItem* partRotationX; + QTreeWidgetItem* partRotationY; + QTreeWidgetItem* partRotationZ; + QTreeWidgetItem* partVisibility; + QTreeWidgetItem* partShow; + QTreeWidgetItem* partHide; + QTreeWidgetItem* partAppearance; + QTreeWidgetItem* mPieceColorItem; + QTreeWidgetItem* mPieceIdItem; - QTreeWidgetItem *cameraPosition; - QTreeWidgetItem *cameraPositionX; - QTreeWidgetItem *cameraPositionY; - QTreeWidgetItem *cameraPositionZ; - QTreeWidgetItem *cameraTarget; - QTreeWidgetItem *cameraTargetX; - QTreeWidgetItem *cameraTargetY; - QTreeWidgetItem *cameraTargetZ; - QTreeWidgetItem *cameraUp; - QTreeWidgetItem *cameraUpX; - QTreeWidgetItem *cameraUpY; - QTreeWidgetItem *cameraUpZ; - QTreeWidgetItem *cameraSettings; - QTreeWidgetItem *cameraOrtho; - QTreeWidgetItem *cameraFOV; - QTreeWidgetItem *cameraNear; - QTreeWidgetItem *cameraFar; - QTreeWidgetItem *cameraName; + QTreeWidgetItem* cameraPosition; + QTreeWidgetItem* cameraPositionX; + QTreeWidgetItem* cameraPositionY; + QTreeWidgetItem* cameraPositionZ; + QTreeWidgetItem* cameraTarget; + QTreeWidgetItem* cameraTargetX; + QTreeWidgetItem* cameraTargetY; + QTreeWidgetItem* cameraTargetZ; + QTreeWidgetItem* cameraUp; + QTreeWidgetItem* cameraUpX; + QTreeWidgetItem* cameraUpY; + QTreeWidgetItem* cameraUpZ; + QTreeWidgetItem* mCameraAttributesItem; + QTreeWidgetItem* mCameraProjectionItem; + QTreeWidgetItem* cameraFOV; + QTreeWidgetItem* cameraNear; + QTreeWidgetItem* cameraFar; + QTreeWidgetItem* mCameraNameItem; - QTreeWidgetItem *lightConfiguration; - QTreeWidgetItem *lightPosition; - QTreeWidgetItem *lightPositionX; - QTreeWidgetItem *lightPositionY; - QTreeWidgetItem *lightPositionZ; - QTreeWidgetItem *lightTarget; - QTreeWidgetItem *lightTargetX; - QTreeWidgetItem *lightTargetY; - QTreeWidgetItem *lightTargetZ; - QTreeWidgetItem *lightColor; - QTreeWidgetItem *lightColorIcon; - QTreeWidgetItem *lightColorR; - QTreeWidgetItem *lightColorG; - QTreeWidgetItem *lightColorB; - QTreeWidgetItem *lightProperties; - QTreeWidgetItem *lightDiffuse; - QTreeWidgetItem *lightSpecular; - QTreeWidgetItem *lightCutoff; - QTreeWidgetItem *lightEnableCutoff; - QTreeWidgetItem *lightExponent; - QTreeWidgetItem *mLightTypeItem; - QTreeWidgetItem *lightSpotSize; - QTreeWidgetItem *lightShape; - QTreeWidgetItem *lightFactorA; - QTreeWidgetItem *lightFactorB; - QTreeWidgetItem *lightName; - QTreeWidgetItem *lightFormat; - QTreeWidgetItem *lightShadowless; - QTreeWidgetItem *lightAreaGridRows; - QTreeWidgetItem *lightAreaGridColumns; - QTreeWidgetItem *lightSpotFalloff; - QTreeWidgetItem *lightSpotTightness; + QTreeWidgetItem* lightConfiguration; + QTreeWidgetItem* lightPosition; + QTreeWidgetItem* lightPositionX; + QTreeWidgetItem* lightPositionY; + QTreeWidgetItem* lightPositionZ; + QTreeWidgetItem* lightTarget; + QTreeWidgetItem* lightTargetX; + QTreeWidgetItem* lightTargetY; + QTreeWidgetItem* lightTargetZ; + QTreeWidgetItem* mLightColorItem; + QTreeWidgetItem* mLightAttributesItem; + QTreeWidgetItem* lightDiffuse; + QTreeWidgetItem* lightSpecular; + QTreeWidgetItem* lightCutoff; + QTreeWidgetItem* lightEnableCutoff; + QTreeWidgetItem* lightExponent; + QTreeWidgetItem* mLightTypeItem; + QTreeWidgetItem* lightSpotSize; + QTreeWidgetItem* lightShape; + QTreeWidgetItem* lightFactorA; + QTreeWidgetItem* lightFactorB; + QTreeWidgetItem* mLightNameItem; + QTreeWidgetItem* lightFormat; + QTreeWidgetItem* lightShadowless; + QTreeWidgetItem* lightAreaGridRows; + QTreeWidgetItem* lightAreaGridColumns; + QTreeWidgetItem* lightSpotFalloff; + QTreeWidgetItem* lightSpotTightness; }; class lcQPropertiesTreeDelegate : public QItemDelegate