#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; switch(selitem){ case Define::model_electric_10: ui->e10Button->setChecked(true); break; case Define::model_electric_20: ui->e20Button->setChecked(true); break; case Define::model_electric_24: ui->e24Button->setChecked(true); break; case Define::model_electric_40: ui->e40Button->setChecked(true); break; } this->setFocus(); m_vectorTabOrder.append(this); m_vectorTabOrder.append(ui->e10Button); m_vectorTabOrder.append(ui->e20Button); m_vectorTabOrder.append(ui->e24Button); m_vectorTabOrder.append(ui->e40Button); m_vectorTabOrder.append(ui->backButton); } ElectricModelSettingWindow::~ElectricModelSettingWindow() { delete ui; } 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); selitem = Define::model_electric_10; } void ElectricModelSettingWindow::on_e20Button_clicked() { //setModel(Define::model_electric_20); selitem = Define::model_electric_20; } void ElectricModelSettingWindow::on_e24Button_clicked() { //setModel(Define::model_electric_24); selitem = Define::model_electric_24; } void ElectricModelSettingWindow::on_e40Button_clicked() { //setModel(Define::model_electric_40); 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::keyPressEvent(QKeyEvent *event){ int i = 0; switch (event->key()) { case 0x01000030: // Turn left for(i = 0; i < m_vectorTabOrder.size();i++){ if(focusWidget() == m_vectorTabOrder[i]) break; } if(i==0){ i = m_vectorTabOrder.size()-1; m_vectorTabOrder[i]->setFocus(); } else if(i < m_vectorTabOrder.size()) { i = i - 1; m_vectorTabOrder[i]->setFocus(); } else{ i=0; m_vectorTabOrder[i]->setFocus(); } break; case 0x01000031: // Push break; case 0x01000032: // Turn right for(i = 0; i < m_vectorTabOrder.size();i++){ if(focusWidget() == m_vectorTabOrder[i]) break; } if(isetFocus(); } else if(i== (m_vectorTabOrder.size()-1)){ i=0; m_vectorTabOrder[i]->setFocus(); } else{ i=0; m_vectorTabOrder[i]->setFocus(); } break; } } void ElectricModelSettingWindow::keyReleaseEvent(QKeyEvent *event){ int i = 0; switch (event->key()) { case 0x01000030: // Turn left for(i = 0; i < m_vectorTabOrder.size();i++){ if(focusWidget() == m_vectorTabOrder[i]) break; } if(i==0){ i = m_vectorTabOrder.size()-1; m_vectorTabOrder[i]->setFocus(); } else if(i < m_vectorTabOrder.size()) { i = i - 1; m_vectorTabOrder[i]->setFocus(); } else{ i=0; m_vectorTabOrder[i]->setFocus(); } break; case 0x01000031: // Push { QPushButton *btn = qobject_cast(focusWidget()); if(btn != NULL){ btn->click(); } break; } case 0x01000032: // Turn right for(i = 0; i < m_vectorTabOrder.size();i++){ if(focusWidget() == m_vectorTabOrder[i]) break; } if(isetFocus(); } else if(i== (m_vectorTabOrder.size()-1)){ i=0; m_vectorTabOrder[i]->setFocus(); } else{ i=0; m_vectorTabOrder[i]->setFocus(); } break; } }