Blame view

app/gui/oven_control/autocookselectionwindow.cpp 2.18 KB
99b8066f4   김태훈   V0.1.1
1
2
3
4
  #include "autocookselectionwindow.h"
  #include "ui_autocookselectionwindow.h"
  
  #include <QSignalMapper>
6f96c947a   김태훈   GUI 0.1.4
5
  #include <QtDebug>
99b8066f4   김태훈   V0.1.1
6
7
8
9
10
11
  
  #include "autocookwindow.h"
  
  AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Oven *oven, Cook::CookType type) :
      QMainWindow(parent),
      ui(new Ui::AutoCookSelectionWindow),
d66d7f5b4   김태훈   GUI 버전 0.1.2
12
      oven(oven), type(type), autoCookWindowOpened(false)
99b8066f4   김태훈   V0.1.1
13
14
  {
      ui->setupUi(this);
6f96c947a   김태훈   GUI 0.1.4
15
      ui->clockContainer->setParent(ui->upperStack);
99b8066f4   김태훈   V0.1.1
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
      setAttribute(Qt::WA_DeleteOnClose);
  
      ui->cookTypeIcon->setPixmap(Cook::icon(type));
  
      switch (type)
      {
      case Cook::Poultry:
          cookList.append(new ChickenCook);
          break;
      case Cook::Meat:
          cookList.append(new MeatPie);
          break;
      case Cook::Bread:
          cookList.append(new Croissant);
          break;
      }
  
      QSignalMapper *sm = new QSignalMapper(this);
      connect(sm, SIGNAL(mapped(int)), SLOT(onCookSelected(int)));
  
      QFont font;
      font.setFamily(QStringLiteral("Roboto"));
      font.setPointSize(10);
      font.setBold(true);
      font.setWeight(75);
  
      QLatin1String stylesheet("QPushButton {
  "
05f2a7552   김태훈   image 관리 구조 변경
44
45
      "border-image: url(:/images/button/288.png);
  "
99b8066f4   김태훈   V0.1.1
46
47
48
49
      "}
  "
      "QPushButton::pressed {
  "
05f2a7552   김태훈   image 관리 구조 변경
50
51
      "border-image: url(:/images/button/288_ov.png);
  "
99b8066f4   김태훈   V0.1.1
52
53
54
55
      "}");
  
      for (int idx = 0; idx < cookList.size(); idx++)
      {
99b8066f4   김태훈   V0.1.1
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
          int x = 12 + (idx % 3) * 294;
          int y = 615 + (idx / 3) * 80;
  
          QPushButton *pb = new QPushButton(this);
          pb->setGeometry(QRect(x, y, 288, 70));
          pb->setFont(font);
          pb->setStyleSheet(stylesheet);
          pb->setText(cookList.at(idx)->name());
  
          sm->setMapping(pb, idx);
          connect(pb, SIGNAL(clicked()), sm, SLOT(map()));
      }
  }
  
  AutoCookSelectionWindow::~AutoCookSelectionWindow()
  {
      delete ui;
  
      foreach (AbstractCook *cook, cookList)
          delete cook;
  }
  
  void AutoCookSelectionWindow::onCookSelected(int idx)
  {
d66d7f5b4   김태훈   GUI 버전 0.1.2
80
81
82
83
      if (autoCookWindowOpened)
          return;
  
      autoCookWindowOpened = true;
6f96c947a   김태훈   GUI 0.1.4
84
85
      AutoCookWindow *w = new AutoCookWindow(parentWidget(), oven, cookList.takeAt(idx));
      w->setWindowModality(Qt::WindowModal);
99b8066f4   김태훈   V0.1.1
86
      w->showFullScreen();
d66d7f5b4   김태훈   GUI 버전 0.1.2
87
6f96c947a   김태훈   GUI 0.1.4
88
      close();
99b8066f4   김태훈   V0.1.1
89
  }
99b8066f4   김태훈   V0.1.1
90
91
92
93
  void AutoCookSelectionWindow::on_backButton_clicked()
  {
      close();
  }