Blame view

app/gui/oven_control/config1digitsetandenablesetdlg.cpp 3.08 KB
63a45681f   고영탁   엔코더 기능 구현
1
  #include <QKeyEvent>
663943a37   고영탁   설정 기능 마무리 진행 중
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  #include "config1digitsetandenablesetdlg.h"
  #include "ui_config1digitsetandenablesetdlg.h"
  #include "soundplayer.h"
  
  Config1DigitSetAndEnableSetDlg::Config1DigitSetAndEnableSetDlg(QWidget *parent, uint16_t val) :
      QDialog(parent),
      ui(new Ui::Config1DigitSetAndEnableSetDlg)
  {
      ui->setupUi(this);
      this->setWindowFlags(Qt::FramelessWindowHint);
  
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
  
      if(val < MIN_MONITORING_VALUE) val = MIN_MONITORING_VALUE;
  
      ui->ctrSpBxValue->setMaximum(MAX_MONITORING_VALUE);
      ui->ctrSpBxValue->setMinimum(MIN_MONITORING_VALUE);
      ui->ctrSpBxValue->setValue(val);
  
      ui->ctrSpBxValue->installEventFilter(this);
63a45681f   고영탁   엔코더 기능 구현
23
24
25
  
      connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), this, SLOT(keyEnter_clicked()));
      connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()), this, SLOT(keyCancel_clicked()));
663943a37   고영탁   설정 기능 마무리 진행 중
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  }
  
  Config1DigitSetAndEnableSetDlg::~Config1DigitSetAndEnableSetDlg()
  {
      delete ui;
  }
  
  void Config1DigitSetAndEnableSetDlg::on_ctrBtnOk_clicked()
  {
      m_nResult = result_ok;
      close();
  }
  
  
  
  void Config1DigitSetAndEnableSetDlg::on_ctrBtnOk_2_clicked()
  {
      m_nResult = result_disable;
      close();
  }
  
  void Config1DigitSetAndEnableSetDlg::on_ctrBtnCancel_clicked()
  {
      m_nResult = result_rejected;
      close();
  }
63a45681f   고영탁   엔코더 기능 구현
52
53
54
55
56
57
58
59
60
61
  void Config1DigitSetAndEnableSetDlg::keyCancel_clicked()
  {
          if(focusWidget() == ui->ctrSpBxValue) ui->ctrSpBxValue->setValue(m_nPrevValue);
          ui->keyboardwidget->focusOutKeyboard();
  }
  
  void Config1DigitSetAndEnableSetDlg::keyEnter_clicked()
  {
      ui->keyboardwidget->focusOutKeyboard();
  }
663943a37   고영탁   설정 기능 마무리 진행 중
62
63
64
  int Config1DigitSetAndEnableSetDlg::getValue(){
      return ui->ctrSpBxValue->value();
  }
63a45681f   고영탁   엔코더 기능 구현
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
  
  
  void Config1DigitSetAndEnableSetDlg::keyPressEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
      case 0x01000030:    // Turn left
          if(focusWidget() == ui->ctrSpBxValue) ui->ctrBtnCancel->setFocus();
          else focusPreviousChild();
          break;
      case 0x01000031:    // Push
  
          break;
      case 0x01000032:    // Turn right
          if(focusWidget() == ui->ctrBtnCancel) ui->ctrSpBxValue->setFocus();
          else focusNextChild();
  
          break;
      }
  }
  
  void Config1DigitSetAndEnableSetDlg::keyReleaseEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
      case 0x01000030:    // Turn left
          if(focusWidget() == ui->ctrSpBxValue) ui->ctrBtnCancel->setFocus();
          else focusPreviousChild();
          break;
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
          }
          else{
              QSpinBox *spbx = qobject_cast<QSpinBox*>(focusWidget());
              if(spbx != NULL) {
                  m_nPrevValue = spbx->value();
                  ui->keyboardwidget->focusInKeyboard();
              }
          }
          break;
      }
      case 0x01000032:    // Turn right
          if(focusWidget() == ui->ctrBtnCancel) ui->ctrSpBxValue->setFocus();
          else focusNextChild();
          break;
      }
  }