MeasureGui: Move _mMeasureType member to local variable

Fixes #16565
This commit is contained in:
hlorus
2024-09-17 11:33:55 +02:00
committed by Chris Hennes
parent 8161537def
commit fd83f98c26
2 changed files with 11 additions and 13 deletions

View File

@@ -250,8 +250,9 @@ void TaskMeasure::saveObject()
}
_mDocument = App::GetApplication().getActiveDocument();
_mDocument->addObject(_mMeasureObject, _mMeasureType->label.c_str());
_mMeasureObject = nullptr;
_mDocument->addObject(_mMeasureObject,
modeSwitch->currentIndex() != 0 ? modeSwitch->currentText().toLatin1()
: QString().toLatin1());
}
@@ -281,8 +282,6 @@ void TaskMeasure::update()
valueResult->setText(QString::asprintf("-"));
// Get valid measure type
std::string mode = explicitMode ? modeSwitch->currentText().toStdString() : "";
App::MeasureSelection selection;
@@ -293,13 +292,15 @@ void TaskMeasure::update()
selection.push_back(item);
}
// Get valid measure type
App::MeasureType* measureType = nullptr;
auto measureTypes = App::MeasureManager::getValidMeasureTypes(selection, mode);
if (measureTypes.size() > 0) {
_mMeasureType = measureTypes.front();
measureType = measureTypes.front();
}
if (!_mMeasureType) {
if (!measureType) {
// Note: If there's no valid measure type we might just restart the selection,
// however this requires enough coverage of measuretypes that we can access all of them
@@ -318,13 +319,12 @@ void TaskMeasure::update()
}
// Update tool mode display
setModeSilent(_mMeasureType);
setModeSilent(measureType);
if (!_mMeasureObject
|| _mMeasureType->measureObject != _mMeasureObject->getTypeId().getName()) {
if (!_mMeasureObject || measureType->measureObject != _mMeasureObject->getTypeId().getName()) {
// we don't already have a measureobject or it isn't the same type as the new one
removeObject();
createObject(_mMeasureType);
createObject(measureType);
}
// we have a valid measure object so we can enable the annotate button
@@ -387,7 +387,6 @@ bool TaskMeasure::apply()
{
saveObject();
ensureGroup(_mMeasureObject);
_mMeasureType = nullptr;
_mMeasureObject = nullptr;
reset();
@@ -410,7 +409,7 @@ bool TaskMeasure::reject()
void TaskMeasure::reset()
{
// Reset tool state
_mMeasureType = nullptr;
_mMeasureObject = nullptr;
this->clearSelection();
// Should the explicit mode also be reset?

View File

@@ -72,7 +72,6 @@ private:
App::Document* _mDocument = nullptr;
Gui::Document* _mGuiDocument = nullptr;
App::MeasureType* _mMeasureType = nullptr;
Measure::MeasureBase* _mMeasureObject = nullptr;
Gui::ViewProviderDocumentObject* _mViewObject = nullptr;