diff --git a/common/lc_model.cpp b/common/lc_model.cpp index 2277dcbb..7c5b73ce 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -3632,7 +3632,7 @@ void lcModel::RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool } } -void lcModel::ScaleSelectedPieces(const float Scale, bool Update, bool Checkpoint) +void lcModel::ScaleSelectedPieces(const float Scale) { if (Scale < 0.001f) return; @@ -3648,14 +3648,6 @@ void lcModel::ScaleSelectedPieces(const float Scale, bool Update, bool Checkpoin { const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST; Piece->SetControlPointScale(ControlPointIndex, Scale); - - if (Update) - { - UpdateAllViews(); - if (Checkpoint) - SaveCheckpoint(tr("Scaling")); - gMainWindow->UpdateSelectedObjects(false); - } } } @@ -3837,6 +3829,12 @@ void lcModel::SetCameraProjection(lcCamera* Camera, lcCameraProjection CameraPro void lcModel::SetObjectsProperty(const std::vector& Objects, lcObjectPropertyId PropertyId, QVariant Value, bool AddUndo) { bool Modified = false; + + if (AddUndo) + { + BeginActionSequence(); + BeginObjectEditAction(); + } for (lcObject* Object : Objects) { @@ -3850,10 +3848,17 @@ void lcModel::SetObjectsProperty(const std::vector& Objects, lcObject } if (!Modified) + { + DiscardActionSequence(); + return; + } if (AddUndo) - SaveCheckpoint(lcObject::GetCheckpointString(PropertyId)); + { + EndObjectEditAction(); + EndActionSequence(lcObject::GetCheckpointString(PropertyId)); + } gMainWindow->UpdateSelectedObjects(false); UpdateAllViews(); @@ -3890,12 +3895,9 @@ void lcModel::EndPropertyEdit(lcObjectPropertyId PropertyId, bool Accept) break; case lcObjectPropertyId::CameraFOV: - SaveCheckpoint(tr("Changing FOV")); - break; - case lcObjectPropertyId::CameraNear: case lcObjectPropertyId::CameraFar: - SaveCheckpoint(tr("Editing Camera")); + SaveCheckpoint(lcObject::GetCheckpointString(PropertyId)); break; case lcObjectPropertyId::CameraPositionX: @@ -5170,7 +5172,7 @@ void lcModel::UpdateRotateTool(const lcVector3& Angles, bool AlternateButtonDrag void lcModel::UpdateScaleTool(const float Scale) { - ScaleSelectedPieces(Scale, true, false); + ScaleSelectedPieces(Scale); gMainWindow->UpdateSelectedObjects(false); UpdateAllViews(); diff --git a/common/lc_model.h b/common/lc_model.h index e2b143c2..b420d80d 100644 --- a/common/lc_model.h +++ b/common/lc_model.h @@ -381,7 +381,7 @@ public: void MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Update, bool Checkpoint, bool FirstMove); void RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool RotatePivotPoint, bool Update, bool Checkpoint); - void ScaleSelectedPieces(const float Scale, bool Update, bool Checkpoint); + void ScaleSelectedPieces(const float Scale); void TransformSelectedObjects(lcTransformType TransformType, const lcVector3& Transform); void SetObjectsKeyFrame(const std::vector& Objects, lcObjectPropertyId PropertyId, bool KeyFrame); void SetSelectedPiecesColorIndex(int ColorIndex); diff --git a/common/lc_propertieswidget.cpp b/common/lc_propertieswidget.cpp index 9223b2e1..f9b30582 100644 --- a/common/lc_propertieswidget.cpp +++ b/common/lc_propertieswidget.cpp @@ -287,7 +287,6 @@ void lcPropertiesWidget::FloatChanged(const QString& TextValue) float Value = lcParseValueLocalized(TextValue); ChangeFloatValue(PropertyId, Value, true); - qDebug() << Value; } void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float Value, bool Dragging)