Blame view

app/gui/oven_control/mainwindow.cpp 4.28 KB
8c2952457   김태훈   응용 프로그램 추가
1
2
3
4
5
  #include "mainwindow.h"
  #include "ui_mainwindow.h"
  
  #include <QtDebug>
  #include <QSignalMapper>
0ce283850   김태훈   로터리 엔코더 임시 구현
6
  #include <QKeyEvent>
8c2952457   김태훈   응용 프로그램 추가
7
ac60b5cec   김태훈   음향 효과 일부 적용 및 소스 ...
8
  #include "soundplayer.h"
8c2952457   김태훈   응용 프로그램 추가
9
10
11
12
13
  #include "abstractoveninterface.h"
  #include "manualcookwindow.h"
  #include "ovencontroller.h"
  #include "configwindow.h"
  #include "functiontestwindow.h"
99b8066f4   김태훈   V0.1.1
14
  #include "autocookselectionwindow.h"
05f2a7552   김태훈   image 관리 구조 변경
15
  #include "washwindow.h"
6a965b9f1   고영탁   엔지니어 모드 2차 구현
16
  #include "engineermenuwindow.h"
8597f5496   김태훈   Merge
17
  #include "programmingwindow.h"
b85726132   김태훈   부가 기능 UI 추가
18
  #include "primewindow.h"
8c2952457   김태훈   응용 프로그램 추가
19
e00c6a2a9   김태훈   기능 추가 구현
20
  MainWindow *MainWindow::instance = NULL;
8c2952457   김태훈   응용 프로그램 추가
21
22
23
24
25
  MainWindow::MainWindow(QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::MainWindow)
  {
      ui->setupUi(this);
0ce283850   김태훈   로터리 엔코더 임시 구현
26
e00c6a2a9   김태훈   기능 추가 구현
27
28
      instance = this;
      child = NULL;
0ce283850   김태훈   로터리 엔코더 임시 구현
29
      setFocus();
ac60b5cec   김태훈   음향 효과 일부 적용 및 소스 ...
30
31
32
33
34
35
36
  
      QList<QPushButton *> buttons = findChildren<QPushButton *>();
      foreach (QPushButton *button, buttons)
      {
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
          connect(button, SIGNAL(clicked()), SLOT(setFocus()));
      }
8c2952457   김태훈   응용 프로그램 추가
37
38
39
40
41
42
  }
  
  MainWindow::~MainWindow()
  {
      delete ui;
  }
e00c6a2a9   김태훈   기능 추가 구현
43
44
45
46
47
48
49
  void MainWindow::jump(QMainWindow *newChild)
  {
      if (instance->child)
          instance->child->deleteLater();
  
      instance->child = newChild;
  }
7d0288172   김태훈   기능 추가 구현
50
51
52
53
54
55
56
  void MainWindow::killChild()
  {
      if (instance->child)
          instance->child->deleteLater();
  
      instance->child = NULL;
  }
0ce283850   김태훈   로터리 엔코더 임시 구현
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
  static QPushButton *pushedChild = NULL;
  
  void MainWindow::keyPressEvent(QKeyEvent *event)
  {
      switch (event->key())
      {
      case 0x01000030:    // Turn left
          focusPreviousChild();
          break;
      case 0x01000031:    // Push
          if (focusWidget() != this)
              pushedChild = static_cast<QPushButton *>(focusWidget());
          break;
      case 0x01000032:    // Turn right
          focusNextChild();
          break;
      }
  }
  
  void MainWindow::keyReleaseEvent(QKeyEvent *event)
  {
      switch (event->key())
      {
      case 0x01000030:    // Turn left
          focusPreviousChild();
          break;
      case 0x01000031:    // Push
          if (focusWidget() == pushedChild)
              pushedChild->click();
0ce283850   김태훈   로터리 엔코더 임시 구현
86
87
88
89
90
91
92
          pushedChild = NULL;
          break;
      case 0x01000032:    // Turn right
          focusNextChild();
          break;
      }
  }
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
93
  void MainWindow::showManualCookWindow(Define::Mode mode)
538041ab9   김태훈   소스 코드 구조 개선
94
95
96
97
98
  {
      ManualCookWindow *w = new ManualCookWindow(this, mode);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
e00c6a2a9   김태훈   기능 추가 구현
99
100
  
      child = w;
538041ab9   김태훈   소스 코드 구조 개선
101
  }
3f52600cc   김태훈   소스 코드 구조 개선
102
103
104
105
106
107
  void MainWindow::showAutoCookSelectionWindow(Define::CookType type)
  {
      AutoCookSelectionWindow *w = new AutoCookSelectionWindow(this, type);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
e00c6a2a9   김태훈   기능 추가 구현
108
109
  
      child = w;
3f52600cc   김태훈   소스 코드 구조 개선
110
  }
538041ab9   김태훈   소스 코드 구조 개선
111
  void MainWindow::on_steamButton_clicked()
8c2952457   김태훈   응용 프로그램 추가
112
  {
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
113
      showManualCookWindow(Define::SteamMode);
8c2952457   김태훈   응용 프로그램 추가
114
  }
538041ab9   김태훈   소스 코드 구조 개선
115
  void MainWindow::on_combiButton_clicked()
8c2952457   김태훈   응용 프로그램 추가
116
  {
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
117
      showManualCookWindow(Define::CombiMode);
538041ab9   김태훈   소스 코드 구조 개선
118
119
120
121
  }
  
  void MainWindow::on_dryheatButton_clicked()
  {
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
122
      showManualCookWindow(Define::DryMode);
8c2952457   김태훈   응용 프로그램 추가
123
  }
99b8066f4   김태훈   V0.1.1
124
125
126
  
  void MainWindow::on_poultryButton_clicked()
  {
3f52600cc   김태훈   소스 코드 구조 개선
127
      showAutoCookSelectionWindow(Define::Poultry);
99b8066f4   김태훈   V0.1.1
128
129
130
131
  }
  
  void MainWindow::on_meatButton_clicked()
  {
3f52600cc   김태훈   소스 코드 구조 개선
132
      showAutoCookSelectionWindow(Define::Meat);
99b8066f4   김태훈   V0.1.1
133
  }
538041ab9   김태훈   소스 코드 구조 개선
134
135
136
137
138
139
140
141
142
143
144
145
146
147
  void MainWindow::on_fishButton_clicked()
  {
      showAutoCookSelectionWindow(Define::Fish);
  }
  
  void MainWindow::on_dessertButton_clicked()
  {
      showAutoCookSelectionWindow(Define::Desert);
  }
  
  void MainWindow::on_grainButton_clicked()
  {
      showAutoCookSelectionWindow(Define::Vegetable);
  }
99b8066f4   김태훈   V0.1.1
148
149
  void MainWindow::on_breadButton_clicked()
  {
3f52600cc   김태훈   소스 코드 구조 개선
150
      showAutoCookSelectionWindow(Define::Bread);
99b8066f4   김태훈   V0.1.1
151
  }
05f2a7552   김태훈   image 관리 구조 변경
152
538041ab9   김태훈   소스 코드 구조 개선
153
154
155
156
  void MainWindow::on_etcButton_clicked()
  {
      showAutoCookSelectionWindow(Define::Etc);
  }
b85726132   김태훈   부가 기능 UI 추가
157
158
  void MainWindow::on_primeButton_clicked()
  {
f588aa273   김태훈   부가 기능 로직 추가
159
160
161
162
      PrimeWindow *w = new PrimeWindow(this);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
e00c6a2a9   김태훈   기능 추가 구현
163
164
  
      child = w;
b85726132   김태훈   부가 기능 UI 추가
165
  }
ac60b5cec   김태훈   음향 효과 일부 적용 및 소스 ...
166
167
168
169
170
171
172
173
174
175
176
  void MainWindow::on_multiButton_clicked()
  {
  
  }
  
  void MainWindow::on_programmingButton_clicked()
  {
      ProgrammingWindow *w = new ProgrammingWindow(this);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
e00c6a2a9   김태훈   기능 추가 구현
177
178
  
      child = w;
ac60b5cec   김태훈   음향 효과 일부 적용 및 소스 ...
179
  }
05f2a7552   김태훈   image 관리 구조 변경
180
181
  void MainWindow::on_washButton_clicked()
  {
538041ab9   김태훈   소스 코드 구조 개선
182
183
184
185
      WashWindow *w = new WashWindow(this);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
e00c6a2a9   김태훈   기능 추가 구현
186
187
  
      child = w;
538041ab9   김태훈   소스 코드 구조 개선
188
189
190
191
  }
  
  void MainWindow::on_configButton_clicked()
  {
f588aa273   김태훈   부가 기능 로직 추가
192
      ConfigWindow *w = new ConfigWindow(this);
453d18662   김태훈   GUI 버전 0.1.11
193
194
195
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
e00c6a2a9   김태훈   기능 추가 구현
196
197
  
      child = w;
05f2a7552   김태훈   image 관리 구조 변경
198
  }
6a965b9f1   고영탁   엔지니어 모드 2차 구현
199
200
201
  
  void MainWindow::on_helpButton_clicked()
  {
069c75507   고영탁   메인 설정 버튼 기능 변경
202
6a965b9f1   고영탁   엔지니어 모드 2차 구현
203
  }