Fixed duplicate pieces not grouping correctly.

This commit is contained in:
Leonardo Zide
2026-02-03 09:41:28 -08:00
parent bbd01f3e4e
commit 07c80b705f
2 changed files with 15 additions and 4 deletions
+14 -3
View File
@@ -1287,7 +1287,7 @@ void lcModel::DuplicateSelectedPieces()
for (size_t PieceIndex = 0; PieceIndex < mPieces.size(); PieceIndex++)
{
lcPiece* Piece = mPieces[PieceIndex].get();
const lcPiece* Piece = mPieces[PieceIndex].get();
if (!Piece->IsSelected())
continue;
@@ -1305,7 +1305,7 @@ void lcModel::DuplicateSelectedPieces()
lcGroup* Group = Piece->GetGroup();
if (Group)
Piece->SetGroup(GetNewGroup(Group));
NewPiece->SetGroup(GetNewGroup(Group));
}
EndObjectEditAction(std::move(PieceIndices));
@@ -1853,6 +1853,8 @@ void lcModel::RecordGroupPiecesAction(lcModelActionGroupPiecesMode Mode, const Q
{
std::unique_ptr<lcModelActionGroupPieces> ModelActionGroupPieces = std::make_unique<lcModelActionGroupPieces>(Mode, GroupName);
RunGroupPiecesAction(ModelActionGroupPieces.get(), true);
mActionSequence.emplace_back(std::move(ModelActionGroupPieces));
}
@@ -1984,6 +1986,15 @@ 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<lcModelAction>& ModelAction : mUndoHistory.front()->ModelActions)
{
if (const lcModelActionSelection* ModelActionSelection = dynamic_cast<const lcModelActionSelection*>(ModelAction.get()))
{
gMainWindow->UpdateSelectedObjects(true);
break;
}
}
UpdateAllViews();
}
@@ -4362,7 +4373,7 @@ void lcModel::FocusOrDeselectObject(lcObject* Object, uint32_t Section, lcSelect
if (!Object->IsFocused(Section))
RecordSetFocusAction(Object, Section, SelectionMode);
else
RecordSetFocusAction(nullptr, ~0, SelectionMode);
RecordSetFocusAction(nullptr, ~0U, SelectionMode);
}
else
{
+1 -1
View File
@@ -152,7 +152,7 @@ public:
mGroup = Group;
}
lcGroup* GetGroup()
lcGroup* GetGroup() const
{
return mGroup;
}