diff --git a/src/widgets/atcoreinstancewidget.h b/src/widgets/atcoreinstancewidget.h --- a/src/widgets/atcoreinstancewidget.h +++ b/src/widgets/atcoreinstancewidget.h @@ -94,6 +94,7 @@ void initConnectsToAtCore(); void stopPrint(); QMap readProfile(); + void saveProfile(); void pausePrint(); void print(); void updateSerialPort(QStringList ports); diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp --- a/src/widgets/atcoreinstancewidget.cpp +++ b/src/widgets/atcoreinstancewidget.cpp @@ -401,6 +401,10 @@ if (m_profileData["heatedBed"].toBool()) { connectBedTemperatureData(true); } + if (!m_core.availableFirmwarePlugins().contains(m_profileData["firmware"].toString())) { + m_profileData["firmware"] = m_core.firmwarePlugin()->name().toLower(); + saveProfile(); + } } break; case AtCore::DISCONNECTED: { if (m_connectionTimer->isActive()) { @@ -590,6 +594,16 @@ return data; } +void AtCoreInstanceWidget::saveProfile() +{ + QString profile = m_comboProfile->currentText(); + m_settings.beginGroup("Profiles"); + m_settings.beginGroup(m_profileData["name"].toString()); + m_settings.setValue(QStringLiteral("firmware"), m_profileData["firmware"]); + m_settings.endGroup(); + m_settings.endGroup(); +} + void AtCoreInstanceWidget::connectBedTemperatureData(bool connected) { if (connected) {