qt/LedOK/wProgramManager/wEditProgram/wElement/eweatherattr.cpp

191 lines
8.0 KiB
C++
Raw Normal View History

2022-01-04 18:11:48 +08:00
#include "eweatherattr.h"
#include "ui_eweatherattr.h"
eWeatherAttr::eWeatherAttr(const eWeather::Data &data, QWidget *parent) :
eAttr(parent),
ui(new Ui::eWeatherAttr)
{
ui->setupUi(this);
ui->wCountry->setCurrentIndex(0);
ui->wProvince->setVisible(true);
ui->wCity->setVisible(true);
ui->wState->setVisible(false);
ui->wDistrict->setVisible(false);
ui->wLabelProvince->setVisible(true);
ui->wLabelCity->setVisible(true);
ui->wLabelState->setVisible(false);
ui->wLabelDistrict->setVisible(false);
connect(ui->wCountry, SIGNAL(currentIndexChanged(int)), this, SLOT(onCountrySwitched(int)));
ui->wCountry->setCurrentIndex(data.country);
switch (data.country) {
case 0:
ui->wProvince->setCurrentIndex(data.region1);
ui->wCity->setCurrentIndex(data.region2);
break;
case 1:
ui->wState->setCurrentIndex(data.region1);
ui->wDistrict->setCurrentIndex(data.region2);
break;
default:
break;
}
ui->wWeather->setChecked(data.weather);
ui->wTemp->setChecked(data.temp);
ui->wWind->setChecked(data.wind);
ui->wHumi->setChecked(data.humidity);
ui->wCurTemp->setChecked(data.curTemp);
if(data.tempType == 0) {
ui->wCelsius->setChecked(true);
} else {
ui->wFahrenheit->setChecked(true);
}
if(data.tempUnitType == 0) {
ui->wDegreeX->setChecked(true);
} else {
ui->wDegree->setChecked(true);
}
ui->wLabelWeather->setText(data.labelWeather);
ui->wLabelTemp->setText(data.labelTemp);
ui->wLabelWind->setText(data.labelWind);
ui->wLabelHumi->setText(data.labelHumidity);
ui->wLabelCurTemp->setText(data.labelCurTemp);
switch(data.lineStyle) {
case 0: ui->wMultiline->setChecked(true); break;
case 1: ui->wScrollline->setChecked(true); break;
case 2: ui->wStaticline->setChecked(true); break;
default: break;
}
ui->wFontFamily->setCurrentText(data.fontFamily);
ui->wFontSize->setValue(data.fontSize);
ui->wFontBold->setChecked(data.fontBold);
ui->wFontItalics->setChecked(data.fontItalics);
ui->wFontUnderline->setChecked(data.fontUnderline);
ui->wColor->setColor(data.textColor);
ui->wPlayRefresh->setValue(data.playRefresh);
ui->wPlayDuration->setValue(data.playDuration);
connect(ui->wCountry, SIGNAL(currentIndexChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wProvince, SIGNAL(currentIndexChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wCity, SIGNAL(currentIndexChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wState, SIGNAL(currentIndexChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wDistrict, SIGNAL(currentIndexChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wWeather, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wTemp, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wWind, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wHumi, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wCurTemp, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wCelsius, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wFahrenheit, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wDegreeX, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wDegree, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wLabelWeather, SIGNAL(textChanged(const QString &)), this, SLOT(onAttrChanged()));
connect(ui->wLabelTemp, SIGNAL(textChanged(const QString &)), this, SLOT(onAttrChanged()));
connect(ui->wLabelWind, SIGNAL(textChanged(const QString &)), this, SLOT(onAttrChanged()));
connect(ui->wLabelHumi, SIGNAL(textChanged(const QString &)), this, SLOT(onAttrChanged()));
connect(ui->wLabelCurTemp, SIGNAL(textChanged(const QString &)), this, SLOT(onAttrChanged()));
connect(ui->wMultiline, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wScrollline, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wStaticline, SIGNAL(toggled(bool)), this, SLOT(onRadioChecked(bool)));
connect(ui->wFontFamily, SIGNAL(currentIndexChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wFontSize, SIGNAL(valueChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wFontBold, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wFontItalics, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wFontUnderline, SIGNAL(toggled(bool)), this, SLOT(onAttrChanged()));
connect(ui->wColor, SIGNAL(sColorChanged(const QColor&)), this, SLOT(onAttrChanged()));
connect(ui->wPlayRefresh, SIGNAL(valueChanged(int)), this, SLOT(onAttrChanged()));
connect(ui->wPlayDuration, SIGNAL(valueChanged(int)), this, SLOT(onAttrChanged()));
}
eWeatherAttr::~eWeatherAttr()
{
delete ui;
}
void eWeatherAttr::onAttrChanged()
{
eWeather::Data data;
data.country = ui->wCountry->currentIndex();
switch (data.country) {
case 0:
data.region1 = ui->wProvince->currentIndex();
data.region2 = ui->wCity->currentIndex();
break;
case 1:
data.region1 = ui->wState->currentIndex();
data.region2 = ui->wDistrict->currentIndex();
break;
default:
break;
}
data.weather = ui->wWeather->isChecked();
data.temp = ui->wTemp->isChecked();
data.wind = ui->wWind->isChecked();
data.humidity = ui->wHumi->isChecked();
data.curTemp = ui->wCurTemp->isChecked();
if(ui->wCelsius->isChecked()) {
data.tempType = 0;
} else {
data.tempType = 1;
}
if(ui->wDegreeX->isChecked()) {
data.tempUnitType = 0;
} else {
data.tempUnitType = 1;
}
data.labelWeather = ui->wLabelWeather->text();
data.labelTemp = ui->wLabelTemp->text();
data.labelWind = ui->wLabelWind->text();
data.labelHumidity = ui->wLabelHumi->text();
data.labelCurTemp = ui->wLabelCurTemp->text();
if(ui->wMultiline->isChecked()) {
data.lineStyle = 0;
} else if(ui->wScrollline->isChecked()) {
data.lineStyle = 1;
} else {
data.lineStyle = 2;
}
data.fontFamily = ui->wFontFamily->currentText();
data.fontSize = ui->wFontSize->value();
data.fontBold = ui->wFontBold->isChecked();
data.fontItalics = ui->wFontItalics->isChecked();
data.fontUnderline = ui->wFontUnderline->isChecked();
data.textColor = ui->wColor->color();
data.playRefresh = ui->wPlayRefresh->value();
data.playDuration = ui->wPlayDuration->value();
emit sAttrChanged(data);
}
void eWeatherAttr::onCelsiusChecked(bool f) { if(f) ui->wDegreeX->setText(QStringLiteral("")); }
void eWeatherAttr::onFahrenheitChecked(bool f) { if(f) ui->wDegreeX->setText(QStringLiteral("")); }
void eWeatherAttr::onCountrySwitched(int i)
{
switch (i) {
case 0:
ui->wProvince->setVisible(true);
ui->wCity->setVisible(true);
ui->wState->setVisible(false);
ui->wDistrict->setVisible(false);
ui->wLabelProvince->setVisible(true);
ui->wLabelCity->setVisible(true);
ui->wLabelState->setVisible(false);
ui->wLabelDistrict->setVisible(false);
break;
case 1:
ui->wProvince->setVisible(false);
ui->wCity->setVisible(false);
ui->wState->setVisible(true);
ui->wDistrict->setVisible(true);
ui->wLabelProvince->setVisible(false);
ui->wLabelCity->setVisible(false);
ui->wLabelState->setVisible(true);
ui->wLabelDistrict->setVisible(true);
break;
default:
break;
}
}