#include #include "gasmodelsettingwindow.h" #include "ui_gasmodelsettingwindow.h" #include "yesnopopupdlg.h" #include "soundplayer.h" GasModelSettingWindow::GasModelSettingWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::GasModelSettingWindow) { ui->setupUi(this); ui->clockContainer->setParent(ui->upperStack); setAttribute(Qt::WA_DeleteOnClose); foreach (QPushButton *button, findChildren()) connect(button, &QPushButton::pressed, SoundPlayer::playClick); Config* cfg = Config::getInstance(); Define::config_item item; item = cfg->getConfigValue(Define::config_model); selitem = item.d32; m_ctrChkedBtn = NULL; switch(item.d32){ case Define::model_gas_lng_10: ui->lng10Button->setChecked(true); m_ctrChkedBtn = ui->lng10Button; break; case Define::model_gas_lng_20: ui->lng20Button->setChecked(true); m_ctrChkedBtn = ui->lng20Button; break; case Define::model_gas_lng_24: ui->lng24Button->setChecked(true); m_ctrChkedBtn = ui->lng24Button; break; case Define::model_gas_lng_40: ui->lng40Button->setChecked(true); m_ctrChkedBtn = ui->lng40Button; break; case Define::model_gas_lpg_10: ui->lpg10Button->setChecked(true); m_ctrChkedBtn = ui->lpg10Button; break; case Define::model_gas_lpg_20: ui->lpg20Button->setChecked(true); m_ctrChkedBtn = ui->lpg20Button; break; case Define::model_gas_lpg_24: ui->lpg24Button->setChecked(true); m_ctrChkedBtn = ui->lpg24Button; break; case Define::model_gas_lpg_40: ui->lpg40Button->setChecked(true); m_ctrChkedBtn = ui->lpg40Button; break; } this->setFocus(); } GasModelSettingWindow::~GasModelSettingWindow() { delete ui; } void GasModelSettingWindow::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case 0x01000030: // Turn left onEncoderLeft(); break; case 0x01000031: // Push pushed = focusWidget(); break; case 0x01000032: // Turn right onEncoderRight(); break; } } void GasModelSettingWindow::keyReleaseEvent(QKeyEvent *event) { switch (event->key()) { case 0x01000030: // Turn left onEncoderLeft(); break; case 0x01000031: // Push if (focusWidget() == pushed) onEncoderClicked(pushed); pushed = NULL; break; case 0x01000032: // Turn right onEncoderRight(); break; } } void GasModelSettingWindow::setModel(Define::model_type model) { Define::config_item item; item.d32 = (int) model; Config *config = Config::getInstance(); config->setConfigValue(Define::config_model, item); config->saveConfig(); } void GasModelSettingWindow::on_lpg10Button_clicked() { //setModel(Define::model_gas_lpg_10); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lpg10Button; selitem = Define::model_gas_lpg_10; } void GasModelSettingWindow::on_lng10Button_clicked() { //setModel(Define::model_gas_lng_10); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lng10Button; selitem = Define::model_gas_lng_10; } void GasModelSettingWindow::on_lpg20Button_clicked() { //setModel(Define::model_gas_lpg_20); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lpg20Button; selitem = Define::model_gas_lpg_20; } void GasModelSettingWindow::on_lng20Button_clicked() { //setModel(Define::model_gas_lng_20); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lng20Button; selitem = Define::model_gas_lng_20; } void GasModelSettingWindow::on_lpg24Button_clicked() { //setModel(Define::model_gas_lpg_24); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lpg24Button; selitem = Define::model_gas_lpg_24; } void GasModelSettingWindow::on_lng24Button_clicked() { //setModel(Define::model_gas_lng_24); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lng24Button; selitem = Define::model_gas_lng_24; } void GasModelSettingWindow::on_lpg40Button_clicked() { //setModel(Define::model_gas_lpg_40); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lpg40Button; selitem = Define::model_gas_lpg_40; } void GasModelSettingWindow::on_lng40Button_clicked() { //setModel(Define::model_gas_lng_40); if(m_ctrChkedBtn != NULL)m_ctrChkedBtn->setChecked(false); m_ctrChkedBtn = ui->lng40Button; selitem = Define::model_gas_lng_40; } void GasModelSettingWindow::on_backButton_clicked() { Config* cfg = Config::getInstance(); Define::config_item item; item = cfg->getConfigValue(Define::config_model); if(selitem != item.d32){ YesNoPopupDlg* yesnopop = new YesNoPopupDlg(this, tr("모델을 변경하시겠습니까?")); yesnopop->setModal(true); yesnopop->exec(); if(yesnopop->result() == QDialog::Accepted){ setModel((Define::model_type)selitem); qDebug() << "saved"; } } close(); } void GasModelSettingWindow::onEncoderLeft() { focusPreviousChild(); } void GasModelSettingWindow::onEncoderRight() { focusNextChild(); } void GasModelSettingWindow::onEncoderClicked(QWidget *clicked) { QPushButton *b = qobject_cast(clicked); if (b) b->click(); }