Blame view

app/gui/oven_control/autocookselectionwindow.cpp 2.19 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
44
45
46
47
48
49
50
51
52
53
54
55
      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 {
  "
      "border-image: url(:/images/images/auto/btn_01.png);
  "
      "}
  "
      "QPushButton::pressed {
  "
      "border-image: url(:/images/images/auto/btn_01_ov.png);
  "
      "}");
  
      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();
  }