TechDraw: Lock multiple views

This commit is contained in:
PaddleStroke
2025-05-13 14:51:29 +02:00
committed by Kacper Donat
parent baf08540ab
commit e2a0570921

View File

@@ -1463,7 +1463,7 @@ CmdTechDrawExtensionLockUnlockView::CmdTechDrawExtensionLockUnlockView()
sGroup = QT_TR_NOOP("TechDraw");
sMenuText = QT_TR_NOOP("Lock/Unlock View");
sToolTipText = QT_TR_NOOP("Lock or unlock the position of a view:<br>\
- Select a single view<br>\
- Select view(s)<br>\
- Click this tool");
sWhatsThis = "TechDraw_ExtensionLockUnlockView";
sStatusTip = sMenuText;
@@ -1472,18 +1472,22 @@ CmdTechDrawExtensionLockUnlockView::CmdTechDrawExtensionLockUnlockView()
void CmdTechDrawExtensionLockUnlockView::activated(int iMsg)
{
// lock/unlock a selected view
Q_UNUSED(iMsg);
std::vector<Gui::SelectionObject> selection;
TechDraw::DrawViewPart* objFeat{nullptr};
if (!_checkSel(this, selection, objFeat, QT_TRANSLATE_NOOP("Command","TechDraw Lock/Unlock View"))) {
std::vector<Gui::SelectionObject> selection = getSelection().getSelectionEx();
if (selection.empty()) {
return;
}
Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Lock/Unlock View"));
if (objFeat->isDerivedFrom<TechDraw::DrawViewPart>()) {
bool lockPosition = objFeat->LockPosition.getValue();
lockPosition = !lockPosition;
objFeat->LockPosition.setValue(lockPosition);
for (auto& sel : selection) {
auto* obj = static_cast<TechDraw::DrawViewPart*>(sel.getObject());
if (obj->isDerivedFrom<TechDraw::DrawViewPart>()) {
bool lockPosition = obj->LockPosition.getValue();
lockPosition = !lockPosition;
obj->LockPosition.setValue(lockPosition);
}
}
Gui::Command::commitCommand();
}