diff --git a/src/dialogs/profilesdialog.cpp b/src/dialogs/profilesdialog.cpp --- a/src/dialogs/profilesdialog.cpp +++ b/src/dialogs/profilesdialog.cpp @@ -34,7 +34,7 @@ ui->baudCB->addItems(SERIAL::BAUDS); ui->baudCB->setCurrentText(QLatin1String("115200")); ui->profileCB->setAutoCompletion(true); - connect(ui->profileCB, static_cast(&QComboBox::currentIndexChanged), this, [this](const int newIndex) { + connect(ui->profileCB, QOverload::of(&QComboBox::currentIndexChanged), this, [this](const int newIndex) { blockSignals(true); ui->profileCB->setCurrentIndex(m_prevIndex); blockSignals(false); @@ -76,6 +76,7 @@ connect(ui->extruderTempSB, &QSpinBox::editingFinished, modify); connect(ui->postPauseLE, &QLineEdit::editingFinished, modify); connect(ui->firmwareCB, &QComboBox::currentTextChanged, modify); + connect(ui->autoReportTempCK, &QCheckBox::stateChanged, modify); } ProfilesDialog::~ProfilesDialog() @@ -145,6 +146,7 @@ m_settings.setValue(QStringLiteral("maximumTemperatureBed"), ui->bedTempSB->value()); //HOTEND m_settings.setValue(QStringLiteral("maximumTemperatureExtruder"), ui->extruderTempSB->value()); + m_settings.setValue(QStringLiteral("autoReportTemp"), ui->autoReportTempCK->isChecked()); //Baud m_settings.setValue(QStringLiteral("bps"), ui->baudCB->currentText()); m_settings.setValue(QStringLiteral("firmware"), ui->firmwareCB->currentText()); @@ -185,6 +187,7 @@ ui->heatedBedCK->setChecked(m_settings.value(QStringLiteral("heatedBed"), QStringLiteral("true")).toBool()); ui->bedTempSB->setEnabled(ui->heatedBedCK->isChecked()); ui->bedTempSB->setValue(m_settings.value(QStringLiteral("maximumTemperatureBed"), QStringLiteral("0")).toInt()); + ui->autoReportTempCK->setChecked(m_settings.value(QStringLiteral("autoReportTemp"), QStringLiteral("false")).toBool()); //HOTEND ui->extruderTempSB->setValue(m_settings.value(QStringLiteral("maximumTemperatureExtruder"), QStringLiteral("0")).toInt()); diff --git a/src/dialogs/profilesdialog.ui b/src/dialogs/profilesdialog.ui --- a/src/dialogs/profilesdialog.ui +++ b/src/dialogs/profilesdialog.ui @@ -232,33 +232,50 @@ Temperatures - - + + - Hea&ted bed? + Maxim&um Bed - heatedBedCK + bedTempSB - - + + + + ºC + + + 999 + + + + + + + <html><head/><body><p>Temperature reporting using M155 command. When enabled the printer will return temperature data automaticly at a set interval.</p></body></html> + - + Auto Temperature Report - - true + + + + + + - - + + - Maxim&um Bed + Ma&ximum Hotend - bedTempSB + extruderTempSB @@ -272,23 +289,23 @@ - - + + - Ma&ximum Hotend + Hea&ted bed? - extruderTempSB + heatedBedCK - - - - ºC + + + + - - 999 + + true diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp --- a/src/widgets/atcoreinstancewidget.cpp +++ b/src/widgets/atcoreinstancewidget.cpp @@ -253,6 +253,13 @@ m_core.setSerialTimerInterval(100); // Handle device changes connect(&m_core, &AtCore::portsChanged, this, &AtCoreInstanceWidget::updateSerialPort); + + connect(&m_core, &AtCore::autoTemperatureReportChanged, this, [this](const bool autoReport) { + if (m_profileData["autoReportTemp"].toBool() != autoReport) { + m_profileData["autoReportTemp"] = autoReport; + saveProfile(); + } + }); // Handle AtCore status change connect(&m_core, &AtCore::stateChanged, this, &AtCoreInstanceWidget::handlePrinterStatusChanged); // If the number of extruders from the printer change, we need to update the radiobuttons on the widget @@ -390,6 +397,7 @@ } break; case AtCore::IDLE: { if (m_connectionTimer->isActive()) { + m_core.setAutoTemperatureReport(m_profileData["autoReportTemp"].toBool()); m_connectionTimer->stop(); } stateString = i18n("Connected to %1", m_core.connectedPort()); @@ -588,6 +596,7 @@ , {"dimensionZ", m_settings.value(QStringLiteral("dimensionZ"), QStringLiteral("180"))} , {"radius", m_settings.value(QStringLiteral("radius"), QStringLiteral("200"))} , {"z_delta_dimension", m_settings.value(QStringLiteral("z_delta_dimension"), QStringLiteral("180"))} + , {"autoReportTemp", m_settings.value(QStringLiteral("autoReportTemp"), false)} }; m_settings.endGroup(); m_settings.endGroup(); @@ -600,6 +609,7 @@ m_settings.beginGroup("Profiles"); m_settings.beginGroup(m_profileData["name"].toString()); m_settings.setValue(QStringLiteral("firmware"), m_profileData["firmware"]); + m_settings.setValue(QStringLiteral("autoReportTemp"), m_profileData["autoReportTemp"]); m_settings.endGroup(); m_settings.endGroup(); }