diff --git a/src/widgets/bedextruderwidget.cpp b/src/widgets/bedextruderwidget.cpp
index 110a65b..727cb7e 100644
--- a/src/widgets/bedextruderwidget.cpp
+++ b/src/widgets/bedextruderwidget.cpp
@@ -1,130 +1,130 @@
/* Atelier KDE Printer Host for 3D Printing
Copyright (C) <2016>
Author: Lays Rodrigues - lays.rodrigues@kde.org
Tomaz Canabraza - tcanabrava@kde.org
Chris Rizzitello - rizzitello@kde.org
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include
#include
#include
#include "bedextruderwidget.h"
#include "thermowidget.h"
BedExtruderWidget::BedExtruderWidget(QWidget *parent) :
QWidget(parent)
, m_bedThermo(new ThermoWidget(this, QString(i18n("Bed"))))
, m_extruderThermo(new ThermoWidget(this, QString(i18n("HotEnd"))))
, m_extrudersLayout(new QHBoxLayout)
, m_extruderBox(new QWidget(this))
{
m_bedThermo->setScale(0, 150);
m_extruderThermo->setScale(0, 250);
m_extruderBox->setLayout(m_extrudersLayout);
- auto *label = new QLabel(i18n("Active Extruder:"));
+ auto *label = new QLabel(i18n("Active Extruder:"), this);
m_extrudersLayout->addWidget(label);
auto *layout = new QHBoxLayout;
layout->addWidget(m_extruderBox);
layout->addWidget(m_bedThermo);
layout->addWidget(m_extruderThermo);
setLayout(layout);
//Add Default Extruder
setExtruderCount(1);
connect(m_bedThermo, &ThermoWidget::targetTemperatureChanged, this, [this](int v) {
- qDebug() << "Receiving the temperature change for bed";
emit bedTemperatureChanged(v, false);
});
connect(m_extruderThermo, &ThermoWidget::targetTemperatureChanged, this, [this](int v) {
- qDebug() << "Receiving the temperature changed for thermo";
emit extTemperatureChanged(v, currentExtruder(), false);
});
}
void BedExtruderWidget::setExtruderCount(int value)
{
value > 1 ? m_extruderBox->setVisible(true) : m_extruderBox->setVisible(false);
if (value == m_extruderCount) {
return;
- } else if (m_extruderCount < value) {
+ }
+
+ if (m_extruderCount < value) {
//loop for the new buttons
for (int i = m_extruderCount; i < value; i++) {
- auto *rb = new QRadioButton(QString::number(i + 1));
+ auto *rb = new QRadioButton(QString::number(i + 1), this);
m_extrudersLayout->addWidget(rb);
extruderMap.insert(i, rb);
}
} else {
//remove buttons - need to test it!
for (int i = m_extruderCount; i >= value; i--) {
auto *rb = extruderMap.value(i);
m_extrudersLayout->removeWidget(rb);
extruderMap.remove(i);
delete (rb);
}
}
m_extruderCount = value;
}
void BedExtruderWidget::updateBedTemp(const float temp)
{
m_bedThermo->setCurrentTemperature(double(temp));
}
void BedExtruderWidget::updateExtTemp(const float temp)
{
m_extruderThermo->setCurrentTemperature(double(temp));
}
void BedExtruderWidget::updateBedTargetTemp(const int temp)
{
m_bedThermo->setTargetTemperature(temp);
}
void BedExtruderWidget::updateExtTargetTemp(const int temp)
{
m_extruderThermo->setTargetTemperature(temp);
}
int BedExtruderWidget::currentExtruder()
{
int currExt = 0;
for (int i = 0; i < extruderMap.size(); i++) {
if (extruderMap.value(i)->isChecked()) {
currExt = i;
break;
}
}
return currExt;
}
void BedExtruderWidget::setBedMaxTemperature(int value)
{
m_bedThermo->setScale(0, value);
}
void BedExtruderWidget::setExtruderMaxTemperature(int value)
{
m_extruderThermo->setScale(0, value);
}
void BedExtruderWidget::setBedThermoHidden(bool hidden)
{
m_bedThermo->setHidden(hidden);
}
diff --git a/src/widgets/bedextruderwidget.h b/src/widgets/bedextruderwidget.h
index 7db671a..9e9b272 100644
--- a/src/widgets/bedextruderwidget.h
+++ b/src/widgets/bedextruderwidget.h
@@ -1,56 +1,57 @@
/* Atelier KDE Printer Host for 3D Printing
Copyright (C) <2016>
Author: Lays Rodrigues - lays.rodrigues@kde.org
Tomaz Canabraza - tcanabrava@kde.org
Chris Rizzitello - rizzitello@kde.org
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#pragma once
#include
#include
#include
#include
class ThermoWidget;
class BedExtruderWidget : public QWidget
{
Q_OBJECT
public:
explicit BedExtruderWidget(QWidget *parent = nullptr);
+ ~BedExtruderWidget() = default;
void setExtruderCount(int value);
void setBedMaxTemperature(int value);
void setExtruderMaxTemperature(int value);
void updateBedTemp(const float temp);
void updateExtTemp(const float temp);
void updateBedTargetTemp(const int temp);
void updateExtTargetTemp(const int temp);
void setBedThermoHidden(bool hidden);
private:
int m_extruderCount = 0;
ThermoWidget *m_bedThermo = nullptr;
ThermoWidget *m_extruderThermo = nullptr;
QMap extruderMap;
QHBoxLayout *m_extrudersLayout = nullptr;
QWidget *m_extruderBox = nullptr;
int currentExtruder();
signals:
void bedTemperatureChanged(int tmp, bool andWait);
void extTemperatureChanged(int tmp, int currExt, bool andWait);
};