Changeset View
Changeset View
Standalone View
Standalone View
testclient/mainwindow.cpp
Show All 22 Lines | |||||
23 | #include <QSerialPortInfo> | 23 | #include <QSerialPortInfo> | ||
24 | #include <QMessageBox> | 24 | #include <QMessageBox> | ||
25 | #include <QFileDialog> | 25 | #include <QFileDialog> | ||
26 | #include <QTextStream> | 26 | #include <QTextStream> | ||
27 | #include <QTimer> | 27 | #include <QTimer> | ||
28 | #include <QLoggingCategory> | 28 | #include <QLoggingCategory> | ||
29 | 29 | | |||
30 | #include "mainwindow.h" | 30 | #include "mainwindow.h" | ||
31 | #include "machineinfo.h" | ||||
31 | #include "seriallayer.h" | 32 | #include "seriallayer.h" | ||
32 | #include "gcodecommands.h" | 33 | #include "gcodecommands.h" | ||
33 | #include "about.h" | 34 | #include "about.h" | ||
34 | 35 | | |||
35 | Q_LOGGING_CATEGORY(TESTCLIENT_MAINWINDOW, "org.kde.atelier.core") | 36 | Q_LOGGING_CATEGORY(TESTCLIENT_MAINWINDOW, "org.kde.atelier.core") | ||
36 | 37 | | |||
37 | int MainWindow::fanCount = 4; | 38 | int MainWindow::fanCount = 4; | ||
38 | 39 | | |||
Show All 11 Lines | 43 | { | |||
50 | connect(core, &AtCore::atcoreMessage, logWidget, &LogWidget::appendLog); | 51 | connect(core, &AtCore::atcoreMessage, logWidget, &LogWidget::appendLog); | ||
51 | logWidget->appendLog(tr("Attempting to locate Serial Ports")); | 52 | logWidget->appendLog(tr("Attempting to locate Serial Ports")); | ||
52 | core->setSerialTimerInterval(1000); | 53 | core->setSerialTimerInterval(1000); | ||
53 | 54 | | |||
54 | connect(core, &AtCore::stateChanged, this, &MainWindow::printerStateChanged); | 55 | connect(core, &AtCore::stateChanged, this, &MainWindow::printerStateChanged); | ||
55 | connect(core, &AtCore::portsChanged, this, &MainWindow::locateSerialPort); | 56 | connect(core, &AtCore::portsChanged, this, &MainWindow::locateSerialPort); | ||
56 | connect(core, &AtCore::sdCardFileListChanged, sdWidget, &SdWidget::updateFilelist); | 57 | connect(core, &AtCore::sdCardFileListChanged, sdWidget, &SdWidget::updateFilelist); | ||
57 | connect(core, &AtCore::autoTemperatureReportChanged, this, &MainWindow::updateAutoTemperatureReport); | 58 | connect(core, &AtCore::autoTemperatureReportChanged, this, &MainWindow::updateAutoTemperatureReport); | ||
59 | | ||||
58 | comboPort->setFocus(Qt::OtherFocusReason); | 60 | comboPort->setFocus(Qt::OtherFocusReason); | ||
61 | | ||||
62 | if (comboProfile->count() == 0) { | ||||
63 | QMessageBox::information(this, tr("AtCore First Run"), tr("No Profiles Detected, the Profile Manager to create one.")); | ||||
64 | profileDock->setVisible(true); | ||||
65 | move(profileDock->geometry().center()); | ||||
66 | profileDock->move(geometry().center()); | ||||
67 | profileDock->activateWindow(); | ||||
68 | } | ||||
59 | } | 69 | } | ||
60 | 70 | | |||
61 | void MainWindow::initMenu() | 71 | void MainWindow::initMenu() | ||
62 | { | 72 | { | ||
63 | QMenu *menuFile = new QMenu(tr("File")); | 73 | QMenu *menuFile = new QMenu(tr("File")); | ||
64 | QAction *actionQuit = new QAction(style()->standardIcon(QStyle::SP_DialogCloseButton), tr("Quit")); | 74 | QAction *actionQuit = new QAction(style()->standardIcon(QStyle::SP_DialogCloseButton), tr("Quit")); | ||
65 | connect(actionQuit, &QAction::triggered, this, &MainWindow::close); | 75 | connect(actionQuit, &QAction::triggered, this, &MainWindow::close); | ||
66 | menuFile->addAction(actionQuit); | 76 | menuFile->addAction(actionQuit); | ||
Show All 34 Lines | 109 | { | |||
101 | makeCommandDock(); | 111 | makeCommandDock(); | ||
102 | makePrintDock(); | 112 | makePrintDock(); | ||
103 | makeTempTimelineDock(); | 113 | makeTempTimelineDock(); | ||
104 | makeLogDock(); | 114 | makeLogDock(); | ||
105 | makeConnectDock(); | 115 | makeConnectDock(); | ||
106 | makeMoveDock(); | 116 | makeMoveDock(); | ||
107 | makeTempControlsDock(); | 117 | makeTempControlsDock(); | ||
108 | makeSdDock(); | 118 | makeSdDock(); | ||
119 | makeProfileDock(); | ||||
109 | 120 | | |||
110 | setDangeriousDocksDisabled(true); | 121 | setDangeriousDocksDisabled(true); | ||
111 | 122 | | |||
112 | setTabPosition(Qt::LeftDockWidgetArea, QTabWidget::North); | 123 | setTabPosition(Qt::LeftDockWidgetArea, QTabWidget::North); | ||
113 | setTabPosition(Qt::RightDockWidgetArea, QTabWidget::North); | 124 | setTabPosition(Qt::RightDockWidgetArea, QTabWidget::North); | ||
114 | tabifyDockWidget(moveDock, tempControlsDock); | 125 | tabifyDockWidget(moveDock, tempControlsDock); | ||
115 | tabifyDockWidget(moveDock, sdDock); | 126 | tabifyDockWidget(moveDock, sdDock); | ||
116 | moveDock->raise(); | 127 | moveDock->raise(); | ||
117 | 128 | | |||
118 | tabifyDockWidget(connectDock, printDock); | 129 | tabifyDockWidget(connectDock, printDock); | ||
119 | tabifyDockWidget(connectDock, commandDock); | 130 | tabifyDockWidget(connectDock, commandDock); | ||
120 | connectDock->raise(); | 131 | connectDock->raise(); | ||
132 | | ||||
133 | tabifyDockWidget(logDock, profileDock); | ||||
134 | logDock->raise(); | ||||
121 | setCentralWidget(nullptr); | 135 | setCentralWidget(nullptr); | ||
122 | 136 | | |||
123 | //More Gui stuff | 137 | //More Gui stuff | ||
124 | //hide the printing progress bar. | 138 | //hide the printing progress bar. | ||
125 | statusWidget->showPrintArea(false); | 139 | statusWidget->showPrintArea(false); | ||
126 | } | 140 | } | ||
127 | 141 | | |||
128 | void MainWindow::makeCommandDock() | 142 | void MainWindow::makeCommandDock() | ||
▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Line(s) | 261 | { | |||
251 | comboPort = new QComboBox; | 265 | comboPort = new QComboBox; | ||
252 | comboPort->setEditable(true); | 266 | comboPort->setEditable(true); | ||
253 | 267 | | |||
254 | auto *hBoxLayout = new QHBoxLayout; | 268 | auto *hBoxLayout = new QHBoxLayout; | ||
255 | hBoxLayout->addWidget(newLabel); | 269 | hBoxLayout->addWidget(newLabel); | ||
256 | hBoxLayout->addWidget(comboPort, 75); | 270 | hBoxLayout->addWidget(comboPort, 75); | ||
257 | mainLayout->addLayout(hBoxLayout); | 271 | mainLayout->addLayout(hBoxLayout); | ||
258 | 272 | | |||
259 | newLabel = new QLabel(tr("Baud Rate:")); | 273 | comboProfile = new QComboBox(); | ||
260 | comboBAUD = new QComboBox; | 274 | comboProfile->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); | ||
261 | comboBAUD->addItems(core->portSpeeds()); | 275 | comboProfile->addItems(MachineInfo::getInstance().profileNames()); | ||
262 | comboBAUD->setCurrentIndex(9); | 276 | | ||
263 | 277 | connect(&MachineInfo::getInstance(), &MachineInfo::profilesChanged, this, [this] { | |||
264 | hBoxLayout = new QHBoxLayout; | 278 | int index = comboProfile->currentIndex(); | ||
265 | hBoxLayout->addWidget(newLabel); | 279 | comboProfile->clear(); | ||
266 | hBoxLayout->addWidget(comboBAUD, 75); | 280 | comboProfile->addItems(MachineInfo::getInstance().profileNames()); | ||
267 | mainLayout->addLayout(hBoxLayout); | 281 | comboProfile->setCurrentIndex(std::min<int>(index, comboProfile->count() - 1)); | ||
268 | 282 | }); | |||
269 | newLabel = new QLabel(tr("Use Plugin:")); | 283 | | ||
270 | comboPlugin = new QComboBox; | 284 | newLabel = new QLabel(tr("Profile:")); | ||
271 | comboPlugin->addItem(tr("Autodetect")); | 285 | auto profileLayout = new QHBoxLayout(); | ||
272 | comboPlugin->addItems(core->availableFirmwarePlugins()); | 286 | profileLayout->addWidget(newLabel); | ||
273 | 287 | profileLayout->addWidget(comboProfile); | |||
274 | hBoxLayout = new QHBoxLayout; | 288 | mainLayout->addLayout(profileLayout); | ||
275 | hBoxLayout->addWidget(newLabel); | | |||
276 | hBoxLayout->addWidget(comboPlugin, 75); | | |||
277 | mainLayout->addLayout(hBoxLayout); | | |||
278 | 289 | | |||
279 | cbReset = new QCheckBox(tr("Attempt to stop Reset on connect")); | 290 | cbReset = new QCheckBox(tr("Attempt to stop Reset on connect")); | ||
291 | if (MachineInfo::getInstance().profileNames().isEmpty()) { | ||||
280 | cbReset->setHidden(true); | 292 | cbReset->setHidden(true); | ||
293 | } else { | ||||
294 | cbReset->setHidden(MachineInfo::getInstance().readKey( | ||||
295 | comboProfile->currentText(), MachineInfo::KEY::FIRMWARE).toString().contains(QStringLiteral("Auto-Detect"))); | ||||
296 | } | ||||
281 | mainLayout->addWidget(cbReset); | 297 | mainLayout->addWidget(cbReset); | ||
282 | 298 | | |||
283 | connect(comboPlugin, &QComboBox::currentTextChanged, this, [this](const QString & currentText) { | 299 | connect(comboProfile, &QComboBox::currentTextChanged, this, [this](const QString & currentText) { | ||
284 | cbReset->setHidden(!core->availableFirmwarePlugins().contains(currentText)); | 300 | cbReset->setHidden(MachineInfo::getInstance().readKey( | ||
301 | currentText, MachineInfo::KEY::FIRMWARE).toString().contains(QStringLiteral("Auto-Detect"))); | ||||
285 | }); | 302 | }); | ||
286 | 303 | | |||
287 | buttonConnect = new QPushButton(tr("Connect")); | 304 | buttonConnect = new QPushButton(tr("Connect")); | ||
288 | connect(buttonConnect, &QPushButton::clicked, this, &MainWindow::connectPBClicked); | 305 | connect(buttonConnect, &QPushButton::clicked, this, &MainWindow::connectPBClicked); | ||
289 | 306 | | |||
290 | connectionTimer = new QTimer(this); | 307 | connectionTimer = new QTimer(this); | ||
291 | connectionTimer->setInterval(20000); | 308 | connectionTimer->setInterval(20000); | ||
292 | connectionTimer->setSingleShot(true); | 309 | connectionTimer->setSingleShot(true); | ||
▲ Show 20 Lines • Show All 100 Lines • ▼ Show 20 Line(s) | 391 | { | |||
393 | }); | 410 | }); | ||
394 | 411 | | |||
395 | sdDock = new QDockWidget(tr("Sd Card"), this); | 412 | sdDock = new QDockWidget(tr("Sd Card"), this); | ||
396 | sdDock->setWidget(sdWidget); | 413 | sdDock->setWidget(sdWidget); | ||
397 | menuView->insertAction(nullptr, sdDock->toggleViewAction()); | 414 | menuView->insertAction(nullptr, sdDock->toggleViewAction()); | ||
398 | addDockWidget(Qt::LeftDockWidgetArea, sdDock); | 415 | addDockWidget(Qt::LeftDockWidgetArea, sdDock); | ||
399 | } | 416 | } | ||
400 | 417 | | |||
418 | void MainWindow::makeProfileDock() | ||||
419 | { | ||||
420 | profileManager = new ProfileManager(); | ||||
421 | profileDock = new QDockWidget(tr("Profile Manager"), this); | ||||
422 | profileDock->setWidget(profileManager); | ||||
423 | menuView->insertAction(nullptr, profileDock->toggleViewAction()); | ||||
424 | addDockWidget(Qt::RightDockWidgetArea, profileDock); | ||||
425 | profileDock->setFloating(true); | ||||
426 | profileDock->setVisible(false); | ||||
427 | } | ||||
428 | | ||||
401 | void MainWindow::closeEvent(QCloseEvent *event) | 429 | void MainWindow::closeEvent(QCloseEvent *event) | ||
402 | { | 430 | { | ||
403 | core->close(); | 431 | core->close(); | ||
404 | event->accept(); | 432 | event->accept(); | ||
405 | } | 433 | } | ||
406 | 434 | | |||
407 | void MainWindow::checkTemperature(uint sensorType, uint number, float temp) | 435 | void MainWindow::checkTemperature(uint sensorType, uint number, float temp) | ||
408 | { | 436 | { | ||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Line(s) | 480 | if (! logWidget->endsWith(portError)) { | |||
453 | logWidget->appendLog(portError); | 481 | logWidget->appendLog(portError); | ||
454 | } | 482 | } | ||
455 | } | 483 | } | ||
456 | } | 484 | } | ||
457 | 485 | | |||
458 | void MainWindow::connectPBClicked() | 486 | void MainWindow::connectPBClicked() | ||
459 | { | 487 | { | ||
460 | if (core->state() == AtCore::DISCONNECTED) { | 488 | if (core->state() == AtCore::DISCONNECTED) { | ||
461 | if (core->newConnection(comboPort->currentText(), comboBAUD->currentText().toInt(), comboPlugin->currentText(), cbReset->isChecked())) { | 489 | int baud = MachineInfo::getInstance().readKey(comboProfile->currentText(), MachineInfo::KEY::BAUDRATE).toInt(); | ||
490 | QString plugin = MachineInfo::getInstance().readKey(comboProfile->currentText(), MachineInfo::KEY::FIRMWARE).toString(); | ||||
491 | if (core->newConnection(comboPort->currentText(), baud, plugin, cbReset->isChecked())) { | ||||
462 | connect(core, &AtCore::receivedMessage, logWidget, &LogWidget::appendRLog); | 492 | connect(core, &AtCore::receivedMessage, logWidget, &LogWidget::appendRLog); | ||
463 | connect(core, &AtCore::pushedCommand, logWidget, &LogWidget::appendSLog); | 493 | connect(core, &AtCore::pushedCommand, logWidget, &LogWidget::appendSLog); | ||
464 | logWidget->appendLog(tr("Serial connected")); | 494 | logWidget->appendLog(tr("Serial connected")); | ||
465 | if (core->availableFirmwarePlugins().contains(comboPlugin->currentText())) { | 495 | if ((!plugin.contains(QStringLiteral("Auto-Detect"))) && cbReset->isChecked()) { | ||
466 | if (cbReset->isChecked()) { | | |||
467 | //Wait a few seconds after connect to avoid the normal errors | 496 | //Wait a few seconds after connect to avoid the normal errors | ||
468 | QTimer::singleShot(5000, core, &AtCore::sdCardPrintStatus); | 497 | QTimer::singleShot(5000, core, &AtCore::sdCardPrintStatus); | ||
469 | } | 498 | } | ||
470 | } | 499 | } | ||
471 | } | | |||
472 | } else { | 500 | } else { | ||
473 | disconnect(core, &AtCore::receivedMessage, logWidget, &LogWidget::appendRLog); | 501 | disconnect(core, &AtCore::receivedMessage, logWidget, &LogWidget::appendRLog); | ||
474 | disconnect(core, &AtCore::pushedCommand, logWidget, &LogWidget::appendSLog); | 502 | disconnect(core, &AtCore::pushedCommand, logWidget, &LogWidget::appendSLog); | ||
475 | core->closeConnection(); | 503 | core->closeConnection(); | ||
476 | core->setState(AtCore::DISCONNECTED); | 504 | core->setState(AtCore::DISCONNECTED); | ||
477 | logWidget->appendLog(tr("Disconnected")); | 505 | logWidget->appendLog(tr("Disconnected")); | ||
478 | } | 506 | } | ||
479 | } | 507 | } | ||
480 | 508 | | |||
481 | void MainWindow::printPBClicked() | 509 | void MainWindow::printPBClicked() | ||
482 | { | 510 | { | ||
483 | QString fileName; | 511 | QString fileName; | ||
484 | switch (core->state()) { | 512 | switch (core->state()) { | ||
485 | 513 | | |||
486 | case AtCore::DISCONNECTED: | 514 | case AtCore::DISCONNECTED: | ||
487 | QMessageBox::information(this, tr("Error"), tr("Not Connected To a Printer")); | 515 | QMessageBox::information(this, tr("Error"), tr("Not Connected To a Printer")); | ||
488 | break; | 516 | break; | ||
489 | 517 | | |||
490 | case AtCore::CONNECTING: | 518 | case AtCore::CONNECTING: | ||
491 | QMessageBox::information(this, tr("Error"), tr(" A Firmware Plugin was not loaded!\n Please send the command M115 and let us know what your firmware returns, so we can improve our firmware detection. We have loaded the most common plugin \"repetier\" for you. You may try to print again after this message")); | 519 | QMessageBox::information(this, tr("Error"), tr(" A Firmware Plugin was not loaded!\n Please send the command M115 and let us know what your firmware returns, so we can improve our firmware detection. Edit your profile to use \"marlin\" and try again.")); | ||
492 | comboPlugin->setCurrentText(QStringLiteral("repetier")); | 520 | //comboPlugin->setCurrentText(QStringLiteral("marlin")); | ||
493 | break; | 521 | break; | ||
494 | 522 | | |||
495 | case AtCore::IDLE: | 523 | case AtCore::IDLE: | ||
496 | fileName = QFileDialog::getOpenFileName(this, tr("Select a file to print"), QDir::homePath(), tr("*.gcode")); | 524 | fileName = QFileDialog::getOpenFileName(this, tr("Select a file to print"), QDir::homePath(), tr("*.gcode")); | ||
497 | if (fileName.isNull()) { | 525 | if (fileName.isNull()) { | ||
498 | logWidget->appendLog(tr("No File Selected")); | 526 | logWidget->appendLog(tr("No File Selected")); | ||
499 | } else { | 527 | } else { | ||
500 | logWidget->appendLog(tr("Print: %1").arg(fileName)); | 528 | logWidget->appendLog(tr("Print: %1").arg(fileName)); | ||
501 | core->print(fileName); | 529 | core->print(fileName); | ||
502 | } | 530 | } | ||
503 | break; | 531 | break; | ||
504 | 532 | | |||
505 | case AtCore::BUSY: | 533 | case AtCore::BUSY: | ||
506 | core->pause(printWidget->postPauseCommand()); | 534 | core->pause(MachineInfo::getInstance().readKey(comboProfile->currentText(), MachineInfo::KEY::POSTPAUSE).toString()); | ||
507 | break; | 535 | break; | ||
508 | 536 | | |||
509 | case AtCore::PAUSE: | 537 | case AtCore::PAUSE: | ||
510 | core->resume(); | 538 | core->resume(); | ||
511 | break; | 539 | break; | ||
512 | 540 | | |||
513 | default: | 541 | default: | ||
514 | qCDebug(TESTCLIENT_MAINWINDOW) << "ERROR / STOP unhandled."; | 542 | qCDebug(TESTCLIENT_MAINWINDOW) << "ERROR / STOP unhandled."; | ||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Line(s) | 614 | if (checked) { | |||
587 | delete connectDock->titleBarWidget(); | 615 | delete connectDock->titleBarWidget(); | ||
588 | delete logDock->titleBarWidget(); | 616 | delete logDock->titleBarWidget(); | ||
589 | delete tempTimelineDock->titleBarWidget(); | 617 | delete tempTimelineDock->titleBarWidget(); | ||
590 | delete commandDock->titleBarWidget(); | 618 | delete commandDock->titleBarWidget(); | ||
591 | delete moveDock->titleBarWidget(); | 619 | delete moveDock->titleBarWidget(); | ||
592 | delete tempControlsDock->titleBarWidget(); | 620 | delete tempControlsDock->titleBarWidget(); | ||
593 | delete printDock->titleBarWidget(); | 621 | delete printDock->titleBarWidget(); | ||
594 | delete sdDock->titleBarWidget(); | 622 | delete sdDock->titleBarWidget(); | ||
623 | delete profileDock->titleBarWidget(); | ||||
595 | } else { | 624 | } else { | ||
596 | connectDock->setTitleBarWidget(new QWidget()); | 625 | connectDock->setTitleBarWidget(new QWidget()); | ||
597 | logDock->setTitleBarWidget(new QWidget()); | 626 | logDock->setTitleBarWidget(new QWidget()); | ||
598 | tempTimelineDock->setTitleBarWidget(new QWidget()); | 627 | tempTimelineDock->setTitleBarWidget(new QWidget()); | ||
599 | commandDock->setTitleBarWidget(new QWidget()); | 628 | commandDock->setTitleBarWidget(new QWidget()); | ||
600 | moveDock->setTitleBarWidget(new QWidget()); | 629 | moveDock->setTitleBarWidget(new QWidget()); | ||
601 | tempControlsDock->setTitleBarWidget(new QWidget()); | 630 | tempControlsDock->setTitleBarWidget(new QWidget()); | ||
602 | printDock->setTitleBarWidget(new QWidget()); | 631 | printDock->setTitleBarWidget(new QWidget()); | ||
603 | sdDock->setTitleBarWidget(new QWidget()); | 632 | sdDock->setTitleBarWidget(new QWidget()); | ||
633 | profileDock->setTitleBarWidget(new QWidget()); | ||||
604 | } | 634 | } | ||
605 | } | 635 | } | ||
606 | 636 | | |||
607 | void MainWindow::setDangeriousDocksDisabled(bool disabled) | 637 | void MainWindow::setDangeriousDocksDisabled(bool disabled) | ||
608 | { | 638 | { | ||
609 | commandDock->widget()->setDisabled(disabled); | 639 | commandDock->widget()->setDisabled(disabled); | ||
610 | moveDock->widget()->setDisabled(disabled); | 640 | moveDock->widget()->setDisabled(disabled); | ||
611 | tempControlsDock->widget()->setDisabled(disabled); | 641 | tempControlsDock->widget()->setDisabled(disabled); | ||
612 | printDock->widget()->setDisabled(disabled); | 642 | printDock->widget()->setDisabled(disabled); | ||
613 | sdDock->widget()->setDisabled(disabled); | 643 | sdDock->widget()->setDisabled(disabled); | ||
614 | 644 | | |||
615 | if (!disabled) { | 645 | if (!disabled) { | ||
616 | temperatureWidget->updateExtruderCount(core->extruderCount()); | 646 | temperatureWidget->updateExtruderCount(core->extruderCount()); | ||
617 | printWidget->updateFanCount(fanCount); | 647 | printWidget->updateFanCount(fanCount); | ||
618 | } else { | 648 | } else { | ||
619 | printWidget->setPrintText(tr("Print File")); | 649 | printWidget->setPrintText(tr("Print File")); | ||
620 | statusWidget->showPrintArea(false); | 650 | statusWidget->showPrintArea(false); | ||
621 | } | 651 | } | ||
622 | } | 652 | } | ||
623 | 653 | | |||
624 | void MainWindow::setConnectionWidgetsEnabled(bool enabled) | 654 | void MainWindow::setConnectionWidgetsEnabled(bool enabled) | ||
625 | { | 655 | { | ||
626 | comboBAUD->setEnabled(enabled); | 656 | comboProfile->setEnabled(enabled); | ||
627 | comboPlugin->setEnabled(enabled); | | |||
628 | comboPort->setEnabled(enabled); | 657 | comboPort->setEnabled(enabled); | ||
629 | } | 658 | } | ||
630 | 659 | | |||
631 | void MainWindow::updateAutoTemperatureReport(bool autoReport) | 660 | void MainWindow::updateAutoTemperatureReport(bool autoReport) | ||
632 | { | 661 | { | ||
633 | disconnect(sbTemperatureTimer, QOverload<int>::of(&QSpinBox::valueChanged), this, {}); | 662 | disconnect(sbTemperatureTimer, QOverload<int>::of(&QSpinBox::valueChanged), this, {}); | ||
634 | disconnect(core, &AtCore::temperatureTimerIntervalChanged, this, {}); | 663 | disconnect(core, &AtCore::temperatureTimerIntervalChanged, this, {}); | ||
635 | disconnect(core, &AtCore::autoCheckTemperatureIntervalChanged, this, {}); | 664 | disconnect(core, &AtCore::autoCheckTemperatureIntervalChanged, this, {}); | ||
Show All 25 Lines |