#include "config.h" #include "confighalfenergydlg.h" #include "ui_confighalfenergydlg.h" #include "soundplayer.h" using namespace Define; ConfigHalfEnergyDlg::ConfigHalfEnergyDlg(QWidget *parent) : QDialog(parent), ui(new Ui::ConfigHalfEnergyDlg) { Config* cfg = Config::getInstance(); config_item item; item = cfg->getConfigValue(config_set_half_energy); m_nCurSel = item.d32; ui->setupUi(this); this->setWindowFlags( Qt::FramelessWindowHint); this->setAttribute( Qt::WA_DeleteOnClose); qApp->setActiveWindow(this); this->setFocus(); foreach (QPushButton *button, findChildren()) connect(button, &QPushButton::pressed, SoundPlayer::playClick); ui->pushButton_1->setText(qApp->translate("Config", set_unset_menu[0])); ui->pushButton_2->setText(qApp->translate("Config", set_unset_menu[1])); reloadUi(); m_pSignalMapper = new QSignalMapper(this); m_pSignalMapper->setMapping(ui->pushButton_1,0); m_pSignalMapper->setMapping(ui->pushButton_2,1); connect(ui->pushButton_1,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map())); connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map())); connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int))); m_vectorTabOrder.append(this); m_vectorTabOrder.append(ui->pushButton_1); m_vectorTabOrder.append(ui->pushButton_2); m_vectorTabOrder.append(ui->ctrBtnOk); m_vectorTabOrder.append(ui->ctrBtnCancel); } ConfigHalfEnergyDlg::~ConfigHalfEnergyDlg() { delete ui; } void ConfigHalfEnergyDlg::on_ctrBtnOk_clicked() { Config* cfg = Config::getInstance(); config_item item; item.d32 = m_nCurSel; cfg->setConfigValue(config_set_half_energy,item); accept(); } void ConfigHalfEnergyDlg::onConfigBtnClicked(const int sel){ m_nCurSel = sel; } void ConfigHalfEnergyDlg::on_ctrBtnCancel_clicked() { reject(); } void ConfigHalfEnergyDlg::reloadUi(){ switch(m_nCurSel){ case 0: ui->pushButton_1->setChecked(true); break; case 1: ui->pushButton_2->setChecked(true); break; default: break; } } void ConfigHalfEnergyDlg::keyPressEvent(QKeyEvent *event){ int i = 0; switch (event->key()) { case 0x01000032: // 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 0x01000030: // 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 ConfigHalfEnergyDlg::keyReleaseEvent(QKeyEvent *event){ int i = 0; switch (event->key()) { case 0x01000032: // 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 0x01000030: // 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; } }