Gui: Fix crash in measuring tool after an undo. (#25129)

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
This commit is contained in:
pjcreath
2025-11-09 21:04:22 -05:00
committed by GitHub
parent 9ebb49d1f0
commit 161cb6583f
2 changed files with 19 additions and 0 deletions

View File

@@ -163,6 +163,12 @@ TaskMeasure::TaskMeasure()
// engage the selectionObserver
attachSelection();
if (auto* doc = App::GetApplication().getActiveDocument()) {
m_deletedConnection = doc->signalDeletedObject.connect([this](auto&& obj) {
onObjectDeleted(obj);
});
}
if (!App::GetApplication().getActiveTransaction()) {
App::GetApplication().setActiveTransaction("Add Measurement");
}
@@ -174,6 +180,7 @@ TaskMeasure::TaskMeasure()
TaskMeasure::~TaskMeasure()
{
m_deletedConnection.disconnect();
Gui::Selection().setSelectionStyle(SelectionStyle::NormalSelection);
detachSelection();
}
@@ -524,6 +531,13 @@ void TaskMeasure::quitMeasurement()
}
}
void TaskMeasure::onObjectDeleted(const App::DocumentObject& obj)
{
if (&obj == _mMeasureObject) {
_mMeasureObject = nullptr;
}
}
void TaskMeasure::setDeltaPossible(bool possible)
{
showDelta->setVisible(possible);