diff --git a/src/macro-action-edit.cpp b/src/macro-action-edit.cpp index 74f96524..7356b294 100644 --- a/src/macro-action-edit.cpp +++ b/src/macro-action-edit.cpp @@ -106,11 +106,12 @@ void MacroActionEdit::ActionSelectionChanged(const QString &text) auto macro = _entryData->get()->GetMacro(); std::string id = MacroActionFactory::GetIdByName(text); HeaderInfoChanged(""); - - std::lock_guard lock(switcher->m); - _entryData->reset(); - *_entryData = MacroActionFactory::Create(id, macro); - (*_entryData)->SetIndex(idx); + { + std::lock_guard lock(switcher->m); + _entryData->reset(); + *_entryData = MacroActionFactory::Create(id, macro); + (*_entryData)->SetIndex(idx); + } auto widget = MacroActionFactory::CreateWidget(id, this, *_entryData); QWidget::connect(widget, SIGNAL(HeaderInfoChanged(const QString &)), this, SLOT(HeaderInfoChanged(const QString &))); diff --git a/src/macro-condition-edit.cpp b/src/macro-condition-edit.cpp index fa202fc5..e48ce675 100644 --- a/src/macro-condition-edit.cpp +++ b/src/macro-condition-edit.cpp @@ -218,13 +218,14 @@ void MacroConditionEdit::ConditionSelectionChanged(const QString &text) auto temp = DurationConstraint(); _dur->SetValue(temp); HeaderInfoChanged(""); - - std::lock_guard lock(switcher->m); - auto logic = (*_entryData)->GetLogicType(); - _entryData->reset(); - *_entryData = MacroConditionFactory::Create(id, macro); - (*_entryData)->SetIndex(idx); - (*_entryData)->SetLogicType(logic); + { + std::lock_guard lock(switcher->m); + auto logic = (*_entryData)->GetLogicType(); + _entryData->reset(); + *_entryData = MacroConditionFactory::Create(id, macro); + (*_entryData)->SetIndex(idx); + (*_entryData)->SetLogicType(logic); + } auto widget = MacroConditionFactory::CreateWidget(id, this, *_entryData); QWidget::connect(widget, SIGNAL(HeaderInfoChanged(const QString &)),