Blame view

app/gui/oven_control/mainwindow.cpp 3.84 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
20
21
22
23
24
  
  MainWindow::MainWindow(QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::MainWindow)
  {
      ui->setupUi(this);
0ce283850   김태훈   로터리 엔코더 임시 구현
25
26
  
      setFocus();
ac60b5cec   김태훈   음향 효과 일부 적용 및 소스 ...
27
28
29
30
31
32
33
  
      QList<QPushButton *> buttons = findChildren<QPushButton *>();
      foreach (QPushButton *button, buttons)
      {
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
          connect(button, SIGNAL(clicked()), SLOT(setFocus()));
      }
8c2952457   김태훈   응용 프로그램 추가
34
35
36
37
38
39
  }
  
  MainWindow::~MainWindow()
  {
      delete ui;
  }
0ce283850   김태훈   로터리 엔코더 임시 구현
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  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   김태훈   로터리 엔코더 임시 구현
69
70
71
72
73
74
75
          pushedChild = NULL;
          break;
      case 0x01000032:    // Turn right
          focusNextChild();
          break;
      }
  }
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
76
  void MainWindow::showManualCookWindow(Define::Mode mode)
538041ab9   김태훈   소스 코드 구조 개선
77
78
79
80
81
82
  {
      ManualCookWindow *w = new ManualCookWindow(this, mode);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
  }
3f52600cc   김태훈   소스 코드 구조 개선
83
84
85
86
87
88
89
  void MainWindow::showAutoCookSelectionWindow(Define::CookType type)
  {
      AutoCookSelectionWindow *w = new AutoCookSelectionWindow(this, type);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
  }
538041ab9   김태훈   소스 코드 구조 개선
90
  void MainWindow::on_steamButton_clicked()
8c2952457   김태훈   응용 프로그램 추가
91
  {
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
92
      showManualCookWindow(Define::SteamMode);
8c2952457   김태훈   응용 프로그램 추가
93
  }
538041ab9   김태훈   소스 코드 구조 개선
94
  void MainWindow::on_combiButton_clicked()
8c2952457   김태훈   응용 프로그램 추가
95
  {
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
96
      showManualCookWindow(Define::CombiMode);
538041ab9   김태훈   소스 코드 구조 개선
97
98
99
100
  }
  
  void MainWindow::on_dryheatButton_clicked()
  {
d0cfbd177   김태훈   GUI V0.1.10 (이 버전...
101
      showManualCookWindow(Define::DryMode);
8c2952457   김태훈   응용 프로그램 추가
102
  }
99b8066f4   김태훈   V0.1.1
103
104
105
  
  void MainWindow::on_poultryButton_clicked()
  {
3f52600cc   김태훈   소스 코드 구조 개선
106
      showAutoCookSelectionWindow(Define::Poultry);
99b8066f4   김태훈   V0.1.1
107
108
109
110
  }
  
  void MainWindow::on_meatButton_clicked()
  {
3f52600cc   김태훈   소스 코드 구조 개선
111
      showAutoCookSelectionWindow(Define::Meat);
99b8066f4   김태훈   V0.1.1
112
  }
538041ab9   김태훈   소스 코드 구조 개선
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  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
127
128
  void MainWindow::on_breadButton_clicked()
  {
3f52600cc   김태훈   소스 코드 구조 개선
129
      showAutoCookSelectionWindow(Define::Bread);
99b8066f4   김태훈   V0.1.1
130
  }
05f2a7552   김태훈   image 관리 구조 변경
131
538041ab9   김태훈   소스 코드 구조 개선
132
133
134
135
  void MainWindow::on_etcButton_clicked()
  {
      showAutoCookSelectionWindow(Define::Etc);
  }
b85726132   김태훈   부가 기능 UI 추가
136
137
  void MainWindow::on_primeButton_clicked()
  {
f588aa273   김태훈   부가 기능 로직 추가
138
139
140
141
      PrimeWindow *w = new PrimeWindow(this);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
b85726132   김태훈   부가 기능 UI 추가
142
  }
ac60b5cec   김태훈   음향 효과 일부 적용 및 소스 ...
143
144
145
146
147
148
149
150
151
152
153
154
  void MainWindow::on_multiButton_clicked()
  {
  
  }
  
  void MainWindow::on_programmingButton_clicked()
  {
      ProgrammingWindow *w = new ProgrammingWindow(this);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
  }
05f2a7552   김태훈   image 관리 구조 변경
155
156
  void MainWindow::on_washButton_clicked()
  {
538041ab9   김태훈   소스 코드 구조 개선
157
158
159
160
161
162
163
164
      WashWindow *w = new WashWindow(this);
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
  }
  
  void MainWindow::on_configButton_clicked()
  {
f588aa273   김태훈   부가 기능 로직 추가
165
      ConfigWindow *w = new ConfigWindow(this);
453d18662   김태훈   GUI 버전 0.1.11
166
167
168
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
05f2a7552   김태훈   image 관리 구조 변경
169
  }
6a965b9f1   고영탁   엔지니어 모드 2차 구현
170
171
172
  
  void MainWindow::on_helpButton_clicked()
  {
069c75507   고영탁   메인 설정 버튼 기능 변경
173
6a965b9f1   고영탁   엔지니어 모드 2차 구현
174
  }