File indexing completed on 2024-05-12 04:41:12

0001 /* AtCore KDE Libary for 3D Printers
0002     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0003     SPDX-FileCopyrightText: 2018, 2020 Chris Rizzitello <rizzitello@kde.org>
0004     SPDX-FileCopyrightText: 2018 Patrick José Pereira <patrickjp@kde.org>
0005 */
0006 
0007 #include "temperaturewidget.h"
0008 
0009 #include <QCheckBox>
0010 #include <QComboBox>
0011 #include <QHBoxLayout>
0012 #include <QLabel>
0013 #include <QPushButton>
0014 #include <QSpinBox>
0015 #include <QVBoxLayout>
0016 
0017 TemperatureWidget::TemperatureWidget(QWidget *parent)
0018     : QWidget(parent)
0019 {
0020     auto *mainLayout = new QVBoxLayout;
0021     checkAndWait = new QCheckBox(tr("Wait Until Temperature Stabilizes"), this);
0022     mainLayout->addWidget(checkAndWait);
0023 
0024     auto label = new QLabel(tr("Bed Temp"), this);
0025 
0026     sbBedTemp = new QSpinBox(this);
0027     sbBedTemp->setRange(0, 120);
0028     sbBedTemp->setSuffix(QStringLiteral("°C"));
0029 
0030     auto *newButton = new QPushButton(tr("Set"), this);
0031     connect(newButton, &QPushButton::clicked, this, [this] { Q_EMIT bedTempChanged(sbBedTemp->value(), checkAndWait->isChecked()); });
0032 
0033     auto *hboxLayout = new QHBoxLayout;
0034     hboxLayout->addWidget(label, 80);
0035     hboxLayout->addWidget(sbBedTemp);
0036     hboxLayout->addWidget(newButton);
0037     mainLayout->addItem(hboxLayout);
0038 
0039     comboExtruderSelect = new QComboBox(this);
0040     sbExtruderTemp = new QSpinBox(this);
0041     sbExtruderTemp->setRange(0, 275);
0042     sbExtruderTemp->setSuffix(QStringLiteral("°C"));
0043 
0044     newButton = new QPushButton(tr("Set"), this);
0045     connect(newButton, &QPushButton::clicked, this, [this] { Q_EMIT extTempChanged(sbExtruderTemp->value(), comboExtruderSelect->currentIndex(), checkAndWait->isChecked()); });
0046 
0047     hboxLayout = new QHBoxLayout;
0048     hboxLayout->addWidget(comboExtruderSelect, 80);
0049     hboxLayout->addWidget(sbExtruderTemp);
0050     hboxLayout->addWidget(newButton);
0051     mainLayout->addItem(hboxLayout);
0052 
0053     setLayout(mainLayout);
0054 }
0055 
0056 void TemperatureWidget::updateExtruderCount(const int count)
0057 {
0058     comboExtruderSelect->clear();
0059     for (int i = 0; i < count; i++) {
0060         comboExtruderSelect->insertItem(i, tr("Extruder %1").arg(i));
0061     }
0062 }