diff --git a/common/lc_global.h b/common/lc_global.h index 2c5b428e..4593cc27 100644 --- a/common/lc_global.h +++ b/common/lc_global.h @@ -76,7 +76,7 @@ class lcLight; enum class lcLightType; enum class lcLightAreaShape; class lcGroup; -class lcModelAction; +class lcModelHistory; class PieceInfo; typedef std::map> lcPartsList; struct lcModelPartsEntry; diff --git a/common/lc_mainwindow.cpp b/common/lc_mainwindow.cpp index 558e91c1..687c7d35 100644 --- a/common/lc_mainwindow.cpp +++ b/common/lc_mainwindow.cpp @@ -24,7 +24,7 @@ #include "lc_library.h" #include "lc_colors.h" #include "lc_previewwidget.h" -#include "lc_modelaction.h" +#include "lc_modelhistory.h" #if LC_ENABLE_GAMEPAD #include @@ -2780,17 +2780,17 @@ void lcMainWindow::HandleCommand(lcCommandId CommandId) case LC_EDIT_SELECT_ALL: if (ActiveModel) - ActiveModel->SelectAllPieces(); + ActiveModel->SelectAllPiecesAction(); break; case LC_EDIT_SELECT_NONE: if (ActiveModel) - ActiveModel->ClearSelection(); + ActiveModel->ClearSelectionAction(); break; case LC_EDIT_SELECT_INVERT: if (ActiveModel) - ActiveModel->InvertPieceSelection(); + ActiveModel->InvertPieceSelectionAction(); break; case LC_EDIT_SELECT_BY_NAME: @@ -2967,62 +2967,62 @@ void lcMainWindow::HandleCommand(lcCommandId CommandId) case LC_PIECE_MOVE_PLUSX: if (ActiveModel) - ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(lcMax(GetMoveXYSnap(), 0.1f), 0.0f, 0.0f)), true, false, true, true, lcModelActionEditMerge::KeyboardMove); + ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(lcMax(GetMoveXYSnap(), 0.1f), 0.0f, 0.0f)), true, false, true, true, lcModelHistoryEditMerge::KeyboardMove); break; case LC_PIECE_MOVE_MINUSX: if (ActiveModel) - ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(-lcMax(GetMoveXYSnap(), 0.1f), 0.0f, 0.0f)), true, false, true, true, lcModelActionEditMerge::KeyboardMove); + ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(-lcMax(GetMoveXYSnap(), 0.1f), 0.0f, 0.0f)), true, false, true, true, lcModelHistoryEditMerge::KeyboardMove); break; case LC_PIECE_MOVE_PLUSY: if (ActiveModel) - ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, lcMax(GetMoveXYSnap(), 0.1f), 0.0f)), true, false, true, true, lcModelActionEditMerge::KeyboardMove); + ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, lcMax(GetMoveXYSnap(), 0.1f), 0.0f)), true, false, true, true, lcModelHistoryEditMerge::KeyboardMove); break; case LC_PIECE_MOVE_MINUSY: if (ActiveModel) - ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, -lcMax(GetMoveXYSnap(), 0.1f), 0.0f)), true, false, true, true, lcModelActionEditMerge::KeyboardMove); + ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, -lcMax(GetMoveXYSnap(), 0.1f), 0.0f)), true, false, true, true, lcModelHistoryEditMerge::KeyboardMove); break; case LC_PIECE_MOVE_PLUSZ: if (ActiveModel) - ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, lcMax(GetMoveZSnap(), 0.1f))), true, false, true, true, lcModelActionEditMerge::KeyboardMove); + ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, lcMax(GetMoveZSnap(), 0.1f))), true, false, true, true, lcModelHistoryEditMerge::KeyboardMove); break; case LC_PIECE_MOVE_MINUSZ: if (ActiveModel) - ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, -lcMax(GetMoveZSnap(), 0.1f))), true, false, true, true, lcModelActionEditMerge::KeyboardMove); + ActiveModel->MoveSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, -lcMax(GetMoveZSnap(), 0.1f))), true, false, true, true, lcModelHistoryEditMerge::KeyboardMove); break; case LC_PIECE_ROTATE_PLUSX: if (ActiveModel) - ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(lcMax(GetAngleSnap(), 1.0f), 0.0f, 0.0f)), true, false, true, lcModelActionEditMerge::KeyboardRotate); + ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(lcMax(GetAngleSnap(), 1.0f), 0.0f, 0.0f)), true, false, true, lcModelHistoryEditMerge::KeyboardRotate); break; case LC_PIECE_ROTATE_MINUSX: if (ActiveModel) - ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(-lcMax(GetAngleSnap(), 1.0f), 0.0f, 0.0f)), true, false, true, lcModelActionEditMerge::KeyboardRotate); + ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(-lcMax(GetAngleSnap(), 1.0f), 0.0f, 0.0f)), true, false, true, lcModelHistoryEditMerge::KeyboardRotate); break; case LC_PIECE_ROTATE_PLUSY: if (ActiveModel) - ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, lcMax(GetAngleSnap(), 1.0f), 0.0f)), true, false, true, lcModelActionEditMerge::KeyboardRotate); + ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, lcMax(GetAngleSnap(), 1.0f), 0.0f)), true, false, true, lcModelHistoryEditMerge::KeyboardRotate); break; case LC_PIECE_ROTATE_MINUSY: if (ActiveModel) - ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, -lcMax(GetAngleSnap(), 1.0f), 0.0f)), true, false, true, lcModelActionEditMerge::KeyboardRotate); + ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, -lcMax(GetAngleSnap(), 1.0f), 0.0f)), true, false, true, lcModelHistoryEditMerge::KeyboardRotate); break; case LC_PIECE_ROTATE_PLUSZ: if (ActiveModel) - ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, lcMax(GetAngleSnap(), 1.0f))), true, false, true, lcModelActionEditMerge::KeyboardRotate); + ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, lcMax(GetAngleSnap(), 1.0f))), true, false, true, lcModelHistoryEditMerge::KeyboardRotate); break; case LC_PIECE_ROTATE_MINUSZ: if (ActiveModel) - ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, -lcMax(GetAngleSnap(), 1.0f))), true, false, true, lcModelActionEditMerge::KeyboardRotate); + ActiveModel->RotateSelectedObjects(ActiveView->GetMoveDirection(lcVector3(0.0f, 0.0f, -lcMax(GetAngleSnap(), 1.0f))), true, false, true, lcModelHistoryEditMerge::KeyboardRotate); break; case LC_PIECE_MINIFIG_WIZARD: @@ -3504,7 +3504,7 @@ void lcMainWindow::HandleCommand(lcCommandId CommandId) case LC_EDIT_CANCEL: if (ActiveView && !ActiveView->CloseFindReplaceDialog()) - ActiveView->CancelTrackingOrClearSelection(); + ActiveView->CancelTrackingOrClearSelectionAction(); break; case LC_TIMELINE_INSERT_BEFORE: diff --git a/common/lc_model.cpp b/common/lc_model.cpp index a8b62ce5..93b52159 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -1,6 +1,6 @@ #include "lc_global.h" #include "lc_model.h" -#include "lc_modelaction.h" +#include "lc_modelhistory.h" #include "piece.h" #include "camera.h" #include "light.h" @@ -1168,13 +1168,13 @@ void lcModel::Cut() Copy(); - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); RemoveSelectedObjects(); - EndObjectEditAction(); - EndActionSequence(tr("Cut")); + EndEditHistory(); + EndHistorySequence(tr("Cut")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(true); @@ -1224,21 +1224,21 @@ void lcModel::Paste(bool PasteToCurrentStep) if (PastedPieces.empty()) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); Merge(std::move(Model)); CalculateStep(mCurrentStep); - EndObjectEditAction(); + EndEditHistory(); if (SelectedObjects.size() == 1) - RecordSetSelectionAndFocusAction(std::vector(), SelectedObjects.front(), LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), SelectedObjects.front(), LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); else - RecordSetSelectionAndFocusAction(SelectedObjects, nullptr, 0, lcSelectionMode::Single); + SetSelectionAndFocus(SelectedObjects, nullptr, 0, lcSelectionMode::Single); - EndActionSequence(tr("Paste")); + EndHistorySequence(tr("Paste")); gMainWindow->UpdateTimeline(false, false); } @@ -1251,8 +1251,8 @@ void lcModel::DuplicateSelectedPieces() return; } - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::vector NewPieces; lcPiece* Focus = nullptr; @@ -1309,11 +1309,11 @@ void lcModel::DuplicateSelectedPieces() NewPiece->SetGroup(GetNewGroup(Group)); } - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(NewPieces, Focus, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(NewPieces, Focus, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); - EndActionSequence(tr("Duplicate")); + EndHistorySequence(tr("Duplicate")); gMainWindow->UpdateTimeline(false, false); } @@ -1735,33 +1735,33 @@ void lcModel::SubModelAddBoundingBoxPoints(const lcMatrix44& WorldMatrix, std::v Piece->SubModelAddBoundingBoxPoints(WorldMatrix, Points); } -void lcModel::RecordSelectionAction(std::function Callback) +void lcModel::AddSelectionHistory(std::function Callback) { - std::unique_ptr ModelActionSelection = std::make_unique(); + std::unique_ptr ModelHistorySelect = std::make_unique(); - ModelActionSelection->SaveStartState(this); + ModelHistorySelect->SaveStartState(this); Callback(); - ModelActionSelection->SaveEndState(this); + ModelHistorySelect->SaveEndState(this); - if (ModelActionSelection->StateChanged()) - mActionSequence.emplace_back(std::move(ModelActionSelection)); + if (ModelHistorySelect->StateChanged()) + mHistorySequence.emplace_back(std::move(ModelHistorySelect)); } -void lcModel::RecordClearSelectionAction() +void lcModel::ClearSelection() { - RecordSelectionAction([this](){ DeselectAllObjects(); }); + AddSelectionHistory([this](){ DeselectAllObjects(); }); } -void lcModel::RecordSetFocusAction(lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode) +void lcModel::SetFocus(lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode) { - RecordSelectionAction([this, FocusObject, FocusSection, SelectionMode](){ SetFocusedObject(FocusObject, FocusSection, SelectionMode); }); + AddSelectionHistory([this, FocusObject, FocusSection, SelectionMode](){ SetFocusedObject(FocusObject, FocusSection, SelectionMode); }); } -void lcModel::RecordSetSelectionAndFocusAction(const std::vector& Objects, lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode) +void lcModel::SetSelectionAndFocus(const std::vector& Objects, lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode) { - RecordSelectionAction([this, &Objects, FocusObject, FocusSection, SelectionMode]() + AddSelectionHistory([this, &Objects, FocusObject, FocusSection, SelectionMode]() { DeselectAllObjects(); SetObjectsSelected(Objects, true); @@ -1769,9 +1769,9 @@ void lcModel::RecordSetSelectionAndFocusAction(const std::vector& Obj }); } -void lcModel::RecordSelectAllPiecesAction() +void lcModel::SelectAllPieces() { - RecordSelectionAction([this]() + AddSelectionHistory([this]() { for (const std::unique_ptr& Piece : mPieces) if (Piece->IsVisible(mCurrentStep)) @@ -1779,9 +1779,9 @@ void lcModel::RecordSelectAllPiecesAction() }); } -void lcModel::RecordInvertPieceSelectionAction() +void lcModel::InvertPieceSelection() { - RecordSelectionAction([this]() + AddSelectionHistory([this]() { for (const std::unique_ptr& Piece : mPieces) if (Piece->IsSelected() || Piece->IsVisible(mCurrentStep)) @@ -1789,14 +1789,14 @@ void lcModel::RecordInvertPieceSelectionAction() }); } -void lcModel::RecordAddToSelectionAction(const std::vector& Objects) +void lcModel::AddToSelection(const std::vector& Objects) { - RecordSelectionAction([this, &Objects](){ SetObjectsSelected(Objects, true); }); + AddSelectionHistory([this, &Objects](){ SetObjectsSelected(Objects, true); }); } -void lcModel::RecordRemoveFromSelectionAction(const std::vector& Objects) +void lcModel::RemoveFromSelection(const std::vector& Objects) { - RecordSelectionAction([this, &Objects](){ SetObjectsSelected(Objects, false); }); + AddSelectionHistory([this, &Objects](){ SetObjectsSelected(Objects, false); }); } template @@ -1838,7 +1838,7 @@ void lcModel::LoadObjectHistoryState(const std::vector& ObjectStates, Objects[ObjectIndex]->SetHistoryState(ObjectStates[ObjectIndex], this); } -void lcModel::LoadHistoryState(const lcModelHistoryState& HistoryState) +void lcModel::LoadEditHistoryState(const lcModelHistoryEditState& HistoryState) { LoadObjectHistoryState(HistoryState.Groups, mGroups); LoadObjectHistoryState(HistoryState.Pieces, mPieces); @@ -1846,32 +1846,32 @@ void lcModel::LoadHistoryState(const lcModelHistoryState& HistoryState) LoadObjectHistoryState(HistoryState.Lights, mLights); } -void lcModel::BeginObjectEditAction(lcModelActionEditMerge ModelActionEditMerge) +void lcModel::BeginEditHistory(lcModelHistoryEditMerge ModelHistoryEditMerge) { - std::unique_ptr ModelActionObjectEdit = std::make_unique(ModelActionEditMerge); + std::unique_ptr ModelHistoryEdit = std::make_unique(ModelHistoryEditMerge); - ModelActionObjectEdit->SaveStartState(this); + ModelHistoryEdit->SaveStartState(this); - mActionSequence.emplace_back(std::move(ModelActionObjectEdit)); + mHistorySequence.emplace_back(std::move(ModelHistoryEdit)); } -void lcModel::EndObjectEditAction() +void lcModel::EndEditHistory() { - if (mActionSequence.empty()) + if (mHistorySequence.empty()) return; - lcModelActionObjectEdit* ModelActionObjectEdit = dynamic_cast(mActionSequence.back().get()); + lcModelHistoryEdit* ModelHistoryEdit = dynamic_cast(mHistorySequence.back().get()); - if (!ModelActionObjectEdit) + if (!ModelHistoryEdit) return; - ModelActionObjectEdit->SaveEndState(this); + ModelHistoryEdit->SaveEndState(this); - if (!ModelActionObjectEdit->StateChanged()) - mActionSequence.pop_back(); + if (!ModelHistoryEdit->StateChanged()) + mHistorySequence.pop_back(); } -void lcModel::SetModelProperties(const lcModelProperties& ModelProperties) +void lcModel::LoadModelPropertiesState(const lcModelProperties& ModelProperties) { mProperties = ModelProperties; @@ -1879,55 +1879,55 @@ void lcModel::SetModelProperties(const lcModelProperties& ModelProperties) gMainWindow->GetPreviewWidget()->UpdatePreview(); } -void lcModel::RecordModelPropertiesAction(const lcModelProperties& ModelProperties) +void lcModel::SetModelProperties(const lcModelProperties& ModelProperties) { - std::unique_ptr ModelActionProperties = std::make_unique(); - ModelActionProperties->SaveStartState(this); + std::unique_ptr ModelHistoryProperties = std::make_unique(); + ModelHistoryProperties->SaveStartState(this); - SetModelProperties(ModelProperties); + LoadModelPropertiesState(ModelProperties); - ModelActionProperties->SaveEndState(this); + ModelHistoryProperties->SaveEndState(this); - if (ModelActionProperties->StateChanged()) - mActionSequence.emplace_back(std::move(ModelActionProperties)); + if (ModelHistoryProperties->StateChanged()) + mHistorySequence.emplace_back(std::move(ModelHistoryProperties)); } -void lcModel::RunActionSequence(const std::vector>& ActionSequence, bool Apply) +void lcModel::RunHistorySequence(const std::vector>& HistorySequence, bool Apply) { bool SelectionChanged = false; - auto RunAction=[this, &SelectionChanged](const lcModelAction* ModelAction, bool Apply) + auto RunAction=[this, &SelectionChanged](const lcModelHistory* ModelHistory, bool Apply) { - if (!ModelAction) + if (!ModelHistory) return; if (Apply) - ModelAction->LoadEndState(this); + ModelHistory->LoadEndState(this); else - ModelAction->LoadStartState(this); + ModelHistory->LoadStartState(this); - if (dynamic_cast(ModelAction)) + if (dynamic_cast(ModelHistory)) { SelectionChanged = true; } - else if (dynamic_cast(ModelAction)) + else if (dynamic_cast(ModelHistory)) { SetCurrentStep(mCurrentStep); } - else if (dynamic_cast(ModelAction)) + else if (dynamic_cast(ModelHistory)) { } }; if (Apply) { - for (auto ModelAction = ActionSequence.begin(); ModelAction != ActionSequence.end(); ++ModelAction) - RunAction(ModelAction->get(), true); + for (auto ModelHistory = HistorySequence.begin(); ModelHistory != HistorySequence.end(); ++ModelHistory) + RunAction(ModelHistory->get(), true); } else { - for (auto ModelAction = ActionSequence.rbegin(); ModelAction != ActionSequence.rend(); ++ModelAction) - RunAction(ModelAction->get(), false); + for (auto ModelHistory = HistorySequence.rbegin(); ModelHistory != HistorySequence.rend(); ++ModelHistory) + RunAction(ModelHistory->get(), false); } if (SelectionChanged) @@ -1939,46 +1939,46 @@ void lcModel::RunActionSequence(const std::vector UpdateAllViews(); } -void lcModel::BeginActionSequence() +void lcModel::BeginHistorySequence() { - mActionSequence.clear(); + mHistorySequence.clear(); } -void lcModel::EndActionSequence(const QString& Description) +void lcModel::EndHistorySequence(const QString& Description) { - if (mActionSequence.empty()) + if (mHistorySequence.empty()) return; if (mIsPreview) { - mActionSequence.clear(); + mHistorySequence.clear(); return; } bool CanMerge = false; - if (mActionSequence.size() == 1 && !mUndoHistory.empty() && mUndoHistory.front()->ModelActions.size() == 1) - CanMerge = mActionSequence.front()->CanMergeWith(mUndoHistory.front()->ModelActions.front().get()); + if (mHistorySequence.size() == 1 && !mUndoHistory.empty() && mUndoHistory.front()->HistorySequence.size() == 1) + CanMerge = mHistorySequence.front()->CanMergeWith(mUndoHistory.front()->HistorySequence.front().get()); if (!CanMerge) { std::unique_ptr ModelHistoryEntry = std::make_unique(lcModelHistoryEntry()); ModelHistoryEntry->Description = Description; - ModelHistoryEntry->ModelActions = std::move(mActionSequence); + ModelHistoryEntry->HistorySequence = std::move(mHistorySequence); mUndoHistory.insert(mUndoHistory.begin(), std::move(ModelHistoryEntry)); } else { - lcModelActionObjectEdit* ModelActionEdit = dynamic_cast(mActionSequence.front().get()); + lcModelHistoryEdit* ModelHistoryEdit = dynamic_cast(mHistorySequence.front().get()); lcModelHistoryEntry* LastHistoryEntry = mUndoHistory.front().get(); - lcModelActionObjectEdit* LastModelActionEdit = dynamic_cast(LastHistoryEntry->ModelActions.front().get()); + lcModelHistoryEdit* LastModelHistoryEdit = dynamic_cast(LastHistoryEntry->HistorySequence.front().get()); - LastModelActionEdit->MergeWith(ModelActionEdit); + LastModelHistoryEdit->MergeWith(ModelHistoryEdit); - mActionSequence.clear(); + mHistorySequence.clear(); } mRedoHistory.clear(); @@ -1986,9 +1986,9 @@ void lcModel::EndActionSequence(const QString& Description) gMainWindow->UpdateModified(IsModified()); gMainWindow->UpdateUndoRedo(!mUndoHistory.empty() ? mUndoHistory.front()->Description : nullptr, !mRedoHistory.empty() ? mRedoHistory.front()->Description : nullptr); - for (const std::unique_ptr& ModelAction : mUndoHistory.front()->ModelActions) + for (const std::unique_ptr& ModelHistory : mUndoHistory.front()->HistorySequence) { - if (dynamic_cast(ModelAction.get())) + if (dynamic_cast(ModelHistory.get())) { gMainWindow->UpdateSelectedObjects(true); break; @@ -1999,16 +1999,16 @@ void lcModel::EndActionSequence(const QString& Description) gMainWindow->UpdateTimeline(true, false); } -void lcModel::DiscardActionSequence() +void lcModel::DiscardHistorySequence() { - mActionSequence.clear(); + mHistorySequence.clear(); } -void lcModel::RevertActionSequence() +void lcModel::RevertHistorySequence() { - RunActionSequence(mActionSequence, false); + RunHistorySequence(mHistorySequence, false); - mActionSequence.clear(); + mHistorySequence.clear(); } bool lcModel::IsModified() const @@ -2031,8 +2031,8 @@ void lcModel::RemoveFirstUndoIfUnchanged() if (mUndoHistory.empty()) return; - for (const std::unique_ptr& ModelAction : mUndoHistory.front()->ModelActions) - if (ModelAction->StateChanged()) + for (const std::unique_ptr& ModelHistory : mUndoHistory.front()->HistorySequence) + if (ModelHistory->StateChanged()) return; mUndoHistory.erase(mUndoHistory.begin()); @@ -2044,7 +2044,7 @@ void lcModel::RemoveFirstUndoIfUnchanged() const lcModelHistoryEntry* lcModel::GetFirstUndoChange() const { for (const std::unique_ptr& UndoEntry : mUndoHistory) - if (UndoEntry->ModelActions.size() != 1 || !dynamic_cast(UndoEntry->ModelActions.front().get())) + if (UndoEntry->HistorySequence.size() != 1 || !dynamic_cast(UndoEntry->HistorySequence.front().get())) return UndoEntry.get(); return nullptr; @@ -2125,8 +2125,8 @@ lcStep lcModel::GetLastStep() const void lcModel::InsertStep(lcStep Step) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) Piece->InsertTime(Step, 1); @@ -2138,16 +2138,16 @@ void lcModel::InsertStep(lcStep Step) Light->InsertTime(Step, 1); - EndObjectEditAction(); - EndActionSequence(tr("Insert Step")); + EndEditHistory(); + EndHistorySequence(tr("Insert Step")); SetCurrentStep(mCurrentStep); } void lcModel::RemoveStep(lcStep Step) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) Piece->RemoveTime(Step, 1); @@ -2158,8 +2158,8 @@ void lcModel::RemoveStep(lcStep Step) for (const std::unique_ptr& Light : mLights) Light->RemoveTime(Step, 1); - EndObjectEditAction(); - EndActionSequence(tr("Remove Step")); + EndEditHistory(); + EndHistorySequence(tr("Remove Step")); SetCurrentStep(mCurrentStep); } @@ -2218,8 +2218,8 @@ void lcModel::GroupSelection() if (Dialog.exec() != QDialog::Accepted) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); lcGroup* NewGroup = GetGroup(Dialog.mName, true); @@ -2236,8 +2236,8 @@ void lcModel::GroupSelection() } } - EndObjectEditAction(); - EndActionSequence(tr("Group")); + EndEditHistory(); + EndHistorySequence(tr("Group")); gMainWindow->UpdateSelectedObjects(true); } @@ -2252,8 +2252,8 @@ void lcModel::UngroupSelection() std::set SelectedGroups; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) { @@ -2278,7 +2278,7 @@ void lcModel::UngroupSelection() if (SelectedGroups.empty()) { - DiscardActionSequence(); + DiscardHistorySequence(); QMessageBox::information(gMainWindow, tr("Ungroup Selection"), tr("No groups selected.")); @@ -2302,8 +2302,8 @@ void lcModel::UngroupSelection() RemoveEmptyGroups(); - EndObjectEditAction(); - EndActionSequence(tr("Ungroup")); + EndEditHistory(); + EndHistorySequence(tr("Ungroup")); gMainWindow->UpdateSelectedObjects(true); } @@ -2325,8 +2325,8 @@ void lcModel::AddSelectedPiecesToGroup() if (!Group) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) { @@ -2339,8 +2339,8 @@ void lcModel::AddSelectedPiecesToGroup() RemoveEmptyGroups(); - EndObjectEditAction(); - EndActionSequence(tr("Group")); + EndEditHistory(); + EndHistorySequence(tr("Group")); gMainWindow->UpdateSelectedObjects(false); } @@ -2363,15 +2363,15 @@ void lcModel::RemoveFocusPieceFromGroup() if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } RemoveEmptyGroups(); - EndObjectEditAction(); - EndActionSequence(tr("Ungroup")); + EndEditHistory(); + EndHistorySequence(tr("Ungroup")); } void lcModel::ShowEditGroupsDialog() @@ -2381,8 +2381,8 @@ void lcModel::ShowEditGroupsDialog() if (Dialog.exec() != QDialog::Accepted) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::function UpdateGroups=[this, &UpdateGroups](const lcQEditGroupsDialog::GroupInfo& GroupInfo, lcGroup* ParentGroup) { @@ -2414,17 +2414,17 @@ void lcModel::ShowEditGroupsDialog() RemoveEmptyGroups(); - EndObjectEditAction(); + EndEditHistory(); - if (mActionSequence.empty()) + if (mHistorySequence.empty()) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - RecordClearSelectionAction(); + ClearSelection(); - EndActionSequence(tr("Edit Groups")); + EndHistorySequence(tr("Edit Groups")); gMainWindow->UpdateSelectedObjects(true); } @@ -2617,8 +2617,8 @@ lcPiece* lcModel::AddPiece(PieceInfo* Info, quint32 Section) AddPiece(Piece); }; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); if (Last) { @@ -2661,16 +2661,16 @@ lcPiece* lcModel::AddPiece(PieceInfo* Info, quint32 Section) if (!Piece) { - DiscardActionSequence(); + DiscardHistorySequence(); return nullptr; } - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(std::vector(), Piece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), Piece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); - EndActionSequence(tr("Add Piece")); + EndHistorySequence(tr("Add Piece")); gMainWindow->UpdateTimeline(false, false); @@ -2733,9 +2733,9 @@ void lcModel::FocusNextTrainTrack() ConnectionIndex = (ConnectionIndex + 1) % TrainTrackInfo->GetConnections().size(); } - BeginActionSequence(); - RecordSetFocusAction(FocusPiece, LC_PIECE_SECTION_TRAIN_TRACK_CONNECTION_FIRST + ConnectionIndex, lcSelectionMode::Single); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + SetFocus(FocusPiece, LC_PIECE_SECTION_TRAIN_TRACK_CONNECTION_FIRST + ConnectionIndex, lcSelectionMode::Single); + EndHistorySequence(tr("Selection")); } void lcModel::FocusPreviousTrainTrack() @@ -2760,9 +2760,9 @@ void lcModel::FocusPreviousTrainTrack() ConnectionIndex = (ConnectionIndex + static_cast(TrainTrackInfo->GetConnections().size()) - 1) % TrainTrackInfo->GetConnections().size(); } - BeginActionSequence(); - RecordSetFocusAction(FocusPiece, LC_PIECE_SECTION_TRAIN_TRACK_CONNECTION_FIRST + ConnectionIndex, lcSelectionMode::Single); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + SetFocus(FocusPiece, LC_PIECE_SECTION_TRAIN_TRACK_CONNECTION_FIRST + ConnectionIndex, lcSelectionMode::Single); + EndHistorySequence(tr("Selection")); } void lcModel::RotateFocusedTrainTrack(int Direction) @@ -2815,20 +2815,20 @@ void lcModel::RotateFocusedTrainTrack(int Direction) if (!Transform) return; - BeginActionSequence(); + BeginHistorySequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginEditHistory(lcModelHistoryEditMerge::None); FocusPiece->SetPosition(Transform.value().GetTranslation(), mCurrentStep, gMainWindow->GetAddKeys()); FocusPiece->SetRotation(lcMatrix33(Transform.value()), mCurrentStep, gMainWindow->GetAddKeys()); FocusPiece->UpdatePosition(mCurrentStep); - EndObjectEditAction(); + EndEditHistory(); if ((FocusSection != LC_PIECE_SECTION_INVALID && FocusSection != LC_PIECE_SECTION_POSITION) || !TracksConnected) - RecordSetFocusAction(FocusPiece, LC_PIECE_SECTION_TRAIN_TRACK_CONNECTION_FIRST + NewConnectionIndex, lcSelectionMode::Single); + SetFocus(FocusPiece, LC_PIECE_SECTION_TRAIN_TRACK_CONNECTION_FIRST + NewConnectionIndex, lcSelectionMode::Single); - EndActionSequence(tr("Rotate")); + EndHistorySequence(tr("Rotate")); gMainWindow->UpdateSelectedObjects(true); } @@ -2896,20 +2896,20 @@ void lcModel::DeleteSelectedObjects() return; } - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = RemoveSelectedObjects(); if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Delete")); + EndEditHistory(); + EndHistorySequence(tr("Delete")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(true); @@ -2918,21 +2918,21 @@ void lcModel::DeleteSelectedObjects() void lcModel::ResetSelectedPiecesPivotPoint() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) if (Piece->IsSelected()) Piece->ResetPivotPoint(); - EndObjectEditAction(); - EndActionSequence(tr("Reset Pivot Point")); + EndEditHistory(); + EndHistorySequence(tr("Reset Pivot Point")); } void lcModel::RemoveSelectedObjectsKeyFrames() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) if (Piece->IsSelected()) @@ -2946,8 +2946,8 @@ void lcModel::RemoveSelectedObjectsKeyFrames() if (Light->IsSelected()) Light->RemoveKeyFrames(); - EndObjectEditAction(); - EndActionSequence(tr("Remove Key Frames")); + EndEditHistory(); + EndHistorySequence(tr("Remove Key Frames")); } void lcModel::InsertControlPoint() @@ -2961,20 +2961,20 @@ void lcModel::InsertControlPoint() gMainWindow->GetActiveView()->GetRayUnderPointer(Start, End); - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = Piece->InsertControlPoint(Start, End); if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Add Control Point")); + EndEditHistory(); + EndHistorySequence(tr("Add Control Point")); gMainWindow->UpdateSelectedObjects(true); } @@ -2986,28 +2986,28 @@ void lcModel::RemoveFocusedControlPoint() if (!Piece) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = Piece->RemoveFocusedControlPoint(); if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Remove Control Point")); + EndEditHistory(); + EndHistorySequence(tr("Remove Control Point")); gMainWindow->UpdateSelectedObjects(true); } void lcModel::ShowSelectedPiecesEarlier() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::vector MovedPieces; @@ -3035,7 +3035,7 @@ void lcModel::ShowSelectedPiecesEarlier() if (MovedPieces.empty()) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } @@ -3046,8 +3046,8 @@ void lcModel::ShowSelectedPiecesEarlier() AddPiece(Piece); } - EndObjectEditAction(); - EndActionSequence(tr("Show Earlier")); + EndEditHistory(); + EndHistorySequence(tr("Show Earlier")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(true); @@ -3055,8 +3055,8 @@ void lcModel::ShowSelectedPiecesEarlier() void lcModel::ShowSelectedPiecesLater() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::vector MovedPieces; @@ -3085,7 +3085,7 @@ void lcModel::ShowSelectedPiecesLater() if (MovedPieces.empty()) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } @@ -3096,8 +3096,8 @@ void lcModel::ShowSelectedPiecesLater() AddPiece(Piece); } - EndObjectEditAction(); - EndActionSequence(tr("Show Later")); + EndEditHistory(); + EndHistorySequence(tr("Show Later")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(false); @@ -3108,8 +3108,8 @@ void lcModel::SetPieceSteps(const std::vector>& Piec if (PieceSteps.size() != mPieces.size()) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -3133,15 +3133,15 @@ void lcModel::SetPieceSteps(const std::vector>& Piec if (Modified) { - EndObjectEditAction(); - EndActionSequence(tr("Change Step")); + EndEditHistory(); + EndHistorySequence(tr("Change Step")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(false); } else { - DiscardActionSequence(); + DiscardHistorySequence(); } } @@ -3157,8 +3157,8 @@ void lcModel::MoveSelectionToModel(lcModel* Model) if (!Model) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::vector Pieces; lcPiece* ModelPiece = nullptr; @@ -3192,7 +3192,7 @@ void lcModel::MoveSelectionToModel(lcModel* Model) if (Pieces.empty()) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } @@ -3216,19 +3216,19 @@ void lcModel::MoveSelectionToModel(lcModel* Model) ModelPiece->UpdatePosition(mCurrentStep); } - EndObjectEditAction(); + EndEditHistory(); gMainWindow->UpdateTimeline(false, false); - RecordSetSelectionAndFocusAction(std::vector(), ModelPiece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), ModelPiece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); - EndActionSequence(tr("Move to Model")); + EndHistorySequence(tr("Move to Model")); } void lcModel::InlineSelectedModels() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::vector NewPieces; bool Modified = false; @@ -3278,16 +3278,16 @@ void lcModel::InlineSelectedModels() { QMessageBox::information(gMainWindow, tr("LeoCAD"), tr("No models selected.")); - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(NewPieces, nullptr, 0, lcSelectionMode::Single); + SetSelectionAndFocus(NewPieces, nullptr, 0, lcSelectionMode::Single); - EndActionSequence(tr("Inline Model")); + EndHistorySequence(tr("Inline Model")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateInUseCategory(); @@ -3354,12 +3354,12 @@ bool lcModel::RemoveSelectedObjects() return RemovedPiece || RemovedCamera || RemovedLight; } -void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Checkpoint, bool FirstMove, lcModelActionEditMerge ModelActionEditMerge) +void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Checkpoint, bool FirstMove, lcModelHistoryEditMerge ModelHistoryEditMerge) { if (Checkpoint) { - BeginActionSequence(); - BeginObjectEditAction(ModelActionEditMerge); + BeginHistorySequence(); + BeginEditHistory(ModelHistoryEditMerge); } bool Moved = false; @@ -3431,15 +3431,15 @@ void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector if (!Moved) { if (Checkpoint) - DiscardActionSequence(); + DiscardHistorySequence(); return; } if (Checkpoint) { - EndObjectEditAction(); - EndActionSequence(tr("Move")); + EndEditHistory(); + EndHistorySequence(tr("Move")); RemoveFirstUndoIfUnchanged(); } @@ -3448,15 +3448,15 @@ void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector gMainWindow->UpdateSelectedObjects(false); } -void lcModel::RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool RotatePivotPoint, bool Checkpoint, lcModelActionEditMerge ModelActionEditMerge) +void lcModel::RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool RotatePivotPoint, bool Checkpoint, lcModelHistoryEditMerge ModelHistoryEditMerge) { if (Angles.LengthSquared() < 0.001f) return; if (Checkpoint) { - BeginActionSequence(); - BeginObjectEditAction(ModelActionEditMerge); + BeginHistorySequence(); + BeginEditHistory(ModelHistoryEditMerge); } lcMatrix33 RotationMatrix = lcMatrix33Identity(); @@ -3617,15 +3617,15 @@ void lcModel::RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool if (!Rotated) { if (Checkpoint) - DiscardActionSequence(); + DiscardHistorySequence(); return; } if (Checkpoint) { - EndObjectEditAction(); - EndActionSequence(tr("Rotate")); + EndEditHistory(); + EndHistorySequence(tr("Rotate")); RemoveFirstUndoIfUnchanged(); } @@ -3658,19 +3658,19 @@ void lcModel::TransformSelectedObjects(lcTransformType TransformType, const lcVe switch (TransformType) { case lcTransformType::AbsoluteTranslation: - MoveSelectedObjects(Transform, false, false, true, true, lcModelActionEditMerge::None); + MoveSelectedObjects(Transform, false, false, true, true, lcModelHistoryEditMerge::None); break; case lcTransformType::RelativeTranslation: - MoveSelectedObjects(Transform, true, false, true, true, lcModelActionEditMerge::None); + MoveSelectedObjects(Transform, true, false, true, true, lcModelHistoryEditMerge::None); break; case lcTransformType::AbsoluteRotation: - RotateSelectedObjects(Transform, false, false, true, lcModelActionEditMerge::None); + RotateSelectedObjects(Transform, false, false, true, lcModelHistoryEditMerge::None); break; case lcTransformType::RelativeRotation: - RotateSelectedObjects(Transform, true, false, true, lcModelActionEditMerge::None); + RotateSelectedObjects(Transform, true, false, true, lcModelHistoryEditMerge::None); break; case lcTransformType::Count: @@ -3680,8 +3680,8 @@ void lcModel::TransformSelectedObjects(lcTransformType TransformType, const lcVe void lcModel::SetObjectsKeyFrame(const std::vector& Objects, lcObjectPropertyId PropertyId, bool KeyFrame) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -3693,21 +3693,21 @@ void lcModel::SetObjectsKeyFrame(const std::vector& Objects, lcObject if (Modified) { - EndObjectEditAction(); - EndActionSequence(KeyFrame ? tr("Add KeyFrame") : tr("Remove KeyFrame")); + EndEditHistory(); + EndHistorySequence(KeyFrame ? tr("Add KeyFrame") : tr("Remove KeyFrame")); gMainWindow->UpdateSelectedObjects(false); } else { - DiscardActionSequence(); + DiscardHistorySequence(); } } void lcModel::SetSelectedPiecesColorIndex(int ColorIndex) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -3722,15 +3722,15 @@ void lcModel::SetSelectedPiecesColorIndex(int ColorIndex) if (Modified) { - EndObjectEditAction(); - EndActionSequence(tr("Paint")); + EndEditHistory(); + EndHistorySequence(tr("Paint")); gMainWindow->UpdateSelectedObjects(false); gMainWindow->UpdateTimeline(false, true); } else { - DiscardActionSequence(); + DiscardHistorySequence(); } } @@ -3757,8 +3757,8 @@ void lcModel::SetSelectedPiecesStepShow(lcStep Step) if (MovedPieces.empty()) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (lcPiece* Piece : MovedPieces) { @@ -3766,8 +3766,8 @@ void lcModel::SetSelectedPiecesStepShow(lcStep Step) AddPiece(Piece); } - EndObjectEditAction(); - EndActionSequence(tr("Set Show Step")); + EndEditHistory(); + EndHistorySequence(tr("Set Show Step")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(false); @@ -3777,8 +3777,8 @@ void lcModel::SetSelectedPiecesStepHide(lcStep Step) { bool Modified = false; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); for (const std::unique_ptr& Piece : mPieces) { @@ -3792,13 +3792,13 @@ void lcModel::SetSelectedPiecesStepHide(lcStep Step) if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Set Hide Step")); + EndEditHistory(); + EndHistorySequence(tr("Set Hide Step")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(false); @@ -3811,8 +3811,8 @@ void lcModel::SetCameraProjection(lcCamera* Camera, lcCameraProjection CameraPro if (!Camera->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); } Camera->SetProjection(CameraProjection); @@ -3820,8 +3820,8 @@ void lcModel::SetCameraProjection(lcCamera* Camera, lcCameraProjection CameraPro if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Change Projection")); + EndEditHistory(); + EndHistorySequence(tr("Change Projection")); } UpdateAllViews(); @@ -3830,8 +3830,8 @@ void lcModel::SetCameraProjection(lcCamera* Camera, lcCameraProjection CameraPro void lcModel::SetObjectsProperty(const std::vector& Objects, lcObjectPropertyId PropertyId, QVariant Value) { - BeginActionSequence(); - BeginObjectEditAction(static_cast(static_cast(lcModelActionEditMerge::PropertiesEdit) | static_cast(PropertyId))); + BeginHistorySequence(); + BeginEditHistory(static_cast(static_cast(lcModelHistoryEditMerge::PropertiesEdit) | static_cast(PropertyId))); bool Modified = false; @@ -3848,13 +3848,13 @@ void lcModel::SetObjectsProperty(const std::vector& Objects, lcObject if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(lcObject::GetCheckpointString(PropertyId)); + EndEditHistory(); + EndHistorySequence(lcObject::GetCheckpointString(PropertyId)); RemoveFirstUndoIfUnchanged(); @@ -3880,7 +3880,7 @@ void lcModel::EndPropertyEdit(lcObjectPropertyId PropertyId, bool Accept) if (!Accept) { - RevertActionSequence(); + RevertHistorySequence(); return; } } @@ -4344,65 +4344,65 @@ void lcModel::GetSelectionInformation(int* Flags, std::vector& Select } } -void lcModel::ClearSelection() +void lcModel::ClearSelectionAction() { - BeginActionSequence(); - RecordClearSelectionAction(); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + ClearSelection(); + EndHistorySequence(tr("Selection")); } -void lcModel::SetSelectionAndFocus(const std::vector& Objects, lcObject* Focus, quint32 Section, lcSelectionMode SelectionMode) +void lcModel::SetSelectionAndFocusAction(const std::vector& Objects, lcObject* Focus, quint32 Section, lcSelectionMode SelectionMode) { - BeginActionSequence(); - RecordSetSelectionAndFocusAction(Objects, Focus, Section, SelectionMode); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + SetSelectionAndFocus(Objects, Focus, Section, SelectionMode); + EndHistorySequence(tr("Selection")); } -void lcModel::FocusOrDeselectObject(lcObject* Object, uint32_t Section, lcSelectionMode SelectionMode) +void lcModel::FocusOrDeselectObjectAction(lcObject* Object, uint32_t Section, lcSelectionMode SelectionMode) { - BeginActionSequence(); + BeginHistorySequence(); if (Object) { if (!Object->IsFocused(Section)) - RecordSetFocusAction(Object, Section, SelectionMode); + SetFocus(Object, Section, SelectionMode); else - RecordSetFocusAction(nullptr, ~0U, SelectionMode); + SetFocus(nullptr, ~0U, SelectionMode); } else { - RecordSetFocusAction(nullptr, 0, SelectionMode); + SetFocus(nullptr, 0, SelectionMode); } - EndActionSequence(tr("Selection")); + EndHistorySequence(tr("Selection")); } -void lcModel::SelectAllPieces() +void lcModel::SelectAllPiecesAction() { - BeginActionSequence(); - RecordSelectAllPiecesAction(); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + SelectAllPieces(); + EndHistorySequence(tr("Selection")); } -void lcModel::InvertPieceSelection() +void lcModel::InvertPieceSelectionAction() { - BeginActionSequence(); - RecordInvertPieceSelectionAction(); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + InvertPieceSelection(); + EndHistorySequence(tr("Selection")); } -void lcModel::AddToSelection(const std::vector& Objects) +void lcModel::AddToSelectionAction(const std::vector& Objects) { - BeginActionSequence(); - RecordAddToSelectionAction(Objects); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + AddToSelection(Objects); + EndHistorySequence(tr("Selection")); } -void lcModel::RemoveFromSelection(const std::vector& Objects) +void lcModel::RemoveFromSelectionAction(const std::vector& Objects) { - BeginActionSequence(); - RecordRemoveFromSelectionAction(Objects); - EndActionSequence(tr("Selection")); + BeginHistorySequence(); + RemoveFromSelection(Objects); + EndHistorySequence(tr("Selection")); } std::vector lcModel::GetSelectionModePieces(lcSelectionMode SelectionMode, const lcPiece* SelectedPiece) const @@ -4505,8 +4505,8 @@ void lcModel::SelectGroup(lcGroup* TopGroup, bool Select) void lcModel::HideSelectedPieces() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -4522,16 +4522,16 @@ void lcModel::HideSelectedPieces() if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); + EndEditHistory(); - RecordClearSelectionAction(); + ClearSelection(); - EndActionSequence(tr("Hide Pieces")); + EndHistorySequence(tr("Hide Pieces")); gMainWindow->UpdateTimeline(false, true); gMainWindow->UpdateSelectedObjects(true); @@ -4539,8 +4539,8 @@ void lcModel::HideSelectedPieces() void lcModel::HideUnselectedPieces() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -4556,13 +4556,13 @@ void lcModel::HideUnselectedPieces() if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Hide Pieces")); + EndEditHistory(); + EndHistorySequence(tr("Hide Pieces")); gMainWindow->UpdateTimeline(false, true); gMainWindow->UpdateSelectedObjects(true); @@ -4570,8 +4570,8 @@ void lcModel::HideUnselectedPieces() void lcModel::UnhideSelectedPieces() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -4587,13 +4587,13 @@ void lcModel::UnhideSelectedPieces() if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Unhide Pieces")); + EndEditHistory(); + EndHistorySequence(tr("Unhide Pieces")); gMainWindow->UpdateTimeline(false, true); gMainWindow->UpdateSelectedObjects(true); @@ -4601,8 +4601,8 @@ void lcModel::UnhideSelectedPieces() void lcModel::UnhideAllPieces() { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); bool Modified = false; @@ -4618,13 +4618,13 @@ void lcModel::UnhideAllPieces() if (!Modified) { - DiscardActionSequence(); + DiscardHistorySequence(); return; } - EndObjectEditAction(); - EndActionSequence(tr("Unhide Pieces")); + EndEditHistory(); + EndHistorySequence(tr("Unhide Pieces")); gMainWindow->UpdateTimeline(false, true); gMainWindow->UpdateSelectedObjects(true); @@ -4666,8 +4666,8 @@ void lcModel::FindReplacePiece(bool SearchForward, bool FindAll, bool Replace) size_t StartIndex = mPieces.size() - 1; int ReplacedCount = 0; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); if (!FindAll) { @@ -4738,22 +4738,22 @@ void lcModel::FindReplacePiece(bool SearchForward, bool FindAll, bool Replace) break; } - EndObjectEditAction(); + EndEditHistory(); if (FindAll) - RecordSetSelectionAndFocusAction(Selection, nullptr, 0, lcSelectionMode::Single); + SetSelectionAndFocus(Selection, nullptr, 0, lcSelectionMode::Single); else - RecordSetSelectionAndFocusAction(std::vector(), Focus, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), Focus, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); if (ReplacedCount) { - EndActionSequence(tr("Replace Piece(s)", "", ReplacedCount)); + EndHistorySequence(tr("Replace Piece(s)", "", ReplacedCount)); gMainWindow->UpdateSelectedObjects(false); gMainWindow->UpdateTimeline(false, true); } else - EndActionSequence(tr("Selection")); + EndHistorySequence(tr("Selection")); } void lcModel::UndoAction() @@ -4763,7 +4763,7 @@ void lcModel::UndoAction() std::unique_ptr Undo = std::move(mUndoHistory.front()); - RunActionSequence(Undo->ModelActions, false); + RunHistorySequence(Undo->HistorySequence, false); mUndoHistory.erase(mUndoHistory.begin()); mRedoHistory.insert(mRedoHistory.begin(), std::move(Undo)); @@ -4779,7 +4779,7 @@ void lcModel::RedoAction() std::unique_ptr Redo = std::move(mRedoHistory.front()); - RunActionSequence(Redo->ModelActions, true); + RunHistorySequence(Redo->HistorySequence, true); mRedoHistory.erase(mRedoHistory.begin()); mUndoHistory.insert(mUndoHistory.begin(), std::move(Redo)); @@ -4803,8 +4803,8 @@ void lcModel::BeginMouseTool(lcTool Tool, lcView* View) case lcTool::Move: case lcTool::Rotate: - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); break; case lcTool::Eraser: @@ -4818,8 +4818,8 @@ void lcModel::BeginMouseTool(lcTool Tool, lcView* View) case lcTool::Roll: if (!View->GetCamera()->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); } break; @@ -4838,7 +4838,7 @@ void lcModel::EndMouseTool(lcTool Tool, lcView* View, bool Accept) { if (!Accept) { - RevertActionSequence(); + RevertHistorySequence(); return; } @@ -4856,13 +4856,13 @@ void lcModel::EndMouseTool(lcTool Tool, lcView* View, bool Accept) break; case lcTool::Move: - EndObjectEditAction(); - EndActionSequence(tr("Move")); + EndEditHistory(); + EndHistorySequence(tr("Move")); break; case lcTool::Rotate: - EndObjectEditAction(); - EndActionSequence(tr("Rotate")); + EndEditHistory(); + EndHistorySequence(tr("Rotate")); break; case lcTool::Eraser: @@ -4873,32 +4873,32 @@ void lcModel::EndMouseTool(lcTool Tool, lcView* View, bool Accept) case lcTool::Zoom: if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Zoom")); + EndEditHistory(); + EndHistorySequence(tr("Zoom")); } break; case lcTool::Pan: if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Pan")); + EndEditHistory(); + EndHistorySequence(tr("Pan")); } break; case lcTool::RotateView: if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Orbit")); + EndEditHistory(); + EndHistorySequence(tr("Orbit")); } break; case lcTool::Roll: if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Roll")); + EndEditHistory(); + EndHistorySequence(tr("Roll")); } break; @@ -4915,8 +4915,8 @@ void lcModel::InsertPieceToolClicked(const std::vector& Piece if (PieceInfoTransforms.empty()) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); lcPiece* Piece = nullptr; @@ -4931,11 +4931,11 @@ void lcModel::InsertPieceToolClicked(const std::vector& Piece AddPiece(Piece); } - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(std::vector(), Piece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), Piece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); - EndActionSequence(tr("Add Piece")); + EndHistorySequence(tr("Add Piece")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateInUseCategory(); @@ -4945,19 +4945,19 @@ void lcModel::InsertPieceToolClicked(const std::vector& Piece void lcModel::InsertCameraToolClicked(const lcVector3& Position) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); lcCamera* Camera = new lcCamera(false, Position, GetSelectionOrModelCenter()); Camera->CreateName(mCameras); mCameras.emplace_back(Camera); - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(std::vector(), Camera, LC_CAMERA_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), Camera, LC_CAMERA_SECTION_POSITION, lcSelectionMode::Single); - EndActionSequence(tr("Add Camera")); + EndHistorySequence(tr("Add Camera")); } void lcModel::InsertLightToolClicked(const lcVector3& Position, lcLightType LightType) @@ -4986,19 +4986,19 @@ void lcModel::InsertLightToolClicked(const lcVector3& Position, lcLightType Ligh return; } - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); lcLight* Light = new lcLight(Position, LightType); Light->CreateName(mLights); mLights.emplace_back(Light); - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(std::vector(), Light, LC_LIGHT_SECTION_POSITION, lcSelectionMode::Single); + SetSelectionAndFocus(std::vector(), Light, LC_LIGHT_SECTION_POSITION, lcSelectionMode::Single); - EndActionSequence(ActionName); + EndHistorySequence(ActionName); } void lcModel::UpdateMoveTool(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag) @@ -5006,7 +5006,7 @@ void lcModel::UpdateMoveTool(const lcVector3& Distance, bool AllowRelative, bool const lcVector3 PieceDistance = SnapPosition(Distance) - SnapPosition(mMouseToolDistance); const lcVector3 ObjectDistance = Distance - mMouseToolDistance; - MoveSelectedObjects(PieceDistance, ObjectDistance, AllowRelative, AlternateButtonDrag, false, mMouseToolFirstMove, lcModelActionEditMerge::None); + MoveSelectedObjects(PieceDistance, ObjectDistance, AllowRelative, AlternateButtonDrag, false, mMouseToolFirstMove, lcModelHistoryEditMerge::None); mMouseToolDistance = Distance; mMouseToolFirstMove = false; @@ -5089,7 +5089,7 @@ void lcModel::UpdateFreeMoveTool(lcPiece* MousePiece, const lcMatrix44& StartTra void lcModel::UpdateRotateTool(const lcVector3& Angles, bool AlternateButtonDrag) { const lcVector3 Delta = SnapRotation(Angles) - SnapRotation(mMouseToolDistance); - RotateSelectedObjects(Delta, true, AlternateButtonDrag, false, lcModelActionEditMerge::None); + RotateSelectedObjects(Delta, true, AlternateButtonDrag, false, lcModelHistoryEditMerge::None); mMouseToolDistance = Angles; mMouseToolFirstMove = false; @@ -5108,8 +5108,8 @@ void lcModel::EraserToolClicked(lcObject* Object) if (!Object) return; - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); switch (Object->GetType()) { @@ -5158,8 +5158,8 @@ void lcModel::EraserToolClicked(lcObject* Object) break; } - EndObjectEditAction(); - EndActionSequence(tr("Delete")); + EndEditHistory(); + EndHistorySequence(tr("Delete")); gMainWindow->UpdateTimeline(false, false); gMainWindow->UpdateSelectedObjects(true); @@ -5174,13 +5174,13 @@ void lcModel::PaintToolClicked(lcObject* Object) if (Piece->GetColorIndex() != gMainWindow->mColorIndex) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); Piece->SetColorIndex(gMainWindow->mColorIndex); - EndObjectEditAction(); - EndActionSequence(tr("Paint")); + EndEditHistory(); + EndHistorySequence(tr("Paint")); gMainWindow->UpdateSelectedObjects(false); gMainWindow->UpdateTimeline(false, true); @@ -5238,16 +5238,16 @@ void lcModel::ZoomRegionToolClicked(lcView* View, float AspectRatio, const lcVec if (!Camera->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); } Camera->ZoomRegion(AspectRatio, Position, TargetPosition, Corners, mCurrentStep, gMainWindow->GetAddKeys()); if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Zoom")); + EndEditHistory(); + EndHistorySequence(tr("Zoom")); } gMainWindow->UpdateSelectedObjects(false); @@ -5270,8 +5270,8 @@ void lcModel::LookAt(lcCamera* Camera) if (!Camera->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); } Camera->Center(Center, mCurrentStep, gMainWindow->GetAddKeys()); @@ -5281,8 +5281,8 @@ void lcModel::LookAt(lcCamera* Camera) if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Look At")); + EndEditHistory(); + EndHistorySequence(tr("Look At")); } } @@ -5290,8 +5290,8 @@ void lcModel::MoveCamera(lcCamera* Camera, const lcVector3& Direction) { if (!Camera->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::KeyboardMoveCamera); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::KeyboardMoveCamera); } Camera->MoveRelative(Direction, mCurrentStep, gMainWindow->GetAddKeys()); @@ -5301,8 +5301,8 @@ void lcModel::MoveCamera(lcCamera* Camera, const lcVector3& Direction) if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Move")); + EndEditHistory(); + EndHistorySequence(tr("Move")); } } @@ -5327,8 +5327,8 @@ void lcModel::ZoomExtents(lcCamera* Camera, float Aspect, const lcMatrix44& Worl if (!Camera->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); } Camera->ZoomExtents(Aspect, Center, Points, mCurrentStep, gMainWindow ? gMainWindow->GetAddKeys() : false); @@ -5340,8 +5340,8 @@ void lcModel::ZoomExtents(lcCamera* Camera, float Aspect, const lcMatrix44& Worl if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Zoom Extents")); + EndEditHistory(); + EndHistorySequence(tr("Zoom Extents")); } } @@ -5349,8 +5349,8 @@ void lcModel::Zoom(lcCamera* Camera, float Amount) { if (!Camera->IsSimple()) { - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::KeyboardZoom); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::KeyboardZoom); } Camera->Zoom(Amount, mCurrentStep, gMainWindow->GetAddKeys()); @@ -5362,8 +5362,8 @@ void lcModel::Zoom(lcCamera* Camera, float Amount) if (!Camera->IsSimple()) { - EndObjectEditAction(); - EndActionSequence(tr("Zoom")); + EndEditHistory(); + EndHistorySequence(tr("Zoom")); } } @@ -5383,9 +5383,9 @@ void lcModel::ShowPropertiesDialog() if (mProperties == Options.Properties) return; - BeginActionSequence(); - RecordModelPropertiesAction(Options.Properties); - EndActionSequence(tr("Change Model Properties")); + BeginHistorySequence(); + SetModelProperties(Options.Properties); + EndHistorySequence(tr("Change Model Properties")); } void lcModel::ShowSelectByNameDialog() @@ -5401,7 +5401,7 @@ void lcModel::ShowSelectByNameDialog() if (Dialog.exec() != QDialog::Accepted) return; - SetSelectionAndFocus(Dialog.mObjects, nullptr, 0, lcSelectionMode::Single); + SetSelectionAndFocusAction(Dialog.mObjects, nullptr, 0, lcSelectionMode::Single); } void lcModel::ShowArrayDialog() @@ -5425,8 +5425,8 @@ void lcModel::ShowArrayDialog() return; } - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); std::vector NewPieces; @@ -5476,11 +5476,11 @@ void lcModel::ShowArrayDialog() AddPiece(Piece); } - EndObjectEditAction(); + EndEditHistory(); - RecordAddToSelectionAction(NewPieces); + AddToSelection(NewPieces); - EndActionSequence(tr("Piece Array")); + EndHistorySequence(tr("Piece Array")); gMainWindow->UpdateTimeline(false, false); } @@ -5494,8 +5494,8 @@ void lcModel::ShowMinifigDialog() gMainWindow->GetActiveView()->MakeCurrent(); - BeginActionSequence(); - BeginObjectEditAction(lcModelActionEditMerge::None); + BeginHistorySequence(); + BeginEditHistory(lcModelHistoryEditMerge::None); lcGroup* Group = AddGroup(tr("Minifig #"), nullptr); std::vector Pieces; @@ -5519,11 +5519,11 @@ void lcModel::ShowMinifigDialog() Pieces.emplace_back(Piece); } - EndObjectEditAction(); + EndEditHistory(); - RecordSetSelectionAndFocusAction(Pieces, nullptr, 0, lcSelectionMode::Single); + SetSelectionAndFocus(Pieces, nullptr, 0, lcSelectionMode::Single); - EndActionSequence(tr("Add Minifig")); + EndHistorySequence(tr("Add Minifig")); gMainWindow->UpdateTimeline(false, false); } diff --git a/common/lc_model.h b/common/lc_model.h index 32191c10..fd9e3ce3 100644 --- a/common/lc_model.h +++ b/common/lc_model.h @@ -5,12 +5,12 @@ enum class lcObjectPropertyId; enum class lcCameraProjection; -struct lcModelHistoryState; -class lcModelAction; -class lcModelActionSelection; -class lcModelActionObjectEdit; -class lcModelActionProperties; -enum class lcModelActionEditMerge; +struct lcModelHistoryEditState; +class lcModelHistory; +class lcModelHistorySelect; +class lcModelHistoryEdit; +class lcModelHistoryProperties; +enum class lcModelHistoryEditMerge; #define LC_SEL_NO_PIECES 0x0001 // No pieces in model #define LC_SEL_PIECE 0x0002 // At least 1 piece selected @@ -111,7 +111,7 @@ public: struct lcModelHistoryEntry { - std::vector> ModelActions; + std::vector> HistorySequence; QString Description; }; @@ -228,8 +228,8 @@ public: template void LoadObjectHistoryState(const std::vector& ObjectStates, std::vector>& Objects); - void LoadHistoryState(const lcModelHistoryState& HistoryState); - void SetModelProperties(const lcModelProperties& ModelProperties); + void LoadEditHistoryState(const lcModelHistoryEditState& HistoryState); + void LoadModelPropertiesState(const lcModelProperties& ModelProperties); lcPiece* AddPiece(PieceInfo* Info, quint32 Section); void AddPiece(std::unique_ptr Piece, size_t PieceIndex); @@ -314,13 +314,13 @@ public: void GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorIndex, std::vector& ModelParts) const; void GetSelectionInformation(int* Flags, std::vector& Selection, lcObject** Focus) const; - void ClearSelection(); - void SetSelectionAndFocus(const std::vector& Selection, lcObject* Focus, quint32 Section, lcSelectionMode SelectionMode); - void FocusOrDeselectObject(lcObject* Object, uint32_t Section, lcSelectionMode SelectionMode); - void SelectAllPieces(); - void InvertPieceSelection(); - void AddToSelection(const std::vector& Objects); - void RemoveFromSelection(const std::vector& Objects); + void ClearSelectionAction(); + void SetSelectionAndFocusAction(const std::vector& Selection, lcObject* Focus, quint32 Section, lcSelectionMode SelectionMode); + void FocusOrDeselectObjectAction(lcObject* Object, uint32_t Section, lcSelectionMode SelectionMode); + void SelectAllPiecesAction(); + void InvertPieceSelectionAction(); + void AddToSelectionAction(const std::vector& Objects); + void RemoveFromSelectionAction(const std::vector& Objects); void HideSelectedPieces(); void HideUnselectedPieces(); @@ -363,13 +363,13 @@ public: void ZoomExtents(lcCamera* Camera, float Aspect, const lcMatrix44& WorldMatrix); void Zoom(lcCamera* Camera, float Amount); - void MoveSelectedObjects(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag, bool Checkpoint, bool FirstMove, lcModelActionEditMerge ModelActionEditMerge) + void MoveSelectedObjects(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag, bool Checkpoint, bool FirstMove, lcModelHistoryEditMerge ModelHistoryEditMerge) { - MoveSelectedObjects(Distance, Distance, AllowRelative, AlternateButtonDrag, Checkpoint, FirstMove, ModelActionEditMerge); + MoveSelectedObjects(Distance, Distance, AllowRelative, AlternateButtonDrag, Checkpoint, FirstMove, ModelHistoryEditMerge); } - void MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Checkpoint, bool FirstMove, lcModelActionEditMerge ModelActionEditMerge); - void RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool RotatePivotPoint, bool Checkpoint, lcModelActionEditMerge ModelActionEditMerge); + void MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Checkpoint, bool FirstMove, lcModelHistoryEditMerge ModelHistoryEditMerge); + void RotateSelectedObjects(const lcVector3& Angles, bool Relative, bool RotatePivotPoint, bool Checkpoint, lcModelHistoryEditMerge ModelHistoryEditMerge); void ScaleSelectedPieces(const float Scale); void TransformSelectedObjects(lcTransformType TransformType, const lcVector3& Transform); void SetObjectsKeyFrame(const std::vector& Objects, lcObjectPropertyId PropertyId, bool KeyFrame); @@ -391,23 +391,23 @@ public: protected: void DeleteModel(); - void RecordSelectionAction(std::function Callback); - void RecordClearSelectionAction(); - void RecordSetFocusAction(lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode); - void RecordSetSelectionAndFocusAction(const std::vector& Objects, lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode); - void RecordSelectAllPiecesAction(); - void RecordInvertPieceSelectionAction(); - void RecordAddToSelectionAction(const std::vector& Objects); - void RecordRemoveFromSelectionAction(const std::vector& Objects); - void BeginObjectEditAction(lcModelActionEditMerge ModelActionEditMerge); - void EndObjectEditAction(); - void RecordModelPropertiesAction(const lcModelProperties& ModelProperties); + void AddSelectionHistory(std::function Callback); + void ClearSelection(); + void SetFocus(lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode); + void SetSelectionAndFocus(const std::vector& Objects, lcObject* FocusObject, uint32_t FocusSection, lcSelectionMode SelectionMode); + void SelectAllPieces(); + void InvertPieceSelection(); + void AddToSelection(const std::vector& Objects); + void RemoveFromSelection(const std::vector& Objects); + void BeginEditHistory(lcModelHistoryEditMerge ModelHistoryEditMerge); + void EndEditHistory(); + void SetModelProperties(const lcModelProperties& ModelProperties); - void RunActionSequence(const std::vector>& ActionSequence, bool Apply); - void BeginActionSequence(); - void EndActionSequence(const QString& Description); - void DiscardActionSequence(); - void RevertActionSequence(); + void RunHistorySequence(const std::vector>& HistorySequence, bool Apply); + void BeginHistorySequence(); + void EndHistorySequence(const QString& Description); + void DiscardHistorySequence(); + void RevertHistorySequence(); void RemoveFirstUndoIfUnchanged(); const lcModelHistoryEntry* GetFirstUndoChange() const; @@ -441,7 +441,7 @@ protected: std::vector> mGroups; QStringList mFileLines; - std::vector> mActionSequence; + std::vector> mHistorySequence; const lcModelHistoryEntry* mSavedHistory = nullptr; std::vector> mUndoHistory; std::vector> mRedoHistory; diff --git a/common/lc_modelaction.cpp b/common/lc_modelhistory.cpp similarity index 65% rename from common/lc_modelaction.cpp rename to common/lc_modelhistory.cpp index 81609e0b..bb9a2d5a 100644 --- a/common/lc_modelaction.cpp +++ b/common/lc_modelhistory.cpp @@ -1,39 +1,39 @@ #include "lc_global.h" -#include "lc_modelaction.h" +#include "lc_modelhistory.h" #include "lc_model.h" #include "piece.h" #include "camera.h" #include "light.h" #include "group.h" -void lcModelActionSelection::SaveStartState(const lcModel* Model) +void lcModelHistorySelect::SaveStartState(const lcModel* Model) { SaveState(mStartState, Model); } -void lcModelActionSelection::SaveEndState(const lcModel* Model) +void lcModelHistorySelect::SaveEndState(const lcModel* Model) { SaveState(mEndState, Model); } -void lcModelActionSelection::LoadStartState(lcModel* Model) const +void lcModelHistorySelect::LoadStartState(lcModel* Model) const { LoadState(mStartState, Model); } -void lcModelActionSelection::LoadEndState(lcModel* Model) const +void lcModelHistorySelect::LoadEndState(lcModel* Model) const { LoadState(mEndState, Model); } -bool lcModelActionSelection::StateChanged() const +bool lcModelHistorySelect::StateChanged() const { return mStartState != mEndState; } -void lcModelActionSelection::SaveState(lcModelActionSelectionState& State, const lcModel* Model) +void lcModelHistorySelect::SaveState(lcModelHistorySelectState& State, const lcModel* Model) { - State = lcModelActionSelectionState(); + State = lcModelHistorySelectState(); const std::vector>& Pieces = Model->GetPieces(); State.PieceSelection.resize(Pieces.size(), false); @@ -96,7 +96,7 @@ void lcModelActionSelection::SaveState(lcModelActionSelectionState& State, const } } -void lcModelActionSelection::LoadState(const lcModelActionSelectionState& State, lcModel* Model) +void lcModelHistorySelect::LoadState(const lcModelHistorySelectState& State, lcModel* Model) { const std::vector>& Pieces = Model->GetPieces(); const std::vector>& Cameras = Model->GetCameras(); @@ -142,21 +142,21 @@ void lcModelActionSelection::LoadState(const lcModelActionSelectionState& State, } } -bool operator!=(const lcModelHistoryState& a, const lcModelHistoryState& b) +bool operator!=(const lcModelHistoryEditState& a, const lcModelHistoryEditState& b) { return a.Groups != b.Groups || a.Pieces != b.Pieces || a.Cameras != b.Cameras || a.Lights != b.Lights; } -lcModelActionObjectEdit::lcModelActionObjectEdit(lcModelActionEditMerge ModelActionEditMerge) - : mMerge(ModelActionEditMerge) +lcModelHistoryEdit::lcModelHistoryEdit(lcModelHistoryEditMerge ModelHistoryEditMerge) + : mMerge(ModelHistoryEditMerge) { } -lcModelActionObjectEdit::~lcModelActionObjectEdit() +lcModelHistoryEdit::~lcModelHistoryEdit() { } -void lcModelActionObjectEdit::SaveState(lcModelHistoryState& State, const lcModel* Model) +void lcModelHistoryEdit::SaveState(lcModelHistoryEditState& State, const lcModel* Model) { const std::vector>& Groups = Model->GetGroups(); @@ -179,82 +179,82 @@ void lcModelActionObjectEdit::SaveState(lcModelHistoryState& State, const lcMode State.Lights.emplace_back(Light->GetHistoryState(Model)); } -void lcModelActionObjectEdit::LoadState(const lcModelHistoryState& State, lcModel* Model) +void lcModelHistoryEdit::LoadState(const lcModelHistoryEditState& State, lcModel* Model) { - Model->LoadHistoryState(State); + Model->LoadEditHistoryState(State); } -void lcModelActionObjectEdit::SaveStartState(const lcModel* Model) +void lcModelHistoryEdit::SaveStartState(const lcModel* Model) { SaveState(mStartState, Model); } -void lcModelActionObjectEdit::SaveEndState(const lcModel* Model) +void lcModelHistoryEdit::SaveEndState(const lcModel* Model) { SaveState(mEndState, Model); } -void lcModelActionObjectEdit::LoadStartState(lcModel* Model) const +void lcModelHistoryEdit::LoadStartState(lcModel* Model) const { LoadState(mStartState, Model); } -void lcModelActionObjectEdit::LoadEndState(lcModel* Model) const +void lcModelHistoryEdit::LoadEndState(lcModel* Model) const { LoadState(mEndState, Model); } -bool lcModelActionObjectEdit::StateChanged() const +bool lcModelHistoryEdit::StateChanged() const { return mStartState != mEndState; } -bool lcModelActionObjectEdit::CanMergeWith(const lcModelAction* Other) const +bool lcModelHistoryEdit::CanMergeWith(const lcModelHistory* Other) const { - const lcModelActionObjectEdit* OtherModelActionEdit = dynamic_cast(Other); + const lcModelHistoryEdit* OtherModelHistoryEdit = dynamic_cast(Other); - return OtherModelActionEdit && mMerge != lcModelActionEditMerge::None && mMerge == OtherModelActionEdit->mMerge; + return OtherModelHistoryEdit && mMerge != lcModelHistoryEditMerge::None && mMerge == OtherModelHistoryEdit->mMerge; } -void lcModelActionObjectEdit::MergeWith(lcModelAction* Other) +void lcModelHistoryEdit::MergeWith(lcModelHistory* Other) { - lcModelActionObjectEdit* OtherModelActionEdit = dynamic_cast(Other); + lcModelHistoryEdit* OtherModelHistoryEdit = dynamic_cast(Other); - if (OtherModelActionEdit) - mEndState = std::move(OtherModelActionEdit->mEndState); + if (OtherModelHistoryEdit) + mEndState = std::move(OtherModelHistoryEdit->mEndState); } -void lcModelActionProperties::SaveStartState(const lcModel* Model) +void lcModelHistoryProperties::SaveStartState(const lcModel* Model) { SaveState(mStartState, Model); } -void lcModelActionProperties::SaveEndState(const lcModel* Model) +void lcModelHistoryProperties::SaveEndState(const lcModel* Model) { SaveState(mEndState, Model); } -void lcModelActionProperties::LoadStartState(lcModel* Model) const +void lcModelHistoryProperties::LoadStartState(lcModel* Model) const { LoadState(mStartState, Model); } -void lcModelActionProperties::LoadEndState(lcModel* Model) const +void lcModelHistoryProperties::LoadEndState(lcModel* Model) const { LoadState(mEndState, Model); } -bool lcModelActionProperties::StateChanged() const +bool lcModelHistoryProperties::StateChanged() const { return mStartState != mEndState; } -void lcModelActionProperties::SaveState(lcModelProperties& State, const lcModel* Model) +void lcModelHistoryProperties::SaveState(lcModelProperties& State, const lcModel* Model) { State = Model->GetProperties(); } -void lcModelActionProperties::LoadState(const lcModelProperties& State, lcModel* Model) +void lcModelHistoryProperties::LoadState(const lcModelProperties& State, lcModel* Model) { - Model->SetModelProperties(State); + Model->LoadModelPropertiesState(State); } diff --git a/common/lc_modelaction.h b/common/lc_modelhistory.h similarity index 61% rename from common/lc_modelaction.h rename to common/lc_modelhistory.h index 9a00eda7..272d8537 100644 --- a/common/lc_modelaction.h +++ b/common/lc_modelhistory.h @@ -5,11 +5,11 @@ enum class lcObjectType; enum class lcSelectionMode; -class lcModelAction +class lcModelHistory { public: - lcModelAction() = default; - virtual ~lcModelAction() = default; + lcModelHistory() = default; + virtual ~lcModelHistory() = default; virtual void SaveStartState(const lcModel* Model) = 0; virtual void SaveEndState(const lcModel* Model) = 0; @@ -17,20 +17,20 @@ public: virtual void LoadEndState(lcModel* Model) const = 0; virtual bool StateChanged() const = 0; - virtual bool CanMergeWith(const lcModelAction* Other) const + virtual bool CanMergeWith(const lcModelHistory* Other) const { Q_UNUSED(Other); return false; } - virtual void MergeWith(lcModelAction* Other) + virtual void MergeWith(lcModelHistory* Other) { Q_UNUSED(Other); } }; -struct lcModelActionSelectionState +struct lcModelHistorySelectState { std::vector PieceSelection; std::vector CameraSelection; @@ -39,18 +39,18 @@ struct lcModelActionSelectionState uint32_t FocusSection = ~0U; lcObjectType FocusObjectType = static_cast(~0); - bool operator!=(const lcModelActionSelectionState& Other) const + bool operator!=(const lcModelHistorySelectState& Other) const { return PieceSelection != Other.PieceSelection || CameraSelection != Other.CameraSelection || LightSelection != Other.LightSelection || FocusIndex != Other.FocusIndex || FocusSection != Other.FocusSection || FocusObjectType != Other.FocusObjectType; } }; -class lcModelActionSelection : public lcModelAction +class lcModelHistorySelect : public lcModelHistory { public: - lcModelActionSelection() = default; - virtual ~lcModelActionSelection() = default; + lcModelHistorySelect() = default; + virtual ~lcModelHistorySelect() = default; void SaveStartState(const lcModel* Model) override; void SaveEndState(const lcModel* Model) override; @@ -59,11 +59,11 @@ public: bool StateChanged() const override; protected: - static void SaveState(lcModelActionSelectionState& State, const lcModel* Model); - static void LoadState(const lcModelActionSelectionState& State, lcModel* Model); + static void SaveState(lcModelHistorySelectState& State, const lcModel* Model); + static void LoadState(const lcModelHistorySelectState& State, lcModel* Model); - lcModelActionSelectionState mStartState; - lcModelActionSelectionState mEndState; + lcModelHistorySelectState mStartState; + lcModelHistorySelectState mEndState; }; struct lcGroupHistoryState; @@ -71,7 +71,7 @@ struct lcPieceHistoryState; struct lcCameraHistoryState; struct lcLightHistoryState; -struct lcModelHistoryState +struct lcModelHistoryEditState { std::vector Groups; std::vector Pieces; @@ -79,9 +79,9 @@ struct lcModelHistoryState std::vector Lights; }; -bool operator!=(const lcModelHistoryState& a, const lcModelHistoryState& b); +bool operator!=(const lcModelHistoryEditState& a, const lcModelHistoryEditState& b); -enum class lcModelActionEditMerge +enum class lcModelHistoryEditMerge { None, KeyboardMove, @@ -93,11 +93,11 @@ enum class lcModelActionEditMerge PropertiesEdit = 0x40000000 }; -class lcModelActionObjectEdit: public lcModelAction +class lcModelHistoryEdit : public lcModelHistory { public: - lcModelActionObjectEdit(lcModelActionEditMerge ModelActionEditMerge); - virtual ~lcModelActionObjectEdit(); + lcModelHistoryEdit(lcModelHistoryEditMerge ModelHistoryEditMerge); + virtual ~lcModelHistoryEdit(); void SaveStartState(const lcModel* Model) override; void SaveEndState(const lcModel* Model) override; @@ -105,23 +105,23 @@ public: void LoadEndState(lcModel* Model) const override; bool StateChanged() const override; - bool CanMergeWith(const lcModelAction* Other) const override; - void MergeWith(lcModelAction* Other) override; + bool CanMergeWith(const lcModelHistory* Other) const override; + void MergeWith(lcModelHistory* Other) override; protected: - static void SaveState(lcModelHistoryState& State, const lcModel* Model); - static void LoadState(const lcModelHistoryState& State, lcModel* Model); + static void SaveState(lcModelHistoryEditState& State, const lcModel* Model); + static void LoadState(const lcModelHistoryEditState& State, lcModel* Model); - lcModelHistoryState mStartState; - lcModelHistoryState mEndState; - lcModelActionEditMerge mMerge; + lcModelHistoryEditState mStartState; + lcModelHistoryEditState mEndState; + lcModelHistoryEditMerge mMerge; }; -class lcModelActionProperties : public lcModelAction +class lcModelHistoryProperties : public lcModelHistory { public: - lcModelActionProperties() = default; - virtual ~lcModelActionProperties() = default; + lcModelHistoryProperties() = default; + virtual ~lcModelHistoryProperties() = default; void SaveStartState(const lcModel* Model) override; void SaveEndState(const lcModel* Model) override; diff --git a/common/lc_previewwidget.cpp b/common/lc_previewwidget.cpp index 53bf5d71..5aa4607c 100644 --- a/common/lc_previewwidget.cpp +++ b/common/lc_previewwidget.cpp @@ -110,7 +110,7 @@ bool lcPreview::SetCurrentPiece(const QString& PartType, int ColorCode) mIsModel = Info->IsModel(); mDescription = Info->m_strDescription; - mModel->SelectAllPieces(); + mModel->SelectAllPiecesAction(); mModel->DeleteSelectedObjects(); Library->LoadPieceInfo(Info, false, true); diff --git a/common/lc_propertieswidget.cpp b/common/lc_propertieswidget.cpp index 1b66da2b..66fc9277 100644 --- a/common/lc_propertieswidget.cpp +++ b/common/lc_propertieswidget.cpp @@ -12,7 +12,7 @@ #include "lc_colorpicker.h" #include "lc_qutils.h" #include "lc_partselectionpopup.h" -#include "lc_modelaction.h" +#include "lc_modelhistory.h" lcPropertiesWidget::lcPropertiesWidget(QWidget* Parent) : QWidget(Parent) @@ -321,7 +321,7 @@ void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float V lcVector3 Distance = Position - Center; - Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelActionEditMerge::PropertiesMove); + Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelHistoryEditMerge::PropertiesMove); } else if (PropertyId == lcObjectPropertyId::ObjectRotationX || PropertyId == lcObjectPropertyId::ObjectRotationY || PropertyId == lcObjectPropertyId::ObjectRotationZ) { @@ -343,7 +343,7 @@ void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float V else if (PropertyId == lcObjectPropertyId::ObjectRotationZ) Rotation[2] = Value; - Model->RotateSelectedObjects(Rotation - InitialRotation, true, false, true, lcModelActionEditMerge::PropertiesRotate); + Model->RotateSelectedObjects(Rotation - InitialRotation, true, false, true, lcModelHistoryEditMerge::PropertiesRotate); mLastRotation = Rotation; } @@ -376,7 +376,7 @@ void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float V lcVector3 Distance = End - Start; - Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelActionEditMerge::PropertiesMove); + Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelHistoryEditMerge::PropertiesMove); if (Camera) { @@ -413,7 +413,7 @@ void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float V lcVector3 Distance = End - Start; - Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelActionEditMerge::PropertiesMove); + Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelHistoryEditMerge::PropertiesMove); if (Camera) { @@ -450,7 +450,7 @@ void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float V lcVector3 Distance = End - Start; - Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelActionEditMerge::PropertiesMove); + Model->MoveSelectedObjects(Distance, false, false, true, true, lcModelHistoryEditMerge::PropertiesMove); if (Camera) { diff --git a/common/lc_timelinewidget.cpp b/common/lc_timelinewidget.cpp index cd80eff3..45125403 100644 --- a/common/lc_timelinewidget.cpp +++ b/common/lc_timelinewidget.cpp @@ -552,7 +552,7 @@ void lcTimelineWidget::ItemSelectionChanged() UpdateCurrentStepItem(); } - Model->SetSelectionAndFocus(Selection, CurrentPiece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); + Model->SetSelectionAndFocusAction(Selection, CurrentPiece, LC_PIECE_SECTION_POSITION, lcSelectionMode::Single); mIgnoreUpdates = false; blockSignals(Blocked); diff --git a/common/lc_view.cpp b/common/lc_view.cpp index 46f96077..476d1e2f 100644 --- a/common/lc_view.cpp +++ b/common/lc_view.cpp @@ -2433,11 +2433,11 @@ void lcView::StopTracking(bool Accept) std::vector Objects = FindObjectsInBox(mMouseDownX, mMouseDownY, mMouseX, mMouseY); if (mMouseModifiers & Qt::ControlModifier) - ActiveModel->AddToSelection(Objects); + ActiveModel->AddToSelectionAction(Objects); else if (mMouseModifiers & Qt::ShiftModifier) - ActiveModel->RemoveFromSelection(Objects); + ActiveModel->RemoveFromSelectionAction(Objects); else - ActiveModel->SetSelectionAndFocus(Objects, nullptr, 0, gMainWindow->GetSelectionMode()); + ActiveModel->SetSelectionAndFocusAction(Objects, nullptr, 0, gMainWindow->GetSelectionMode()); } break; @@ -2498,7 +2498,7 @@ void lcView::StopTracking(bool Accept) ActiveModel->UpdateAllViews(); } -void lcView::CancelTrackingOrClearSelection() +void lcView::CancelTrackingOrClearSelectionAction() { if (mTrackButton != lcTrackButton::None) StopTracking(false); @@ -2506,7 +2506,7 @@ void lcView::CancelTrackingOrClearSelection() { lcModel* ActiveModel = GetActiveModel(); if (ActiveModel) - ActiveModel->ClearSelection(); + ActiveModel->ClearSelectionAction(); } } @@ -2585,14 +2585,14 @@ void lcView::OnButtonDown(lcTrackButton TrackButton) lcObjectSection ObjectSection = FindObjectUnderPointer(false, false); if (mMouseModifiers & Qt::ControlModifier) - ActiveModel->FocusOrDeselectObject(ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); + ActiveModel->FocusOrDeselectObjectAction(ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); else if (mMouseModifiers & Qt::ShiftModifier) { if (ObjectSection.Object) - ActiveModel->RemoveFromSelection({ ObjectSection.Object }); + ActiveModel->RemoveFromSelectionAction({ ObjectSection.Object }); } else - ActiveModel->SetSelectionAndFocus(std::vector(), ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); + ActiveModel->SetSelectionAndFocusAction(std::vector(), ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); StartTracking(TrackButton); } @@ -2658,7 +2658,7 @@ void lcView::OnButtonDown(lcTrackButton TrackButton) ObjectSection.Object = Focus; ObjectSection.Section = mTrackToolSection; - ActiveModel->SetSelectionAndFocus(std::vector(), ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); + ActiveModel->SetSelectionAndFocusAction(std::vector(), ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); } break; @@ -2752,14 +2752,14 @@ void lcView::OnLeftButtonDoubleClick() lcObjectSection ObjectSection = FindObjectUnderPointer(false, false); if (mMouseModifiers & Qt::ControlModifier) - ActiveModel->FocusOrDeselectObject(ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); + ActiveModel->FocusOrDeselectObjectAction(ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); else if (mMouseModifiers & Qt::ShiftModifier) { if (ObjectSection.Object) - ActiveModel->RemoveFromSelection({ ObjectSection.Object }); + ActiveModel->RemoveFromSelectionAction({ ObjectSection.Object }); } else - ActiveModel->SetSelectionAndFocus(std::vector(), ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); + ActiveModel->SetSelectionAndFocusAction(std::vector(), ObjectSection.Object, ObjectSection.Section, gMainWindow->GetSelectionMode()); } void lcView::OnMiddleButtonDown() diff --git a/common/lc_view.h b/common/lc_view.h index c1f926ed..7ba63586 100644 --- a/common/lc_view.h +++ b/common/lc_view.h @@ -242,7 +242,7 @@ public: void UpdatePanGesture(int dx, int dy); void EndPanGesture(bool Accept); void StartOrbitTracking(); - void CancelTrackingOrClearSelection(); + void CancelTrackingOrClearSelectionAction(); void SetViewpoint(lcViewpoint Viewpoint); void SetViewpoint(const lcVector3& Position); diff --git a/leocad.pro b/leocad.pro index 15cf65d3..599a4c6e 100644 --- a/leocad.pro +++ b/leocad.pro @@ -168,6 +168,7 @@ SOURCES += \ common/camera.cpp \ common/group.cpp \ common/image.cpp \ + common/lc_modelhistory.cpp \ common/light.cpp \ common/minifig.cpp \ common/object.cpp \ @@ -207,7 +208,6 @@ SOURCES += \ common/lc_meshloader.cpp \ common/lc_minifigdialog.cpp \ common/lc_model.cpp \ - common/lc_modelaction.cpp \ common/lc_modellistdialog.cpp \ common/lc_objectproperty.cpp \ common/lc_pagesetupdialog.cpp \ @@ -246,6 +246,7 @@ HEADERS += \ common/camera.h \ common/group.h \ common/image.h \ + common/lc_modelhistory.h \ common/light.h \ common/minifig.h \ common/object.h \ @@ -287,7 +288,6 @@ HEADERS += \ common/lc_meshloader.h \ common/lc_minifigdialog.h \ common/lc_model.h \ - common/lc_modelaction.h \ common/lc_modellistdialog.h \ common/lc_objectproperty.h \ common/lc_pagesetupdialog.h \