diff --git a/common/lc_math.h b/common/lc_math.h index 4fcb0d4b..4e2e7090 100644 --- a/common/lc_math.h +++ b/common/lc_math.h @@ -649,6 +649,11 @@ inline lcVector3 lcVector3FromColor(quint32 Color) return v; } +inline lcVector3 lcVector3FromQColor(QColor Color) +{ + return lcVector3(Color.redF(), Color.greenF(), Color.blueF()); +} + inline lcVector4 lcVector4FromColor(quint32 Color) { lcVector4 v(LC_RGBA_RED(Color), LC_RGBA_GREEN(Color), LC_RGBA_BLUE(Color), LC_RGBA_ALPHA(Color)); @@ -661,6 +666,11 @@ inline quint32 lcColorFromVector3(const lcVector3& Color) return LC_RGB(roundf(Color[0] * 255), roundf(Color[1] * 255), roundf(Color[2] * 255)); } +inline QColor lcQColorFromVector3(const lcVector3& Color) +{ + return QColor::fromRgb(roundf(Color[0] * 255), roundf(Color[1] * 255), roundf(Color[2] * 255)); +} + inline float lcLuminescence(const lcVector3& Color) { return 0.2126f * Color[0] + 0.7152f * Color[1] + 0.0722f * Color[2]; diff --git a/common/lc_model.cpp b/common/lc_model.cpp index 65ea2c61..b66e03df 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -3113,6 +3113,19 @@ void lcModel::SetCameraName(lcCamera* Camera, const QString& Name) gMainWindow->UpdateCameraMenu(); } +void lcModel::SetLightColor(lcLight* Light, const lcVector3& Color) +{ + if (Light->GetColor() == Color) + return; + + Light->SetColor(Color, mCurrentStep, gMainWindow->GetAddKeys()); + Light->UpdatePosition(mCurrentStep); + + SaveCheckpoint(tr("Changing Light Color")); + gMainWindow->UpdateSelectedObjects(false); + UpdateAllViews(); +} + void lcModel::SetLightName(lcLight* Light, const QString &Name) { if (Light->GetName() == Name) diff --git a/common/lc_model.h b/common/lc_model.h index 4973b078..08da54b2 100644 --- a/common/lc_model.h +++ b/common/lc_model.h @@ -367,6 +367,8 @@ public: void SetCameraZNear(lcCamera* Camera, float ZNear); void SetCameraZFar(lcCamera* Camera, float ZFar); void SetCameraName(lcCamera* Camera, const QString& Name); + + void SetLightColor(lcLight* Light, const lcVector3& Color); void SetLightName(lcLight* Light, const QString& Name); void UpdateLight(lcLight* Light, const lcLightProperties Props, int Property); diff --git a/common/light.cpp b/common/light.cpp index 5a9aa9c3..ece6c5b5 100644 --- a/common/light.cpp +++ b/common/light.cpp @@ -44,11 +44,8 @@ lcLight::lcLight(const lcVector3& Position, const lcVector3& TargetPosition, lcL mPOVRayLight = false; mShadowless = false; mEnableCutoff = false; - mAmbientColor = lcVector4(0.0f, 0.0f, 0.0f, 1.0f); - mDiffuseColor = lcVector4(0.8f, 0.8f, 0.8f, 1.0f); - mSpecularColor = lcVector4(1.0f, 1.0f, 1.0f, 1.0f); + mColor = lcVector3(1.0f, 1.0f, 1.0f); mAttenuation = lcVector3(1.0f, 0.0f, 0.0f); - mLightColor = lcVector3(1.0f, 1.0f, 1.0f); mLightFactor[0] = LightType == lcLightType::Directional ? 11.4f : 0.25f; mLightFactor[1] = LightType == lcLightType::Area ? 0.25f : LightType == lcLightType::Spot ? 0.150f : 0.0f; mLightDiffuse = 1.0f; @@ -66,11 +63,8 @@ lcLight::lcLight(const lcVector3& Position, const lcVector3& TargetPosition, lcL mPositionKeys.ChangeKey(mPosition, 1, true); mTargetPositionKeys.ChangeKey(mTargetPosition, 1, true); mUpVectorKeys.ChangeKey(mUpVector, 1, true); - mAmbientColorKeys.ChangeKey(mAmbientColor, 1, true); - mDiffuseColorKeys.ChangeKey(mDiffuseColor, 1, true); - mSpecularColorKeys.ChangeKey(mSpecularColor, 1, true); + mColorKeys.ChangeKey(mColor, 1, true); mAttenuationKeys.ChangeKey(mAttenuation, 1, true); - mLightColorKeys.ChangeKey(mLightColor, 1, true); mLightFactorKeys.ChangeKey(mLightFactor, 1, true); mLightDiffuseKeys.ChangeKey(mLightDiffuse, 1, true); mLightSpecularKeys.ChangeKey(mLightSpecular, 1, true); @@ -115,10 +109,10 @@ void lcLight::SaveLDraw(QTextStream& Stream) const Stream << QLatin1String("0 !LEOCAD LIGHT UP_VECTOR ") << mUpVector[0] << ' ' << mUpVector[1] << ' ' << mUpVector[2] << LineEnding; } - if (mLightColorKeys.GetSize() > 1) - mLightColorKeys.SaveKeysLDraw(Stream, "LIGHT COLOR_RGB_KEY "); + if (mColorKeys.GetSize() > 1) + mColorKeys.SaveKeysLDraw(Stream, "LIGHT COLOR_KEY "); else - Stream << QLatin1String("0 !LEOCAD LIGHT COLOR_RGB ") << mLightColor[0] << ' ' << mLightColor[1] << ' ' << mLightColor[2] << LineEnding; + Stream << QLatin1String("0 !LEOCAD LIGHT COLOR ") << mColor[0] << ' ' << mColor[1] << ' ' << mColor[2] << LineEnding; if (!mPOVRayLight) { @@ -326,27 +320,29 @@ bool lcLight::ParseLDrawLine(QTextStream& Stream) Stream >> mPosition[0] >> mPosition[1] >> mPosition[2]; mPositionKeys.ChangeKey(mPosition, 1, true); } + else if (Token == QLatin1String("POSITION_KEY")) + mPositionKeys.LoadKeysLDraw(Stream); else if (Token == QLatin1String("TARGET_POSITION")) { Stream >> mTargetPosition[0] >> mTargetPosition[1] >> mTargetPosition[2]; mTargetPositionKeys.ChangeKey(mTargetPosition, 1, true); } + else if (Token == QLatin1String("TARGET_POSITION_KEY")) + mTargetPositionKeys.LoadKeysLDraw(Stream); else if (Token == QLatin1String("UP_VECTOR")) { Stream >> mUpVector[0] >> mUpVector[1] >> mUpVector[2]; mUpVectorKeys.ChangeKey(mUpVector, 1, true); } - else if (Token == QLatin1String("POSITION_KEY")) - mPositionKeys.LoadKeysLDraw(Stream); - else if (Token == QLatin1String("TARGET_POSITION_KEY")) - mTargetPositionKeys.LoadKeysLDraw(Stream); else if (Token == QLatin1String("UP_VECTOR_KEY")) mUpVectorKeys.LoadKeysLDraw(Stream); - else if (Token == QLatin1String("COLOR_RGB")) + else if (Token == QLatin1String("COLOR")) { - Stream >> mLightColor[0] >> mLightColor[1] >> mLightColor[2]; - mLightColorKeys.ChangeKey(mLightColor, 1, true); + Stream >> mColor[0] >> mColor[1] >> mColor[2]; + mColorKeys.ChangeKey(mColor, 1, true); } + else if (Token == QLatin1String("COLOR_KEY")) + mColorKeys.LoadKeysLDraw(Stream); else if (Token == QLatin1String("POWER") || Token == QLatin1String("STRENGTH")) { if (mPOVRayLight) @@ -461,8 +457,6 @@ bool lcLight::ParseLDrawLine(QTextStream& Stream) { mShadowless = true; } - else if (Token == QLatin1String("COLOR_RGB_KEY")) - mLightColorKeys.LoadKeysLDraw(Stream); else if ((Token == QLatin1String("POWER_KEY")) || (Token == QLatin1String("STRENGTH_KEY"))) mSpotExponentKeys.LoadKeysLDraw(Stream); else if ((Token == QLatin1String("ANGLE_KEY")) || (Token == QLatin1String("RADIUS_KEY")) || (Token == QLatin1String("SIZE_KEY")) || (Token == QLatin1String("RADIUS_AND_SPOT_BLEND_KEY"))) @@ -562,10 +556,6 @@ void lcLight::UpdateLight(lcStep Step, lcLightProperties Props, int Property) case LC_LIGHT_SHAPE: mLightShape = Props.mLightShape; break; - case LC_LIGHT_COLOR: - mLightColor = Props.mLightColor; - mLightColorKeys.ChangeKey(mLightColor, Step, false); - break; case LC_LIGHT_FACTOR: if (Props.mPOVRayLight && mLightType == lcLightType::Area) { @@ -841,16 +831,18 @@ void lcLight::MoveSelected(lcStep Step, bool AddKey, const lcVector3& Distance) } } +void lcLight::SetColor(const lcVector3& Color, lcStep Step, bool AddKey) +{ + mColorKeys.ChangeKey(Color, Step, AddKey); +} + void lcLight::InsertTime(lcStep Start, lcStep Time) { mPositionKeys.InsertTime(Start, Time); mTargetPositionKeys.InsertTime(Start, Time); mUpVectorKeys.InsertTime(Start, Time); - mAmbientColorKeys.InsertTime(Start, Time); - mDiffuseColorKeys.InsertTime(Start, Time); - mSpecularColorKeys.InsertTime(Start, Time); + mColorKeys.InsertTime(Start, Time); mAttenuationKeys.InsertTime(Start, Time); - mLightColorKeys.InsertTime(Start, Time); mLightFactorKeys.InsertTime(Start, Time); mLightDiffuseKeys.InsertTime(Start, Time); mLightSpecularKeys.InsertTime(Start, Time); @@ -867,11 +859,8 @@ void lcLight::RemoveTime(lcStep Start, lcStep Time) mPositionKeys.RemoveTime(Start, Time); mTargetPositionKeys.RemoveTime(Start, Time); mUpVectorKeys.RemoveTime(Start, Time); - mAmbientColorKeys.RemoveTime(Start, Time); - mDiffuseColorKeys.RemoveTime(Start, Time); - mSpecularColorKeys.RemoveTime(Start, Time); + mColorKeys.RemoveTime(Start, Time); mAttenuationKeys.RemoveTime(Start, Time); - mLightColorKeys.RemoveTime(Start, Time); mLightFactorKeys.RemoveTime(Start, Time); mLightDiffuseKeys.RemoveTime(Start, Time); mLightSpecularKeys.RemoveTime(Start, Time); @@ -888,11 +877,8 @@ void lcLight::UpdatePosition(lcStep Step) mPosition = mPositionKeys.CalculateKey(Step); mTargetPosition = mTargetPositionKeys.CalculateKey(Step); mUpVector = mUpVectorKeys.CalculateKey(Step); - mAmbientColor = mAmbientColorKeys.CalculateKey(Step); - mDiffuseColor = mDiffuseColorKeys.CalculateKey(Step); - mSpecularColor = mSpecularColorKeys.CalculateKey(Step); + mColor = mColorKeys.CalculateKey(Step); mAttenuation = mAttenuationKeys.CalculateKey(Step); - mLightColor = mLightColorKeys.CalculateKey(Step); mLightFactor = mLightFactorKeys.CalculateKey(Step); mLightDiffuse = mLightDiffuseKeys.CalculateKey(Step); mLightSpecular = mLightSpecularKeys.CalculateKey(Step); @@ -1455,21 +1441,12 @@ void lcLight::RemoveKeyFrames() mUpVectorKeys.RemoveAll(); mUpVectorKeys.ChangeKey(mUpVector, 1, true); - mAmbientColorKeys.RemoveAll(); - mAmbientColorKeys.ChangeKey(mAmbientColor, 1, true); - - mDiffuseColorKeys.RemoveAll(); - mDiffuseColorKeys.ChangeKey(mDiffuseColor, 1, true); - - mSpecularColorKeys.RemoveAll(); - mSpecularColorKeys.ChangeKey(mSpecularColor, 1, true); + mColorKeys.RemoveAll(); + mColorKeys.ChangeKey(mColor, 1, true); mAttenuationKeys.RemoveAll(); mAttenuationKeys.ChangeKey(mAttenuation, 1, true); - mLightColorKeys.RemoveAll(); - mLightColorKeys.ChangeKey(mLightColor, 1, true); - mLightFactorKeys.RemoveAll(); mLightFactorKeys.ChangeKey(mLightFactor, 1, true); diff --git a/common/light.h b/common/light.h index 8f484840..e1d021ec 100644 --- a/common/light.h +++ b/common/light.h @@ -43,7 +43,6 @@ enum lcLightProperty { LC_LIGHT_NONE, LC_LIGHT_SHAPE, - LC_LIGHT_COLOR, LC_LIGHT_TYPE, LC_LIGHT_FACTOR, LC_LIGHT_DIFFUSE, @@ -61,7 +60,6 @@ enum lcLightProperty struct lcLightProperties { - lcVector3 mLightColor; lcVector2 mLightFactor; lcVector2 mAreaGrid; float mLightDiffuse; @@ -306,7 +304,16 @@ public: void RemoveTime(lcStep Start, lcStep Time); bool IsVisible() const - { return (mState & LC_LIGHT_HIDDEN) == 0; } + { + return (mState & LC_LIGHT_HIDDEN) == 0; + } + + void SetColor(const lcVector3& Color, lcStep Step, bool AddKey); + + lcVector3 GetColor() const + { + return mColor; + } void SetName(const QString& Name) { @@ -327,7 +334,6 @@ public: lcLightProperties GetLightProperties() const { lcLightProperties props; - props.mLightColor = mLightColor; props.mLightFactor = mLightFactor; props.mLightDiffuse = mLightDiffuse; props.mLightSpecular = mLightSpecular; @@ -349,11 +355,7 @@ public: lcVector3 mTargetPosition; lcVector3 mUpVector; - lcVector4 mAmbientColor; - lcVector4 mDiffuseColor; - lcVector4 mSpecularColor; lcVector3 mAttenuation; - lcVector3 mLightColor; lcVector2 mLightFactor; lcVector2 mAreaGrid; lcVector2 mAreaSize; @@ -375,15 +377,14 @@ public: QString mName; protected: + lcVector3 mColor; + lcObjectKeyArray mPositionKeys; lcObjectKeyArray mTargetPositionKeys; lcObjectKeyArray mUpVectorKeys; + lcObjectKeyArray mColorKeys; - lcObjectKeyArray mAmbientColorKeys; - lcObjectKeyArray mDiffuseColorKeys; - lcObjectKeyArray mSpecularColorKeys; lcObjectKeyArray mAttenuationKeys; - lcObjectKeyArray mLightColorKeys; lcObjectKeyArray mLightFactorKeys; lcObjectKeyArray mAreaGridKeys; lcObjectKeyArray mLightSpecularKeys; diff --git a/common/project.cpp b/common/project.cpp index fd46faa0..ef93266e 100644 --- a/common/project.cpp +++ b/common/project.cpp @@ -2175,7 +2175,7 @@ bool Project::ExportPOVRay(const QString& FileName) const QString LightName = QString(Light->mName).replace(" ","_"); LightType = Light->GetLightType(); Shadowless = static_cast(Light->mShadowless); - LightColor = Light->mLightColor; + LightColor = Light->GetColor(); Power = Light->mPOVRayExponent; switch(LightType) { diff --git a/qt/lc_qpropertiestree.cpp b/qt/lc_qpropertiestree.cpp index dfb025ac..4e3ff1dd 100644 --- a/qt/lc_qpropertiestree.cpp +++ b/qt/lc_qpropertiestree.cpp @@ -222,9 +222,9 @@ lcQPropertiesTree::lcQPropertiesTree(QWidget *parent) : m_checkedIcon = drawCheckBox(true); m_uncheckedIcon = drawCheckBox(false); - m_delegate = new lcQPropertiesTreeDelegate(parent); - m_delegate->setTreeWidget(this); - setItemDelegate(m_delegate); + mDelegate = new lcQPropertiesTreeDelegate(parent); + mDelegate->setTreeWidget(this); + setItemDelegate(mDelegate); SetEmpty(); @@ -264,7 +264,7 @@ void lcQPropertiesTree::keyPressEvent(QKeyEvent *event) case Qt::Key_Return: case Qt::Key_Enter: case Qt::Key_Space: // Trigger Edit - if (!m_delegate->editedItem()) + if (!mDelegate->editedItem()) { if (const QTreeWidgetItem *item = currentItem()) { @@ -299,7 +299,7 @@ void lcQPropertiesTree::mousePressEvent(QMouseEvent *event) if (item) { - if ((item != m_delegate->editedItem()) && (event->button() == Qt::LeftButton) && (header()->logicalIndexAt(event->pos().x()) == 1) && + if ((item != mDelegate->editedItem()) && (event->button() == Qt::LeftButton) && (header()->logicalIndexAt(event->pos().x()) == 1) && ((item->flags() & (Qt::ItemIsEditable | Qt::ItemIsEnabled)) == (Qt::ItemIsEditable | Qt::ItemIsEnabled))) editItem(item, 1); } @@ -567,14 +567,14 @@ QWidget *lcQPropertiesTree::createEditor(QWidget *parent, QTreeWidgetItem *item) case PropertyLightColor: { - QPushButton *editor = new QPushButton(parent); - QColor value = item->data(0, PropertyValueRole).value(); + QPushButton *Editor = new QPushButton(parent); + QColor Value = item->data(0, PropertyValueRole).value(); - updateLightColorEditor(editor, value); + UpdateLightColorEditor(Editor, Value); - connect(editor, SIGNAL(clicked()), this, SLOT(slotColorButtonClicked())); + connect(Editor, &QPushButton::clicked, this, &lcQPropertiesTree::LightColorButtonClicked); - return editor; + return Editor; } case PropertyColor: @@ -649,26 +649,26 @@ void lcQPropertiesTree::updateColorEditor(QPushButton *editor, int value) const editor->setText(color->Name); } -void lcQPropertiesTree::updateLightColorEditor(QPushButton *editor, QColor color) const +void lcQPropertiesTree::UpdateLightColorEditor(QPushButton* Editor, QColor Color) const { - QImage img(12, 12, QImage::Format_ARGB32); - img.fill(0); + QImage Image(12, 12, QImage::Format_ARGB32); + Image.fill(0); - QPainter painter(&img); - painter.setCompositionMode(QPainter::CompositionMode_Source); - painter.setPen(Qt::darkGray); - painter.setBrush(color); - painter.drawRect(0, 0, img.width() - 1, img.height() - 1); - painter.end(); + QPainter Painter(&Image); + Painter.setCompositionMode(QPainter::CompositionMode_Source); + Painter.setPen(Qt::darkGray); + Painter.setBrush(Color); + Painter.drawRect(0, 0, Image.width() - 1, Image.height() - 1); + Painter.end(); - editor->setStyleSheet("Text-align:left"); - editor->setIcon(QPixmap::fromImage(img)); - editor->setText(color.name().toUpper()); + Editor->setStyleSheet("Text-align:left"); + Editor->setIcon(QPixmap::fromImage(Image)); + Editor->setText(Color.name().toUpper()); } void lcQPropertiesTree::slotToggled(bool Value) { - QTreeWidgetItem* Item = m_delegate->editedItem(); + QTreeWidgetItem* Item = mDelegate->editedItem(); lcModel* Model = gMainWindow->GetActiveModel(); lcObject* Focus = Model->GetFocusObject(); @@ -708,7 +708,7 @@ void lcQPropertiesTree::slotToggled(bool Value) void lcQPropertiesTree::slotReturnPressed() { QLineEdit* Editor = (QLineEdit*)sender(); - QTreeWidgetItem* Item = m_delegate->editedItem(); + QTreeWidgetItem* Item = mDelegate->editedItem(); lcModel* Model = gMainWindow->GetActiveModel(); if (mWidgetMode == LC_PROPERTY_WIDGET_PIECE) @@ -905,15 +905,17 @@ void lcQPropertiesTree::slotReturnPressed() } else if (Item == lightColorR || Item == lightColorG || Item == lightColorB) { + lcVector3 Color = Light->GetColor(); float Value = lcParseValueLocalized(Editor->text()); - if (Item == lightColorR) - Props.mLightColor[0] = Value; - else if (Item == lightColorG) - Props.mLightColor[2] = Value; - else if (Item == lightColorB) - Props.mLightColor[1] = Value; - Model->UpdateLight(Light, Props, LC_LIGHT_COLOR); + 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) { @@ -991,7 +993,7 @@ void lcQPropertiesTree::slotReturnPressed() void lcQPropertiesTree::slotSetValue(int Value) { - QTreeWidgetItem* Item = m_delegate->editedItem(); + QTreeWidgetItem* Item = mDelegate->editedItem(); lcModel* Model = gMainWindow->GetActiveModel(); if (mWidgetMode == LC_PROPERTY_WIDGET_PIECE) @@ -1000,7 +1002,7 @@ void lcQPropertiesTree::slotSetValue(int Value) { Model->SetSelectedPiecesColorIndex(Value); - QPushButton *editor = (QPushButton*)m_delegate->editor(); + QPushButton *editor = (QPushButton*)mDelegate->editor(); updateColorEditor(editor, Value); } else if (Item == partID) @@ -1041,24 +1043,6 @@ void lcQPropertiesTree::slotSetValue(int Value) } } -void lcQPropertiesTree::slotSetColorValue(QColor Value) -{ - lcModel* Model = gMainWindow->GetActiveModel(); - lcObject* Focus = Model->GetFocusObject(); - lcLight* Light = (Focus && Focus->IsLight()) ? (lcLight*)Focus : nullptr; - if (Light) - { - float r = Value.red(); - float g = Value.green(); - float b = Value.blue(); - lcVector3 Color(r/255, g/255, b/255); - - lcLightProperties Props = Light->GetLightProperties(); - Props.mLightColor = Color; - Model->UpdateLight(Light, Props, LC_LIGHT_COLOR); - } -} - void lcQPropertiesTree::slotColorButtonClicked() { int ColorIndex = gDefaultColor; @@ -1104,6 +1088,28 @@ void lcQPropertiesTree::slotColorButtonClicked() Popup->show(); } +void lcQPropertiesTree::LightColorButtonClicked() +{ + lcModel* Model = gMainWindow->GetActiveModel(); + lcObject* Focus = Model->GetFocusObject(); + lcLight* Light = (Focus && Focus->IsLight()) ? (lcLight*)Focus : nullptr; + + if (!Light) + return; + + QColor Color = QColorDialog::getColor(lcQColorFromVector3(Light->GetColor()), this, tr("Select Light Color")); + + if (!Color.isValid()) + return; + + Model->SetLightColor(Light, lcVector3FromQColor(Color)); + + QPushButton* Editor = qobject_cast(mDelegate->editor()); + + if (Editor) + UpdateLightColorEditor(Editor, Color); +} + QTreeWidgetItem *lcQPropertiesTree::addProperty(QTreeWidgetItem *parent, const QString& label, PropertyType propertyType) { QTreeWidgetItem *newItem; @@ -1452,7 +1458,7 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) PropertyType SpotSizeProperty = PropertyFloatLightSpotSize; lcVector3 Position(0.0f, 0.0f, 0.0f); lcVector3 Target(0.0f, 0.0f, 0.0f); - lcVector3 Color(0.0f, 0.0f, 0.0f); + QColor Color(Qt::white); lcVector2 Factor(0.0f, 0.0f); lcVector2 AreaGrid(0.0f, 0.0f); @@ -1467,7 +1473,7 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) Shadowless = Light->mShadowless; Position = Light->mPosition; Target = Light->mTargetPosition; - Color = Light->mLightColor; + Color = lcQColorFromVector3(Light->GetColor()); Factor = Light->mLightFactor; LightType = Light->GetLightType(); @@ -1594,9 +1600,9 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) lightTargetZ = addProperty(lightTarget, tr("Z"), TargetProperty); } - // Light Colour + // Light Color lightColor = addProperty(nullptr, tr("Color"), PropertyGroup); - lightColorIcon = addProperty(lightColor, tr("Name"), PropertyLightColor); + lightColorIcon = addProperty(lightColor, tr("Value"), PropertyLightColor); lightColorR = addProperty(lightColor, tr("Red"), PropertyFloat); lightColorG = addProperty(lightColor, tr("Green"), PropertyFloat); lightColorB = addProperty(lightColor, tr("Blue"), PropertyFloat); @@ -1679,30 +1685,28 @@ void lcQPropertiesTree::SetLight(lcObject* Focus) lightTargetZ->setData(0, PropertyValueRole, Target[2]); } - QImage img(16, 16, QImage::Format_ARGB32); - img.fill(0); + QImage ColorImage(16, 16, QImage::Format_ARGB32); + ColorImage.fill(0); - QColor RgbColor = QColor::fromRgb(int(Color[1]*255), int(Color[1]*255), int(Color[2]*255)); - - QPainter painter(&img); + QPainter painter(&ColorImage); painter.setCompositionMode(QPainter::CompositionMode_Source); painter.setPen(Qt::darkGray); - painter.setBrush(RgbColor); - painter.drawRect(0, 0, img.width() - 1, img.height() - 1); + painter.setBrush(Color); + painter.drawRect(0, 0, ColorImage.width() - 1, ColorImage.height() - 1); painter.end(); - lightColorIcon->setIcon(1, QIcon(QPixmap::fromImage(img))); - lightColorIcon->setText(1, RgbColor.name().toUpper()); - lightColorIcon->setData(0, PropertyValueRole, RgbColor); + lightColorIcon->setIcon(1, QIcon(QPixmap::fromImage(ColorImage))); + lightColorIcon->setText(1, Color.name().toUpper()); + lightColorIcon->setData(0, PropertyValueRole, Color); - lightColorR->setText(1, lcFormatValueLocalized(Color[0])); - lightColorR->setData(0, PropertyValueRole, Color[0]); + 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[1])); - lightColorG->setData(0, PropertyValueRole, Color[1]); + 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[2])); - lightColorB->setData(0, PropertyValueRole, Color[2]); + lightColorB->setText(1, lcFormatValueLocalized(Color.blueF())); + lightColorB->setData(0, PropertyValueRole, Color.blueF()); lightColorB->setToolTip(1, tr("Blue color using 0 to 1 decimal.")); lightFormat->setText(1, Format); diff --git a/qt/lc_qpropertiestree.h b/qt/lc_qpropertiestree.h index 9c68e3e6..76727b47 100644 --- a/qt/lc_qpropertiestree.h +++ b/qt/lc_qpropertiestree.h @@ -62,14 +62,14 @@ protected slots: void slotReturnPressed(); void slotSetValue(int value); void slotColorButtonClicked(); - void slotSetColorValue(QColor Value); + void LightColorButtonClicked(); protected: void keyPressEvent(QKeyEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; void updateColorEditor(QPushButton *editor, int value) const; - void updateLightColorEditor(QPushButton *editor, QColor color) const; + void UpdateLightColorEditor(QPushButton* Editor, QColor Color) const; QTreeWidgetItem *addProperty(QTreeWidgetItem *parent, const QString& label, PropertyType propertyType); @@ -79,8 +79,6 @@ protected: void SetLight(lcObject* Focus); void SetMultiple(); - void getPartProperties(lcPartProperties *properties); - lcLightType mLightType; int mLightShape; bool mPOVRayLight; @@ -88,7 +86,7 @@ protected: lcPropertyWidgetMode mWidgetMode; lcObject* mFocus; - lcQPropertiesTreeDelegate *m_delegate; + lcQPropertiesTreeDelegate* mDelegate; QIcon m_expandIcon; QIcon m_checkedIcon; QIcon m_uncheckedIcon;