diff --git a/src/plugins/mcusupport/mcuabstractpackage.h b/src/plugins/mcusupport/mcuabstractpackage.h index 248c91287dc..33e9e62bd32 100644 --- a/src/plugins/mcusupport/mcuabstractpackage.h +++ b/src/plugins/mcusupport/mcuabstractpackage.h @@ -47,6 +47,7 @@ public: virtual bool isValidStatus() const = 0; virtual bool writeToSettings() const = 0; + virtual void readFromSettings() = 0; virtual QWidget *widget() = 0; virtual const McuPackageVersionDetector *getVersionDetector() const = 0; diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp index 287c89b93ec..6feaf728a62 100644 --- a/src/plugins/mcusupport/mcupackage.cpp +++ b/src/plugins/mcusupport/mcupackage.cpp @@ -244,6 +244,11 @@ bool McuPackage::writeToSettings() const return settingsHandler->write(m_settingsKey, m_path, m_defaultPath); } +void McuPackage::readFromSettings() +{ + setPath(settingsHandler->getPath(m_settingsKey, QSettings::UserScope, m_defaultPath)); +} + QWidget *McuPackage::widget() { auto *widget = new QWidget; diff --git a/src/plugins/mcusupport/mcupackage.h b/src/plugins/mcusupport/mcupackage.h index 4cf4606e9f8..1bd3b26fb4d 100644 --- a/src/plugins/mcusupport/mcupackage.h +++ b/src/plugins/mcusupport/mcupackage.h @@ -66,6 +66,7 @@ public: QString statusText() const override; bool writeToSettings() const override; + void readFromSettings() override; QWidget *widget() override; const McuPackageVersionDetector *getVersionDetector() const override; diff --git a/src/plugins/mcusupport/mcusupportoptionspage.cpp b/src/plugins/mcusupport/mcusupportoptionspage.cpp index 7a8a7d046c8..c24785c0db8 100644 --- a/src/plugins/mcusupport/mcusupportoptionspage.cpp +++ b/src/plugins/mcusupport/mcusupportoptionspage.cpp @@ -90,6 +90,9 @@ McuSupportOptionsWidget::McuSupportOptionsWidget(McuSupportOptions &options, m_qtForMCUsSdkGroupBox = new QGroupBox(Tr::tr("Qt for MCUs SDK")); m_qtForMCUsSdkGroupBox->setFlat(true); auto *layout = new QVBoxLayout(m_qtForMCUsSdkGroupBox); + // Re-read the qtForMCUs package from settings to discard un-applied changes from previous sessions + m_options.qtForMCUsSdkPackage->readFromSettings(); + layout->addWidget(m_options.qtForMCUsSdkPackage->widget()); mainLayout->addWidget(m_qtForMCUsSdkGroupBox); } diff --git a/src/plugins/mcusupport/test/packagemock.h b/src/plugins/mcusupport/test/packagemock.h index fb4f73601f5..1e62fb77646 100644 --- a/src/plugins/mcusupport/test/packagemock.h +++ b/src/plugins/mcusupport/test/packagemock.h @@ -29,6 +29,7 @@ public: MOCK_METHOD(QString, environmentVariableName, (), (const)); MOCK_METHOD(bool, isAddToSystemPath, (), (const)); MOCK_METHOD(bool, writeToSettings, (), (const)); + MOCK_METHOD(void, readFromSettings, ()); MOCK_METHOD(QStringList, versions, (), (const)); MOCK_METHOD(QWidget *, widget, ());