diff --git a/src/plugins/mcusupport/mcuabstractpackage.h b/src/plugins/mcusupport/mcuabstractpackage.h index 33e9e62bd32..c319c32f03c 100644 --- a/src/plugins/mcusupport/mcuabstractpackage.h +++ b/src/plugins/mcusupport/mcuabstractpackage.h @@ -55,6 +55,7 @@ public: signals: void changed(); void statusChanged(); + void reset(); }; // class McuAbstractPackage } // namespace McuSupport::Internal diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp index 6feaf728a62..ccf3a2d3acd 100644 --- a/src/plugins/mcusupport/mcupackage.cpp +++ b/src/plugins/mcusupport/mcupackage.cpp @@ -256,9 +256,7 @@ QWidget *McuPackage::widget() m_fileChooser->setExpectedKind(m_valueType); m_fileChooser->lineEdit()->setButtonIcon(FancyLineEdit::Right, Icons::RESET.icon()); m_fileChooser->lineEdit()->setButtonVisible(FancyLineEdit::Right, true); - connect(m_fileChooser->lineEdit(), &FancyLineEdit::rightButtonClicked, this, [&] { - m_fileChooser->setFilePath(m_defaultPath); - }); + connect(m_fileChooser->lineEdit(), &FancyLineEdit::rightButtonClicked, this, &McuPackage::reset); auto layout = new QGridLayout(widget); layout->setContentsMargins(0, 0, 0, 0); diff --git a/src/plugins/mcusupport/mcusupportoptionspage.cpp b/src/plugins/mcusupport/mcusupportoptionspage.cpp index c24785c0db8..d75568a8f66 100644 --- a/src/plugins/mcusupport/mcusupportoptionspage.cpp +++ b/src/plugins/mcusupport/mcusupportoptionspage.cpp @@ -277,6 +277,15 @@ void McuSupportOptionsWidget::showMcuTargetPackages() for (const auto &package : packages) { QWidget *packageWidget = package->widget(); + QWeakPointer packagePtr(package); + connect(package.get(), &McuPackage::reset, this, [this, packagePtr] (){ + McuPackagePtr package = packagePtr.lock(); + if (package) { + MacroExpanderPtr macroExpander + = m_options.sdkRepository.getMacroExpander(*currentMcuTarget()); + package->setPath(macroExpander->expand(package->defaultPath())); + } + }); m_packagesLayout->addRow(package->label(), packageWidget); packageWidget->show(); }