Gui: Fix crash in measuring tool after an undo. (#25129)
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user