#include "electricmodelsettingwindow.h" #include "ui_electricmodelsettingwindow.h" #include "yesnopopupdlg.h" #include "soundplayer.h" ElectricModelSettingWindow::ElectricModelSettingWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::ElectricModelSettingWindow) { 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(selitem){ case Define::model_electric_10: ui->e10Button->setChecked(true); m_ctrChkedbtn = ui->e10Button; break; case Define::model_electric_20: ui->e20Button->setChecked(true); m_ctrChkedbtn = ui->e20Button; break; case Define::model_electric_24: ui->e24Button->setChecked(true); m_ctrChkedbtn = ui->e24Button; break; case Define::model_electric_40: ui->e40Button->setChecked(true); m_ctrChkedbtn = ui->e40Button; break; } this->setFocus(); } ElectricModelSettingWindow::~ElectricModelSettingWindow() { delete ui; } void ElectricModelSettingWindow::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 ElectricModelSettingWindow::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 ElectricModelSettingWindow::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 ElectricModelSettingWindow::on_e10Button_clicked() { //setModel(Define::model_electric_10); if(m_ctrChkedbtn != NULL) m_ctrChkedbtn->setChecked(false); m_ctrChkedbtn = ui->e10Button; selitem = Define::model_electric_10; } void ElectricModelSettingWindow::on_e20Button_clicked() { //setModel(Define::model_electric_20); if(m_ctrChkedbtn != NULL) m_ctrChkedbtn->setChecked(false); m_ctrChkedbtn = ui->e20Button; selitem = Define::model_electric_20; } void ElectricModelSettingWindow::on_e24Button_clicked() { //setModel(Define::model_electric_24); if(m_ctrChkedbtn != NULL) m_ctrChkedbtn->setChecked(false); m_ctrChkedbtn = ui->e24Button; selitem = Define::model_electric_24; } void ElectricModelSettingWindow::on_e40Button_clicked() { //setModel(Define::model_electric_40); if(m_ctrChkedbtn != NULL) m_ctrChkedbtn->setChecked(false); m_ctrChkedbtn = ui->e40Button; selitem = Define::model_electric_40; } void ElectricModelSettingWindow::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); } } close(); } void ElectricModelSettingWindow::onEncoderLeft() { focusPreviousChild(); } void ElectricModelSettingWindow::onEncoderRight() { focusNextChild(); } void ElectricModelSettingWindow::onEncoderClicked(QWidget *clicked) { QPushButton *b = qobject_cast(clicked); if (b) b->click(); }