Commit 99b8066f4172930adcb429cd7ee5fa0f7f282e2c

Authored by 김태훈
1 parent 34a3c0b0a6
Exists in master and in 2 other branches fhd, fhd-demo

V0.1.1

Showing 400 changed files with 4808 additions and 11 deletions   Show diff stats
app/gui/oven_control/animatedimagebox.cpp
... ... @@ -0,0 +1,53 @@
  1 +#include "animatedimagebox.h"
  2 +
  3 +AnimatedImageBox::AnimatedImageBox(QWidget *parent) :
  4 + QLabel(parent),
  5 + index(0)
  6 +{
  7 + timer = new QTimer(this);
  8 + connect(timer, SIGNAL(timeout()), this, SLOT(step()));
  9 +}
  10 +
  11 +AnimatedImageBox::~AnimatedImageBox()
  12 +{
  13 + images.clear();
  14 +}
  15 +
  16 +void AnimatedImageBox::load(QString fileName)
  17 +{
  18 + QPixmap pixmap;
  19 + pixmap.load(fileName);
  20 +
  21 + if (images.isEmpty())
  22 + setPixmap(pixmap);
  23 +
  24 + images.append(pixmap);
  25 + index = 0;
  26 +}
  27 +
  28 +void AnimatedImageBox::clear()
  29 +{
  30 + images.clear();
  31 + index = 0;
  32 +}
  33 +
  34 +void AnimatedImageBox::start(int msec)
  35 +{
  36 + timer->start(msec);
  37 +}
  38 +
  39 +void AnimatedImageBox::stop()
  40 +{
  41 + timer->stop();
  42 +}
  43 +
  44 +void AnimatedImageBox::step()
  45 +{
  46 + if (images.isEmpty())
  47 + return;
  48 +
  49 + if (index >= images.length())
  50 + index = 0;
  51 +
  52 + setPixmap(images.at(index++));
  53 +}
... ...
app/gui/oven_control/animatedimagebox.h
... ... @@ -0,0 +1,27 @@
  1 +#ifndef ANIMATEDIMAGEBOX_H
  2 +#define ANIMATEDIMAGEBOX_H
  3 +
  4 +#include <QLabel>
  5 +#include <QtCore>
  6 +
  7 +class AnimatedImageBox : public QLabel
  8 +{
  9 + Q_OBJECT
  10 +public:
  11 + explicit AnimatedImageBox(QWidget *parent = 0);
  12 + ~AnimatedImageBox();
  13 + void load(QString fileName);
  14 + void clear();
  15 + void start(int msec);
  16 + void stop();
  17 +
  18 +private:
  19 + QList<QPixmap> images;
  20 + QTimer *timer;
  21 + int index;
  22 +
  23 +private slots:
  24 + void step();
  25 +};
  26 +
  27 +#endif // ANIMATEDIMAGEBOX_H
... ...
app/gui/oven_control/autocookselectionwindow.cpp
... ... @@ -0,0 +1,104 @@
  1 +#include "autocookselectionwindow.h"
  2 +#include "ui_autocookselectionwindow.h"
  3 +
  4 +#include <QSignalMapper>
  5 +
  6 +#include "autocookwindow.h"
  7 +
  8 +AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Oven *oven, Cook::CookType type) :
  9 + QMainWindow(parent),
  10 + ui(new Ui::AutoCookSelectionWindow),
  11 + oven(oven), type(type)
  12 +{
  13 + ui->setupUi(this);
  14 +
  15 + setAttribute(Qt::WA_DeleteOnClose);
  16 +
  17 + ui->cookTypeIcon->setPixmap(Cook::icon(type));
  18 +
  19 + switch (type)
  20 + {
  21 + case Cook::Poultry:
  22 + cookList.append(new ChickenCook);
  23 + break;
  24 + case Cook::Meat:
  25 + cookList.append(new MeatPie);
  26 + break;
  27 + case Cook::Bread:
  28 + cookList.append(new Croissant);
  29 + break;
  30 + }
  31 +
  32 + QSignalMapper *sm = new QSignalMapper(this);
  33 + connect(sm, SIGNAL(mapped(int)), SLOT(onCookSelected(int)));
  34 +
  35 + QFont font;
  36 + font.setFamily(QStringLiteral("Roboto"));
  37 + font.setPointSize(10);
  38 + font.setBold(true);
  39 + font.setWeight(75);
  40 +
  41 + QLatin1String stylesheet("QPushButton {\n"
  42 + "border-image: url(:/images/images/auto/btn_01.png);\n"
  43 + "}\n"
  44 + "QPushButton::pressed {\n"
  45 + "border-image: url(:/images/images/auto/btn_01_ov.png);\n"
  46 + "}");
  47 +
  48 + for (int idx = 0; idx < cookList.size(); idx++)
  49 + {
  50 + // TODO: make pushbuttons, map buttons to index,
  51 + int x = 12 + (idx % 3) * 294;
  52 + int y = 615 + (idx / 3) * 80;
  53 +
  54 + QPushButton *pb = new QPushButton(this);
  55 + pb->setGeometry(QRect(x, y, 288, 70));
  56 + pb->setFont(font);
  57 + pb->setStyleSheet(stylesheet);
  58 + pb->setText(cookList.at(idx)->name());
  59 +
  60 + sm->setMapping(pb, idx);
  61 + connect(pb, SIGNAL(clicked()), sm, SLOT(map()));
  62 + }
  63 +}
  64 +
  65 +AutoCookSelectionWindow::~AutoCookSelectionWindow()
  66 +{
  67 + delete ui;
  68 +
  69 + foreach (AbstractCook *cook, cookList)
  70 + delete cook;
  71 +}
  72 +
  73 +void AutoCookSelectionWindow::onCookSelected(int idx)
  74 +{
  75 + AutoCookWindow *w = new AutoCookWindow(this, oven, cookList.at(idx));
  76 + w->showFullScreen();
  77 +}
  78 +
  79 +void AutoCookSelectionWindow::on_pushButton_clicked()
  80 +{
  81 + AbstractCook *cook;
  82 + switch (type)
  83 + {
  84 + case Cook::Poultry:
  85 + cook = new ChickenCook;
  86 + break;
  87 + case Cook::Meat:
  88 + cook = new MeatPie;
  89 + break;
  90 + case Cook::Bread:
  91 + cook = new Croissant;
  92 + break;
  93 + default:
  94 + return;
  95 + }
  96 +
  97 + AutoCookWindow *w = new AutoCookWindow(this, oven, cook);
  98 + w->showFullScreen();
  99 +}
  100 +
  101 +void AutoCookSelectionWindow::on_backButton_clicked()
  102 +{
  103 + close();
  104 +}
... ...
app/gui/oven_control/autocookselectionwindow.h
... ... @@ -0,0 +1,34 @@
  1 +#ifndef AUTOCOOKSELECTIONWINDOW_H
  2 +#define AUTOCOOKSELECTIONWINDOW_H
  3 +
  4 +#include <QMainWindow>
  5 +
  6 +#include "oven.h"
  7 +#include "cook.h"
  8 +
  9 +namespace Ui {
  10 +class AutoCookSelectionWindow;
  11 +}
  12 +
  13 +class AutoCookSelectionWindow : public QMainWindow
  14 +{
  15 + Q_OBJECT
  16 +
  17 +public:
  18 + explicit AutoCookSelectionWindow(QWidget *parent = 0, Oven *oven = 0, Cook::CookType type = Cook::Poultry);
  19 + ~AutoCookSelectionWindow();
  20 +
  21 +private slots:
  22 + void onCookSelected(int idx);
  23 + void on_pushButton_clicked();
  24 +
  25 + void on_backButton_clicked();
  26 +
  27 +private:
  28 + Ui::AutoCookSelectionWindow *ui;
  29 + Oven *oven;
  30 + Cook::CookType type;
  31 + QList<AbstractCook *> cookList;
  32 +};
  33 +
  34 +#endif // AUTOCOOKSELECTIONWINDOW_H
... ...
app/gui/oven_control/autocookselectionwindow.ui
... ... @@ -0,0 +1,119 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>AutoCookSelectionWindow</class>
  4 + <widget class="QMainWindow" name="AutoCookSelectionWindow">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <widget class="QWidget" name="centralwidget">
  17 + <property name="styleSheet">
  18 + <string notr="true">QWidget#centralwidget {
  19 +background-image: url(:/images/images/auto/ba_ground_set(full)_01);
  20 +}</string>
  21 + </property>
  22 + <widget class="QStackedWidget" name="upperStack">
  23 + <property name="geometry">
  24 + <rect>
  25 + <x>0</x>
  26 + <y>0</y>
  27 + <width>900</width>
  28 + <height>426</height>
  29 + </rect>
  30 + </property>
  31 + <widget class="QWidget" name="clockContainer">
  32 + <property name="styleSheet">
  33 + <string notr="true">QWidget#clockContainer {
  34 +background-image: url(:/images/images/config/001_01_background_time.png);
  35 +}</string>
  36 + </property>
  37 + <widget class="Clock" name="clock" native="true">
  38 + <property name="geometry">
  39 + <rect>
  40 + <x>272</x>
  41 + <y>36</y>
  42 + <width>356</width>
  43 + <height>355</height>
  44 + </rect>
  45 + </property>
  46 + </widget>
  47 + </widget>
  48 + <widget class="QWidget" name="page_2"/>
  49 + </widget>
  50 + <widget class="QWidget" name="bottomBar" native="true">
  51 + <property name="geometry">
  52 + <rect>
  53 + <x>0</x>
  54 + <y>1450</y>
  55 + <width>900</width>
  56 + <height>150</height>
  57 + </rect>
  58 + </property>
  59 + <property name="styleSheet">
  60 + <string notr="true">background-image: url(:/images/images/config_service/001_01_background_under_down.png);</string>
  61 + </property>
  62 + <widget class="QPushButton" name="backButton">
  63 + <property name="geometry">
  64 + <rect>
  65 + <x>401</x>
  66 + <y>26</y>
  67 + <width>97</width>
  68 + <height>97</height>
  69 + </rect>
  70 + </property>
  71 + <property name="sizePolicy">
  72 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  73 + <horstretch>0</horstretch>
  74 + <verstretch>0</verstretch>
  75 + </sizepolicy>
  76 + </property>
  77 + <property name="styleSheet">
  78 + <string notr="true">QPushButton { border-image: url(:/images/images/config_service/006_sys_icon_03.png); }
  79 +QPushButton:pressed { border-image: url(:/images/images/config_service/006_sys_icon_03_ov.png); }</string>
  80 + </property>
  81 + <property name="text">
  82 + <string/>
  83 + </property>
  84 + </widget>
  85 + </widget>
  86 + <widget class="QLabel" name="cookTypeIcon">
  87 + <property name="geometry">
  88 + <rect>
  89 + <x>0</x>
  90 + <y>430</y>
  91 + <width>900</width>
  92 + <height>150</height>
  93 + </rect>
  94 + </property>
  95 + <property name="text">
  96 + <string/>
  97 + </property>
  98 + <property name="pixmap">
  99 + <pixmap resource="resources.qrc">:/images/images/auto/005_auto_icon_01_ov.png</pixmap>
  100 + </property>
  101 + <property name="alignment">
  102 + <set>Qt::AlignCenter</set>
  103 + </property>
  104 + </widget>
  105 + </widget>
  106 + </widget>
  107 + <customwidgets>
  108 + <customwidget>
  109 + <class>Clock</class>
  110 + <extends>QWidget</extends>
  111 + <header>clock.h</header>
  112 + <container>1</container>
  113 + </customwidget>
  114 + </customwidgets>
  115 + <resources>
  116 + <include location="resources.qrc"/>
  117 + </resources>
  118 + <connections/>
  119 +</ui>
... ...
app/gui/oven_control/autocookwindow.cpp
... ... @@ -0,0 +1,754 @@
  1 +#include "autocookwindow.h"
  2 +#include "ui_autocookwindow.h"
  3 +
  4 +AutoCookWindow::AutoCookWindow(QWidget *parent, Oven *oven, AbstractCook *cook) :
  5 + QMainWindow(parent),
  6 + ui(new Ui::AutoCookWindow),
  7 + oven(oven),
  8 + cook(cook),
  9 + started(false),
  10 + selectedStepIndex(0)
  11 +{
  12 + ui->setupUi(this);
  13 +
  14 + setAttribute(Qt::WA_DeleteOnClose);
  15 +
  16 + ui->clockContainer->setParent(ui->upperStack);
  17 +
  18 + bulletPixmap.load(":/images/images/auto/window_arrow_pin_02.png");
  19 + selectedBulletPixmap.load(":/images/images/auto/window_arrow_pin_01.png");
  20 + steamModeIcon.load(":/images/images/auto/window_icon_04.png");
  21 + dryModeIcon.load(":/images/images/auto/window_icon_06.png");
  22 + combiModeIcon.load(":/images/images/auto/window_icon_05.png");
  23 +
  24 + connect(oven, SIGNAL(changed(Oven*)), SLOT(onOvenUpdated()));
  25 + oven->setDefault(Oven::CombinationMode);
  26 +
  27 + lastHumidity = oven->currentHumidity();
  28 + lastTemp = oven->currentTemp();
  29 +
  30 + QTimer *cookStartTimer = new QTimer(this);
  31 + cookStartTimer->setSingleShot(true);
  32 + cookStartTimer->setInterval(3000);
  33 + connect(cookStartTimer, SIGNAL(timeout()), SLOT(start()));
  34 +
  35 + cookStartTimer->start();
  36 +
  37 + connect(ui->configButton_1, SIGNAL(pressed()), SIGNAL(stopCookStartTimer()));
  38 + connect(ui->configButton_2, SIGNAL(pressed()), SIGNAL(stopCookStartTimer()));
  39 + connect(ui->configButton_3, SIGNAL(pressed()), SIGNAL(stopCookStartTimer()));
  40 + connect(ui->configButton_4, SIGNAL(pressed()), SIGNAL(stopCookStartTimer()));
  41 + connect(ui->configButton_5, SIGNAL(pressed()), SIGNAL(stopCookStartTimer()));
  42 + connect(ui->configButton_1, SIGNAL(released()), SIGNAL(startCookStartTimer()));
  43 + connect(ui->configButton_2, SIGNAL(released()), SIGNAL(startCookStartTimer()));
  44 + connect(ui->configButton_3, SIGNAL(released()), SIGNAL(startCookStartTimer()));
  45 + connect(ui->configButton_4, SIGNAL(released()), SIGNAL(startCookStartTimer()));
  46 + connect(ui->configButton_5, SIGNAL(released()), SIGNAL(startCookStartTimer()));
  47 +
  48 + connect(ui->configSlider_1, SIGNAL(sliderPressed()), SIGNAL(stopCookStartTimer()));
  49 + connect(ui->configSlider_2, SIGNAL(sliderPressed()), SIGNAL(stopCookStartTimer()));
  50 + connect(ui->configSlider_3, SIGNAL(sliderPressed()), SIGNAL(stopCookStartTimer()));
  51 + connect(ui->configSlider_4, SIGNAL(sliderPressed()), SIGNAL(stopCookStartTimer()));
  52 + connect(ui->configSlider_5, SIGNAL(sliderPressed()), SIGNAL(stopCookStartTimer()));
  53 + connect(ui->configSlider_1, SIGNAL(actionTriggered(int)), SIGNAL(startCookStartTimer()));
  54 + connect(ui->configSlider_2, SIGNAL(actionTriggered(int)), SIGNAL(startCookStartTimer()));
  55 + connect(ui->configSlider_3, SIGNAL(actionTriggered(int)), SIGNAL(startCookStartTimer()));
  56 + connect(ui->configSlider_4, SIGNAL(actionTriggered(int)), SIGNAL(startCookStartTimer()));
  57 + connect(ui->configSlider_5, SIGNAL(actionTriggered(int)), SIGNAL(startCookStartTimer()));
  58 +
  59 + connect(this, SIGNAL(stopCookStartTimer()), cookStartTimer, SLOT(stop()));
  60 + connect(this, SIGNAL(startCookStartTimer()), cookStartTimer, SLOT(start()));
  61 +
  62 + connect(ui->configSlider_1, SIGNAL(valueChanged(int)), SLOT(onConfigChanged()));
  63 + connect(ui->configSlider_2, SIGNAL(valueChanged(int)), SLOT(onConfigChanged()));
  64 + connect(ui->configSlider_3, SIGNAL(valueChanged(int)), SLOT(onConfigChanged()));
  65 + connect(ui->configSlider_4, SIGNAL(valueChanged(int)), SLOT(onConfigChanged()));
  66 + connect(ui->configSlider_5, SIGNAL(valueChanged(int)), SLOT(onConfigChanged()));
  67 +
  68 + connect(ui->configSlider_1, SIGNAL(sliderMoved(int)), SLOT(updateView()));
  69 + connect(ui->configSlider_2, SIGNAL(sliderMoved(int)), SLOT(updateView()));
  70 + connect(ui->configSlider_3, SIGNAL(sliderMoved(int)), SLOT(updateView()));
  71 + connect(ui->configSlider_4, SIGNAL(sliderMoved(int)), SLOT(updateView()));
  72 + connect(ui->configSlider_5, SIGNAL(sliderMoved(int)), SLOT(updateView()));
  73 + connect(ui->configSlider_1, SIGNAL(valueChanged(int)), SLOT(updateView()));
  74 + connect(ui->configSlider_2, SIGNAL(valueChanged(int)), SLOT(updateView()));
  75 + connect(ui->configSlider_3, SIGNAL(valueChanged(int)), SLOT(updateView()));
  76 + connect(ui->configSlider_4, SIGNAL(valueChanged(int)), SLOT(updateView()));
  77 + connect(ui->configSlider_5, SIGNAL(valueChanged(int)), SLOT(updateView()));
  78 +
  79 +
  80 + checkCookTimer.setInterval(1000);
  81 + connect(&checkCookTimer, SIGNAL(timeout()), SLOT(checkCook()));
  82 +
  83 +
  84 + returnToCurrentStepTimer.setSingleShot(true);
  85 + returnToCurrentStepTimer.setInterval(3000);
  86 + connect(&returnToCurrentStepTimer, SIGNAL(timeout()), SLOT(returnToCurrentStep()));
  87 +
  88 +
  89 + showingCurrentHumidity = false;
  90 + showCurrentHumidityTimer.setSingleShot(true);
  91 + showCurrentHumidityTimer.setInterval(3000);
  92 + connect(&showCurrentHumidityTimer, SIGNAL(timeout()), SLOT(showCurrentHumidity()));
  93 +
  94 + showingCurrentTemp = false;
  95 + showCurrentTempTimer.setSingleShot(true);
  96 + showCurrentTempTimer.setInterval(3000);
  97 + connect(&showCurrentTempTimer, SIGNAL(timeout()), SLOT(showCurrentTemp()));
  98 +
  99 + setupUi();
  100 +}
  101 +
  102 +AutoCookWindow::~AutoCookWindow()
  103 +{
  104 + delete ui;
  105 +}
  106 +
  107 +void AutoCookWindow::setupUi()
  108 +{
  109 + QString cookTypeIcon = Cook::icon(cook->type());
  110 + ui->cookTypeIcon_1->setPixmap(cookTypeIcon);
  111 + ui->cookTypeIcon_2->setPixmap(cookTypeIcon);
  112 +
  113 + QString name = cook->name();
  114 + ui->selectCookButton_1->setText(name);
  115 + ui->selectCookButton_2->setText(name);
  116 +
  117 + for (int idx = 0; idx < 5; idx++)
  118 + {
  119 + QPushButton *icon;
  120 + QWidget *block;
  121 + QLabel *minLabel;
  122 + QLabel *maxLabel;
  123 + QLabel *currentLabel;
  124 + QSlider *slider;
  125 +
  126 + switch (idx)
  127 + {
  128 + case 0:
  129 + icon = ui->configButton_1;
  130 + block = ui->configBlock_1;
  131 + minLabel = ui->configMinLabel_1;
  132 + maxLabel = ui->configMaxLabel_1;
  133 + currentLabel = ui->configCurrentLabel_1;
  134 + slider = ui->configSlider_1;
  135 + break;
  136 + case 1:
  137 + icon = ui->configButton_2;
  138 + block = ui->configBlock_2;
  139 + minLabel = ui->configMinLabel_2;
  140 + maxLabel = ui->configMaxLabel_2;
  141 + currentLabel = ui->configCurrentLabel_2;
  142 + slider = ui->configSlider_2;
  143 + break;
  144 + case 2:
  145 + icon = ui->configButton_3;
  146 + block = ui->configBlock_3;
  147 + minLabel = ui->configMinLabel_3;
  148 + maxLabel = ui->configMaxLabel_3;
  149 + currentLabel = ui->configCurrentLabel_3;
  150 + slider = ui->configSlider_3;
  151 + break;
  152 + case 3:
  153 + icon = ui->configButton_4;
  154 + block = ui->configBlock_4;
  155 + minLabel = ui->configMinLabel_4;
  156 + maxLabel = ui->configMaxLabel_4;
  157 + currentLabel = ui->configCurrentLabel_4;
  158 + slider = ui->configSlider_4;
  159 + break;
  160 + case 4:
  161 + icon = ui->configButton_5;
  162 + block = ui->configBlock_5;
  163 + minLabel = ui->configMinLabel_5;
  164 + maxLabel = ui->configMaxLabel_5;
  165 + currentLabel = ui->configCurrentLabel_5;
  166 + slider = ui->configSlider_5;
  167 + break;
  168 + }
  169 +
  170 + AbstractCookConfig *config = cook->configurations[idx];
  171 + if (config != NULL)
  172 + {
  173 + icon->show();
  174 + icon->setStyleSheet("QPushButton { border-image: url("
  175 + + config->icon()
  176 + + ") } QPushButton::pressed { border-image: url("
  177 + + config->overlayIcon()
  178 + + ") }");
  179 + block->show();
  180 + minLabel->show();
  181 + minLabel->setText(config->minLabel());
  182 + maxLabel->show();
  183 + maxLabel->setText(config->maxLabel());
  184 +
  185 + currentLabel->show();
  186 +
  187 + slider->show();
  188 + slider->blockSignals(true);
  189 + slider->setMinimum(1);
  190 + slider->setMaximum(config->count());
  191 + slider->setValue(config->current());
  192 + slider->blockSignals(false);
  193 +
  194 + qDebug() << "Current value" << config->current();
  195 + }
  196 + else
  197 + {
  198 + icon->hide();
  199 + block->hide();
  200 + minLabel->hide();
  201 + maxLabel->hide();
  202 + currentLabel->hide();
  203 + slider->hide();
  204 + }
  205 + }
  206 +
  207 + if (cook->interTempEnabled())
  208 + {
  209 + ui->configBlock_4->show();
  210 + ui->configButton_4->show();
  211 + ui->configButton_4->setStyleSheet(
  212 + QString("QPushButton { border-image: url(")
  213 + + ":/images/images/auto/011_icon_04_ov_01.png"
  214 + + ") } QPushButton::pressed { border-image: url("
  215 + + ":/images/images/auto/011_icon_04_ov.png"
  216 + + ") }"
  217 + );
  218 + ui->configMinLabel_4->hide();
  219 + ui->configMaxLabel_4->hide();
  220 + ui->configCurrentLabel_4->hide();
  221 + ui->configSlider_4->hide();
  222 +
  223 + interTempEnabled = true;
  224 + }
  225 +
  226 + int offsetX = (900 - (cook->stepCount() * 19 * 2 - 19)) / 2;
  227 + int offsetY = 1150;
  228 + for (int idx = 0; idx < cook->stepCount(); idx++)
  229 + {
  230 + QLabel *bullet = new QLabel(ui->cookPage);
  231 + bullet->setPixmap(bulletPixmap);
  232 + bullet->setGeometry(offsetX + 19 * 2 * idx, offsetY, 19, 19);
  233 + bullets.append(bullet);
  234 + }
  235 +
  236 + ui->cookStepAnimation->start(300);
  237 +
  238 + ui->humidityGauge->setMinimum(0);
  239 + ui->humidityGauge->setMaximum(100);
  240 + ui->humidityGauge->setValue(0);
  241 +
  242 + ui->heatGauge->setMinimum(30);
  243 + ui->heatGauge->setMaximum(300);
  244 + ui->heatGauge->setValue(30);
  245 +
  246 + updateView();
  247 +}
  248 +
  249 +void AutoCookWindow::updateView()
  250 +{
  251 + if (started)
  252 + {
  253 + ui->stackedWidget->setCurrentIndex(1);
  254 +
  255 + for (int idx = 0; idx < bullets.length(); idx++)
  256 + {
  257 + QLabel *bullet = bullets.at(idx);
  258 + if (idx == selectedStepIndex)
  259 + bullet->setPixmap(selectedBulletPixmap);
  260 + else
  261 + bullet->setPixmap(bulletPixmap);
  262 + }
  263 +
  264 + viewStep(cook->step(selectedStepIndex));
  265 +
  266 + int time = oven->time();
  267 + if (time >= 3600)
  268 + ui->timeLabel->setText(QString().sprintf("%d시간 %02d분", time / 3600, (time % 3600) / 60));
  269 + else if (time >= 60)
  270 + ui->timeLabel->setText(QString().sprintf("%d분 %02d초", time / 60, time % 60));
  271 + else
  272 + ui->timeLabel->setText(QString().sprintf("%d초", time));
  273 +
  274 + int curInterTemp = oven->currentInterTemp();
  275 + int interTemp = oven->interTemp();
  276 + ui->interTempLabel->setText(QString().sprintf("%d℃ / %d℃", curInterTemp, interTemp));
  277 + }
  278 + else
  279 + {
  280 + ui->stackedWidget->setCurrentIndex(0);
  281 +
  282 + for (int idx = 0; idx < 5; idx++)
  283 + {
  284 + AbstractCookConfig *config = cook->configurations[idx];
  285 + if (config == NULL)
  286 + continue;
  287 +
  288 + QLabel *l;
  289 + QSlider *s;
  290 + switch (idx)
  291 + {
  292 + case 0:
  293 + l = ui->configCurrentLabel_1;
  294 + s = ui->configSlider_1;
  295 + break;
  296 + case 1:
  297 + l = ui->configCurrentLabel_2;
  298 + s = ui->configSlider_2;
  299 + break;
  300 + case 2:
  301 + l = ui->configCurrentLabel_3;
  302 + s = ui->configSlider_3;
  303 + break;
  304 + case 3:
  305 + l = ui->configCurrentLabel_4;
  306 + s = ui->configSlider_4;
  307 + break;
  308 + case 4:
  309 + l = ui->configCurrentLabel_5;
  310 + s = ui->configSlider_5;
  311 + break;
  312 + }
  313 +
  314 + switch (config->type())
  315 + {
  316 +// case Cook::Time:
  317 +// l->setText(QString().sprintf("%d", cook->time()));
  318 +// break;
  319 + default:
  320 + l->setText(QString().sprintf("%d / %d", config->current(), config->count()));
  321 + break;
  322 + }
  323 + }
  324 +
  325 + if (interTempEnabled)
  326 + {
  327 + ui->configButton_4->setStyleSheet(
  328 + QString("QPushButton { border-image: url(")
  329 + + ":/images/images/auto/011_icon_04_ov_01.png"
  330 + + ") } QPushButton::pressed { border-image: url("
  331 + + ":/images/images/auto/011_icon_04_ov.png"
  332 + + ") }");
  333 + }
  334 + else
  335 + {
  336 + ui->configButton_4->setStyleSheet(
  337 + QString("QPushButton { border-image: url(")
  338 + + ":/images/images/auto/011_icon_04.png"
  339 + + ") } QPushButton::pressed { border-image: url("
  340 + + ":/images/images/auto/011_icon_04_ov.png"
  341 + + ") }");
  342 + }
  343 + }
  344 +}
  345 +
  346 +void AutoCookWindow::viewStep(Cook::Step step)
  347 +{
  348 + switch (Cook::classify(step.type))
  349 + {
  350 + case Cook::PreheatClass:
  351 + viewPreheatStep(step);
  352 + break;
  353 + case Cook::DoorClass:
  354 + viewDoorStep(step);
  355 + break;
  356 + case Cook::CookClass:
  357 + viewCookStep(step);
  358 + break;
  359 + default:
  360 + break;
  361 + }
  362 +}
  363 +
  364 +void AutoCookWindow::viewPreheatStep(Cook::Step step)
  365 +{
  366 + ui->cookStepIcon->show();
  367 + ui->cookStepIcon->setPixmap(QPixmap(":/images/images/auto/sys_icon_05.png"));
  368 + ui->cookStepLabel->show();
  369 + ui->cookStepLabel->setText("예열");
  370 + ui->doorStepLabel->hide();
  371 + ui->cookStepAnimation->hide();
  372 +
  373 + ui->humidityGauge->show();
  374 + ui->humidityGauge->setValue(step.humidity);
  375 + ui->humidityLabel->show();
  376 + if (showingCurrentHumidity)
  377 + ui->humidityLabel->setText(QString().sprintf("%d%%", oven->currentHumidity()));
  378 + else
  379 + ui->humidityLabel->setText(QString().sprintf("%d%%", step.humidity));
  380 +
  381 + ui->heatGauge->show();
  382 + ui->heatGauge->setValue(step.temp);
  383 + ui->heatLabel->show();
  384 + if (showingCurrentTemp)
  385 + ui->heatLabel->setText(QString().sprintf("%d℃", oven->currentTemp()));
  386 + else
  387 + ui->heatLabel->setText(QString().sprintf("%d℃", step.temp));
  388 +
  389 + ui->cookModeIcon->show();
  390 + switch (step.mode)
  391 + {
  392 + case Cook::SteamMode:
  393 + ui->cookModeIcon->setPixmap(steamModeIcon);
  394 + break;
  395 + case Cook::DryMode:
  396 + ui->cookModeIcon->setPixmap(dryModeIcon);
  397 + break;
  398 + case Cook::CombiMode:
  399 + ui->cookModeIcon->setPixmap(combiModeIcon);
  400 + break;
  401 + }
  402 +}
  403 +
  404 +void AutoCookWindow::viewDoorStep(Cook::Step step)
  405 +{
  406 + ui->cookStepLabel->hide();
  407 + ui->cookStepIcon->hide();
  408 + ui->doorStepLabel->show();
  409 + ui->cookStepAnimation->show();
  410 + ui->cookStepAnimation->clear();
  411 +
  412 + ui->humidityGauge->hide();
  413 + ui->humidityLabel->hide();
  414 + ui->heatGauge->hide();
  415 + ui->heatLabel->hide();
  416 + ui->cookModeIcon->hide();
  417 +
  418 + switch (step.type)
  419 + {
  420 + case Cook::PutThermometer:
  421 + ui->doorStepLabel->setText("중심 온도계 삽입");
  422 + ui->cookStepAnimation->load(":/images/images/auto/ani_d_01.png");
  423 + ui->cookStepAnimation->load(":/images/images/auto/ani_d_02.png");
  424 + ui->cookStepAnimation->setGeometry((900-210)/2, 800, 210, 307);
  425 + break;
  426 + case Cook::Load:
  427 + ui->doorStepLabel->setText("식재료 적재");
  428 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_c_01.png");
  429 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_c_02.png");
  430 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_c_03.png");
  431 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_c_04.png");
  432 + ui->cookStepAnimation->setGeometry((900-264)/2, 800, 264, 307);
  433 + break;
  434 + case Cook::Cut:
  435 + ui->doorStepLabel->setText("자르기");
  436 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_b_01.png");
  437 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_b_02.png");
  438 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_b_03.png");
  439 + ui->cookStepAnimation->setGeometry((900-264)/2, 800, 264, 307);
  440 + break;
  441 + case Cook::Pour:
  442 + ui->doorStepLabel->setText("물 붓기");
  443 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_a_01.png");
  444 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_a_02.png");
  445 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_a_03.png");
  446 + ui->cookStepAnimation->load(":/images/images/auto/ani_frame_a_04.png");
  447 + ui->cookStepAnimation->setGeometry((900-264)/2, 800, 264, 307);
  448 + break;
  449 + default:
  450 + ui->doorStepLabel->hide();
  451 + }
  452 +}
  453 +
  454 +void AutoCookWindow::viewCookStep(Cook::Step step)
  455 +{
  456 + ui->cookStepLabel->show();
  457 + ui->cookStepIcon->show();
  458 + ui->doorStepLabel->hide();
  459 + ui->cookStepAnimation->hide();
  460 +
  461 + ui->humidityGauge->show();
  462 + ui->humidityGauge->setValue(step.humidity);
  463 + ui->humidityLabel->show();
  464 + if (showingCurrentHumidity)
  465 + ui->humidityLabel->setText(QString().sprintf("%d%%", oven->currentHumidity()));
  466 + else
  467 + ui->humidityLabel->setText(QString().sprintf("%d%%", step.humidity));
  468 +
  469 + ui->heatGauge->show();
  470 + ui->heatGauge->setValue(step.temp);
  471 + ui->heatLabel->show();
  472 + if (showingCurrentTemp)
  473 + ui->heatLabel->setText(QString().sprintf("%d℃", oven->currentTemp()));
  474 + else
  475 + ui->heatLabel->setText(QString().sprintf("%d℃", step.temp));
  476 +
  477 + ui->cookModeIcon->show();
  478 + switch (step.mode)
  479 + {
  480 + case Cook::SteamMode:
  481 + ui->cookModeIcon->setPixmap(steamModeIcon);
  482 + break;
  483 + case Cook::DryMode:
  484 + ui->cookModeIcon->setPixmap(dryModeIcon);
  485 + break;
  486 + case Cook::CombiMode:
  487 + ui->cookModeIcon->setPixmap(combiModeIcon);
  488 + break;
  489 + }
  490 +
  491 + ui->cookStepLabel->setText(Cook::name(step.type));
  492 + ui->cookStepIcon->setPixmap(QPixmap(Cook::icon(step.type)));
  493 +}
  494 +
  495 +void AutoCookWindow::doPreheatStep(Cook::Step step)
  496 +{
  497 +// oven->setHumidity(step.humidity);
  498 + oven->setHumidity(0);
  499 + oven->setTemp(step.temp);
  500 + oven->startPreheating();
  501 +
  502 + lastHumidity = oven->currentHumidity();
  503 + lastTemp = oven->currentTemp();
  504 +}
  505 +
  506 +void AutoCookWindow::doDoorStep(Cook::Step /*step*/)
  507 +{
  508 + opened = false;
  509 +}
  510 +
  511 +void AutoCookWindow::doCookStep(Cook::Step step)
  512 +{
  513 +// oven->setHumidity(step.humidity);
  514 + oven->setHumidity(0);
  515 + oven->setTemp(step.temp);
  516 + oven->startCooking();
  517 +
  518 + lastHumidity = oven->currentHumidity();
  519 + lastTemp = oven->currentTemp();
  520 +}
  521 +
  522 +static bool checkReached(int target, int last, int current)
  523 +{
  524 + if (target == current)
  525 + return true;
  526 +
  527 + return ((target > last) && (target <= current))
  528 + || ((target < last) && (target >= current));
  529 +}
  530 +
  531 +void AutoCookWindow::checkPreheatStep(Cook::Step step)
  532 +{
  533 + if (/*checkReached(step.humidity, lastHumidity, oven->currentHumidity())
  534 + && */checkReached(step.temp, lastTemp, oven->currentTemp()))
  535 + {
  536 + cook->setCurrentStepIndex(cook->currentStepIndex() + 1);
  537 + doStep();
  538 + }
  539 +}
  540 +
  541 +void AutoCookWindow::checkDoorStep(Cook::Step /*step*/)
  542 +{
  543 + if (opened && !oven->door())
  544 + {
  545 + cook->setCurrentStepIndex(cook->currentStepIndex() + 1);
  546 + doStep();
  547 + }
  548 + else if (!opened && oven->door())
  549 + opened = true;
  550 +}
  551 +
  552 +void AutoCookWindow::checkCookStep(Cook::Step step)
  553 +{
  554 + if (cook->currentStepIndex() + 1 < cook->stepCount())
  555 + {
  556 + if (/*checkReached(step.humidity, lastHumidity, oven->currentHumidity())
  557 + && */checkReached(step.temp, lastTemp, oven->currentTemp()))
  558 + {
  559 + cook->setCurrentStepIndex(cook->currentStepIndex() + 1);
  560 + doStep();
  561 + }
  562 + else if (interTempEnabled)
  563 + {
  564 + if (cook->interTemp() == oven->currentInterTemp())
  565 + {
  566 + cook->setCurrentStepIndex(cook->stepCount() - 1);
  567 + doStep();
  568 + }
  569 + }
  570 + }
  571 +}
  572 +
  573 +void AutoCookWindow::start()
  574 +{
  575 + started = true;
  576 + oven->setTime(cook->time());
  577 + oven->setInterTempEnabled(interTempEnabled);
  578 + oven->setInterTemp(cook->interTemp());
  579 +
  580 + doStep();
  581 + checkCookTimer.start();
  582 +
  583 + updateView();
  584 +}
  585 +
  586 +void AutoCookWindow::stop()
  587 +{
  588 + oven->stop();
  589 + checkCookTimer.stop();
  590 +
  591 + updateView();
  592 +}
  593 +
  594 +void AutoCookWindow::doStep()
  595 +{
  596 + Cook::Step step = cook->currentStep();
  597 + switch (Cook::classify(step.type))
  598 + {
  599 + case Cook::PreheatClass:
  600 + doPreheatStep(step);
  601 + break;
  602 + case Cook::DoorClass:
  603 + doDoorStep(step);
  604 + break;
  605 + case Cook::CookClass:
  606 + doCookStep(step);
  607 + break;
  608 + default:
  609 + break;
  610 + }
  611 +}
  612 +
  613 +void AutoCookWindow::checkCook()
  614 +{
  615 + Cook::Step step = cook->currentStep();
  616 + switch (Cook::classify(step.type))
  617 + {
  618 + case Cook::PreheatClass:
  619 + checkPreheatStep(step);
  620 + break;
  621 + case Cook::DoorClass:
  622 + checkDoorStep(step);
  623 + break;
  624 + case Cook::CookClass:
  625 + checkCookStep(step);
  626 + break;
  627 + default:
  628 + qDebug() << "Checking Invalid Cook";
  629 + }
  630 +
  631 + updateView();
  632 +}
  633 +
  634 +void AutoCookWindow::onOvenUpdated()
  635 +{
  636 + updateView();
  637 +
  638 + qDebug() << "onOvenUpdated()";
  639 +}
  640 +
  641 +void AutoCookWindow::on_showPrevStepButton_clicked()
  642 +{
  643 + if (selectedStepIndex > 0)
  644 + selectedStepIndex--;
  645 +
  646 + updateView();
  647 +
  648 + returnToCurrentStepTimer.start();
  649 +}
  650 +
  651 +void AutoCookWindow::on_showNextStepButton_clicked()
  652 +{
  653 + if (selectedStepIndex + 1 < cook->stepCount())
  654 + selectedStepIndex++;
  655 +
  656 + updateView();
  657 +
  658 + returnToCurrentStepTimer.start();
  659 +}
  660 +
  661 +void AutoCookWindow::returnToCurrentStep()
  662 +{
  663 + selectedStepIndex = cook->currentStepIndex();
  664 +
  665 + updateView();
  666 +}
  667 +
  668 +void AutoCookWindow::onConfigChanged()
  669 +{
  670 + for (int idx = 0; idx < 5; idx++)
  671 + {
  672 + AbstractCookConfig *config = cook->configurations[idx];
  673 + if (config == NULL)
  674 + continue;
  675 +
  676 + QSlider *slider;
  677 + switch (idx)
  678 + {
  679 + case 0:
  680 + slider = ui->configSlider_1;
  681 + break;
  682 + case 1:
  683 + slider = ui->configSlider_2;
  684 + break;
  685 + case 2:
  686 + slider = ui->configSlider_3;
  687 + break;
  688 + case 3:
  689 + slider = ui->configSlider_4;
  690 + break;
  691 + case 4:
  692 + slider = ui->configSlider_5;
  693 + break;
  694 + }
  695 +
  696 + config->setCurrent(slider->value());
  697 + }
  698 +}
  699 +
  700 +void AutoCookWindow::on_backButton_clicked()
  701 +{
  702 + stop();
  703 + close();
  704 +}
  705 +
  706 +void AutoCookWindow::on_configButton_4_clicked()
  707 +{
  708 + if (cook->interTempEnabled())
  709 + {
  710 + interTempEnabled = !interTempEnabled;
  711 +
  712 + updateView();
  713 + }
  714 +}
  715 +
  716 +void AutoCookWindow::on_humidityGaugeButton_pressed()
  717 +{
  718 + showCurrentHumidityTimer.start();
  719 +}
  720 +
  721 +void AutoCookWindow::on_humidityGaugeButton_released()
  722 +{
  723 + showCurrentHumidityTimer.stop();
  724 + showingCurrentHumidity = false;
  725 +
  726 + updateView();
  727 +}
  728 +
  729 +void AutoCookWindow::on_heatGaugeButton_pressed()
  730 +{
  731 + showCurrentTempTimer.start();
  732 +}
  733 +
  734 +void AutoCookWindow::on_heatGaugeButton_released()
  735 +{
  736 + showCurrentTempTimer.stop();
  737 + showingCurrentTemp = false;
  738 +
  739 + updateView();
  740 +}
  741 +
  742 +void AutoCookWindow::showCurrentHumidity()
  743 +{
  744 + showingCurrentHumidity = true;
  745 +
  746 + updateView();
  747 +}
  748 +
  749 +void AutoCookWindow::showCurrentTemp()
  750 +{
  751 + showingCurrentTemp = true;
  752 +
  753 + updateView();
  754 +}
... ...
app/gui/oven_control/autocookwindow.h
... ... @@ -0,0 +1,89 @@
  1 +#ifndef AUTOCOOKWINDOW_H
  2 +#define AUTOCOOKWINDOW_H
  3 +
  4 +#include <QMainWindow>
  5 +#include <QTimer>
  6 +#include <QPixmap>
  7 +#include <QLabel>
  8 +
  9 +#include "oven.h"
  10 +#include "cook.h"
  11 +
  12 +namespace Ui {
  13 +class AutoCookWindow;
  14 +}
  15 +
  16 +class AutoCookWindow : public QMainWindow
  17 +{
  18 + Q_OBJECT
  19 +
  20 +signals:
  21 + void startCookStartTimer();
  22 + void stopCookStartTimer();
  23 +
  24 +public:
  25 + explicit AutoCookWindow(QWidget *parent = 0, Oven *oven = 0, AbstractCook *cook = 0);
  26 + ~AutoCookWindow();
  27 +
  28 +private:
  29 + Ui::AutoCookWindow *ui;
  30 + QTimer checkCookTimer;
  31 + Oven *oven;
  32 + AbstractCook *cook;
  33 + bool started;
  34 + bool opened;
  35 + bool interTempEnabled;
  36 +
  37 + QPixmap bulletPixmap;
  38 + QPixmap selectedBulletPixmap;
  39 + QList<QLabel *> bullets;
  40 + int selectedStepIndex;
  41 + QTimer returnToCurrentStepTimer;
  42 +
  43 + QPixmap steamModeIcon;
  44 + QPixmap dryModeIcon;
  45 + QPixmap combiModeIcon;
  46 +
  47 + bool showingCurrentHumidity;
  48 + bool showingCurrentTemp;
  49 + QTimer showCurrentHumidityTimer;
  50 + QTimer showCurrentTempTimer;
  51 +
  52 + int lastHumidity;
  53 + int lastTemp;
  54 +
  55 + void setupUi();
  56 + void viewStep(Cook::Step step);
  57 + void viewPreheatStep(Cook::Step step);
  58 + void viewDoorStep(Cook::Step step);
  59 + void viewCookStep(Cook::Step step);
  60 + void doPreheatStep(Cook::Step step);
  61 + void doDoorStep(Cook::Step step);
  62 + void doCookStep(Cook::Step step);
  63 + void checkPreheatStep(Cook::Step step);
  64 + void checkDoorStep(Cook::Step step);
  65 + void checkCookStep(Cook::Step step);
  66 +
  67 +private slots:
  68 + void updateView();
  69 + void start();
  70 + void stop();
  71 + void doStep();
  72 + void checkCook();
  73 + void onOvenUpdated();
  74 + void on_showPrevStepButton_clicked();
  75 + void on_showNextStepButton_clicked();
  76 + void returnToCurrentStep();
  77 +
  78 + void onConfigChanged();
  79 + void on_backButton_clicked();
  80 + void on_configButton_4_clicked();
  81 + void on_humidityGaugeButton_pressed();
  82 + void on_humidityGaugeButton_released();
  83 + void on_heatGaugeButton_pressed();
  84 + void on_heatGaugeButton_released();
  85 + void showCurrentHumidity();
  86 + void showCurrentTemp();
  87 +};
  88 +
  89 +#endif // AUTOCOOKWINDOW_H
... ...
app/gui/oven_control/autocookwindow.ui
... ... @@ -0,0 +1,2425 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>AutoCookWindow</class>
  4 + <widget class="QMainWindow" name="AutoCookWindow">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget {
  18 +background-image: url(:/images/images/auto/ba_ground_a01.png);
  19 +}</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralwidget">
  22 + <widget class="QStackedWidget" name="upperStack">
  23 + <property name="geometry">
  24 + <rect>
  25 + <x>0</x>
  26 + <y>0</y>
  27 + <width>900</width>
  28 + <height>426</height>
  29 + </rect>
  30 + </property>
  31 + <widget class="QWidget" name="clockContainer">
  32 + <property name="styleSheet">
  33 + <string notr="true">QWidget#clockContainer {
  34 +background-image: url(:/images/images/config/001_01_background_time.png);
  35 +}</string>
  36 + </property>
  37 + <widget class="Clock" name="clock" native="true">
  38 + <property name="geometry">
  39 + <rect>
  40 + <x>272</x>
  41 + <y>36</y>
  42 + <width>356</width>
  43 + <height>355</height>
  44 + </rect>
  45 + </property>
  46 + </widget>
  47 + </widget>
  48 + <widget class="QWidget" name="page_2"/>
  49 + </widget>
  50 + <widget class="QStackedWidget" name="stackedWidget">
  51 + <property name="geometry">
  52 + <rect>
  53 + <x>0</x>
  54 + <y>0</y>
  55 + <width>900</width>
  56 + <height>1450</height>
  57 + </rect>
  58 + </property>
  59 + <widget class="QWidget" name="configPage">
  60 + <property name="styleSheet">
  61 + <string notr="true">QWidget#configPage {
  62 +background-image: url(:/images/images/auto/ba_ground_set(full)_01);
  63 +}</string>
  64 + </property>
  65 + <widget class="QLabel" name="cookTypeIcon_1">
  66 + <property name="geometry">
  67 + <rect>
  68 + <x>0</x>
  69 + <y>430</y>
  70 + <width>250</width>
  71 + <height>150</height>
  72 + </rect>
  73 + </property>
  74 + <property name="text">
  75 + <string/>
  76 + </property>
  77 + <property name="pixmap">
  78 + <pixmap resource="resources.qrc">:/images/images/auto/005_auto_icon_01_ov.png</pixmap>
  79 + </property>
  80 + <property name="alignment">
  81 + <set>Qt::AlignCenter</set>
  82 + </property>
  83 + </widget>
  84 + <widget class="QPushButton" name="selectCookButton_1">
  85 + <property name="geometry">
  86 + <rect>
  87 + <x>420</x>
  88 + <y>480</y>
  89 + <width>288</width>
  90 + <height>70</height>
  91 + </rect>
  92 + </property>
  93 + <property name="font">
  94 + <font>
  95 + <family>Roboto</family>
  96 + <pointsize>10</pointsize>
  97 + <weight>75</weight>
  98 + <bold>true</bold>
  99 + </font>
  100 + </property>
  101 + <property name="styleSheet">
  102 + <string notr="true">QPushButton {
  103 +border-image: url(:/images/images/auto/btn_01.png);
  104 +}
  105 +QPushButton::pressed {
  106 +border-image: url(:/images/images/auto/btn_01_ov.png);
  107 +}</string>
  108 + </property>
  109 + <property name="text">
  110 + <string/>
  111 + </property>
  112 + </widget>
  113 + <widget class="QPushButton" name="pushButton_4">
  114 + <property name="geometry">
  115 + <rect>
  116 + <x>720</x>
  117 + <y>480</y>
  118 + <width>152</width>
  119 + <height>70</height>
  120 + </rect>
  121 + </property>
  122 + <property name="styleSheet">
  123 + <string notr="true">QPushButton {
  124 +border-image: url(:/images/images/auto/btn_02.png);
  125 +}
  126 +QPushButton::pressed {
  127 +border-image: url(:/images/images/auto/btn_02_ov.png);
  128 +}</string>
  129 + </property>
  130 + <property name="text">
  131 + <string/>
  132 + </property>
  133 + <property name="icon">
  134 + <iconset resource="resources.qrc">
  135 + <normaloff>:/images/images/auto/btn_icon_01.png</normaloff>:/images/images/auto/btn_icon_01.png</iconset>
  136 + </property>
  137 + <property name="iconSize">
  138 + <size>
  139 + <width>40</width>
  140 + <height>51</height>
  141 + </size>
  142 + </property>
  143 + </widget>
  144 + <widget class="QSlider" name="configSlider_1">
  145 + <property name="geometry">
  146 + <rect>
  147 + <x>185</x>
  148 + <y>663</y>
  149 + <width>666</width>
  150 + <height>33</height>
  151 + </rect>
  152 + </property>
  153 + <property name="styleSheet">
  154 + <string notr="true">QSlider::groove {
  155 +background-image: url(:/images/images/manual/010_gauge_bar_bar.png);
  156 +height: 25px;
  157 +margin-bottom: 8px;
  158 +}
  159 +
  160 +QSlider::sub-page {
  161 +background-image: url(:/images/images/manual/010_gauge_bar_stick_01.png);
  162 +height: 25px;
  163 +margin-top: 5px;
  164 +margin-left: 5px;
  165 +margin-bottom: 13px;
  166 +}
  167 +
  168 +QSlider::handle {
  169 +background-image: url(:/images/images/manual/graphe_BTN_Bigsize.png);
  170 +width: 23px;
  171 +margin-bottom: -7px;
  172 +}
  173 +
  174 +QSlider {
  175 +background-image: url(:/images/images/auto/gau_04.png);
  176 +background-repeat: no-repeat;
  177 +}
  178 +</string>
  179 + </property>
  180 + <property name="maximum">
  181 + <number>100</number>
  182 + </property>
  183 + <property name="pageStep">
  184 + <number>1</number>
  185 + </property>
  186 + <property name="value">
  187 + <number>0</number>
  188 + </property>
  189 + <property name="tracking">
  190 + <bool>true</bool>
  191 + </property>
  192 + <property name="orientation">
  193 + <enum>Qt::Horizontal</enum>
  194 + </property>
  195 + </widget>
  196 + <widget class="QLabel" name="configCurrentLabel_1">
  197 + <property name="enabled">
  198 + <bool>true</bool>
  199 + </property>
  200 + <property name="geometry">
  201 + <rect>
  202 + <x>690</x>
  203 + <y>690</y>
  204 + <width>150</width>
  205 + <height>51</height>
  206 + </rect>
  207 + </property>
  208 + <property name="palette">
  209 + <palette>
  210 + <active>
  211 + <colorrole role="WindowText">
  212 + <brush brushstyle="SolidPattern">
  213 + <color alpha="255">
  214 + <red>255</red>
  215 + <green>255</green>
  216 + <blue>255</blue>
  217 + </color>
  218 + </brush>
  219 + </colorrole>
  220 + </active>
  221 + <inactive>
  222 + <colorrole role="WindowText">
  223 + <brush brushstyle="SolidPattern">
  224 + <color alpha="255">
  225 + <red>255</red>
  226 + <green>255</green>
  227 + <blue>255</blue>
  228 + </color>
  229 + </brush>
  230 + </colorrole>
  231 + </inactive>
  232 + <disabled>
  233 + <colorrole role="WindowText">
  234 + <brush brushstyle="SolidPattern">
  235 + <color alpha="255">
  236 + <red>123</red>
  237 + <green>123</green>
  238 + <blue>123</blue>
  239 + </color>
  240 + </brush>
  241 + </colorrole>
  242 + </disabled>
  243 + </palette>
  244 + </property>
  245 + <property name="font">
  246 + <font>
  247 + <family>Malgun Gothic</family>
  248 + <pointsize>11</pointsize>
  249 + </font>
  250 + </property>
  251 + <property name="text">
  252 + <string>스팀</string>
  253 + </property>
  254 + <property name="alignment">
  255 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  256 + </property>
  257 + </widget>
  258 + <widget class="QWidget" name="configBlock_1" native="true">
  259 + <property name="geometry">
  260 + <rect>
  261 + <x>27</x>
  262 + <y>605</y>
  263 + <width>140</width>
  264 + <height>140</height>
  265 + </rect>
  266 + </property>
  267 + <property name="styleSheet">
  268 + <string notr="true">background-image: url(:/images/images/manual/010_icon_block.png);</string>
  269 + </property>
  270 + </widget>
  271 + <widget class="QLabel" name="configMinLabel_1">
  272 + <property name="enabled">
  273 + <bool>true</bool>
  274 + </property>
  275 + <property name="geometry">
  276 + <rect>
  277 + <x>185</x>
  278 + <y>620</y>
  279 + <width>151</width>
  280 + <height>51</height>
  281 + </rect>
  282 + </property>
  283 + <property name="palette">
  284 + <palette>
  285 + <active>
  286 + <colorrole role="WindowText">
  287 + <brush brushstyle="SolidPattern">
  288 + <color alpha="255">
  289 + <red>255</red>
  290 + <green>255</green>
  291 + <blue>255</blue>
  292 + </color>
  293 + </brush>
  294 + </colorrole>
  295 + </active>
  296 + <inactive>
  297 + <colorrole role="WindowText">
  298 + <brush brushstyle="SolidPattern">
  299 + <color alpha="255">
  300 + <red>255</red>
  301 + <green>255</green>
  302 + <blue>255</blue>
  303 + </color>
  304 + </brush>
  305 + </colorrole>
  306 + </inactive>
  307 + <disabled>
  308 + <colorrole role="WindowText">
  309 + <brush brushstyle="SolidPattern">
  310 + <color alpha="255">
  311 + <red>123</red>
  312 + <green>123</green>
  313 + <blue>123</blue>
  314 + </color>
  315 + </brush>
  316 + </colorrole>
  317 + </disabled>
  318 + </palette>
  319 + </property>
  320 + <property name="font">
  321 + <font>
  322 + <family>Malgun Gothic</family>
  323 + <pointsize>9</pointsize>
  324 + </font>
  325 + </property>
  326 + <property name="text">
  327 + <string>감소</string>
  328 + </property>
  329 + <property name="alignment">
  330 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  331 + </property>
  332 + </widget>
  333 + <widget class="QPushButton" name="configButton_1">
  334 + <property name="geometry">
  335 + <rect>
  336 + <x>49</x>
  337 + <y>627</y>
  338 + <width>96</width>
  339 + <height>96</height>
  340 + </rect>
  341 + </property>
  342 + <property name="styleSheet">
  343 + <string notr="true">QPushButton {
  344 + border-image: url(:/images/images/manual/011_icon_01.png);
  345 +}
  346 +
  347 +QPushButton:pressed {
  348 + border-image: url(:/images/images/manual/011_icon_01_ov.png);
  349 +}
  350 +</string>
  351 + </property>
  352 + <property name="text">
  353 + <string/>
  354 + </property>
  355 + </widget>
  356 + <widget class="QLabel" name="configMaxLabel_1">
  357 + <property name="enabled">
  358 + <bool>true</bool>
  359 + </property>
  360 + <property name="geometry">
  361 + <rect>
  362 + <x>700</x>
  363 + <y>620</y>
  364 + <width>151</width>
  365 + <height>51</height>
  366 + </rect>
  367 + </property>
  368 + <property name="palette">
  369 + <palette>
  370 + <active>
  371 + <colorrole role="WindowText">
  372 + <brush brushstyle="SolidPattern">
  373 + <color alpha="255">
  374 + <red>255</red>
  375 + <green>255</green>
  376 + <blue>255</blue>
  377 + </color>
  378 + </brush>
  379 + </colorrole>
  380 + </active>
  381 + <inactive>
  382 + <colorrole role="WindowText">
  383 + <brush brushstyle="SolidPattern">
  384 + <color alpha="255">
  385 + <red>255</red>
  386 + <green>255</green>
  387 + <blue>255</blue>
  388 + </color>
  389 + </brush>
  390 + </colorrole>
  391 + </inactive>
  392 + <disabled>
  393 + <colorrole role="WindowText">
  394 + <brush brushstyle="SolidPattern">
  395 + <color alpha="255">
  396 + <red>123</red>
  397 + <green>123</green>
  398 + <blue>123</blue>
  399 + </color>
  400 + </brush>
  401 + </colorrole>
  402 + </disabled>
  403 + </palette>
  404 + </property>
  405 + <property name="font">
  406 + <font>
  407 + <family>Malgun Gothic</family>
  408 + <pointsize>9</pointsize>
  409 + </font>
  410 + </property>
  411 + <property name="text">
  412 + <string>증가</string>
  413 + </property>
  414 + <property name="alignment">
  415 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  416 + </property>
  417 + </widget>
  418 + <widget class="QLabel" name="configMaxLabel_2">
  419 + <property name="enabled">
  420 + <bool>true</bool>
  421 + </property>
  422 + <property name="geometry">
  423 + <rect>
  424 + <x>700</x>
  425 + <y>780</y>
  426 + <width>151</width>
  427 + <height>51</height>
  428 + </rect>
  429 + </property>
  430 + <property name="palette">
  431 + <palette>
  432 + <active>
  433 + <colorrole role="WindowText">
  434 + <brush brushstyle="SolidPattern">
  435 + <color alpha="255">
  436 + <red>255</red>
  437 + <green>255</green>
  438 + <blue>255</blue>
  439 + </color>
  440 + </brush>
  441 + </colorrole>
  442 + </active>
  443 + <inactive>
  444 + <colorrole role="WindowText">
  445 + <brush brushstyle="SolidPattern">
  446 + <color alpha="255">
  447 + <red>255</red>
  448 + <green>255</green>
  449 + <blue>255</blue>
  450 + </color>
  451 + </brush>
  452 + </colorrole>
  453 + </inactive>
  454 + <disabled>
  455 + <colorrole role="WindowText">
  456 + <brush brushstyle="SolidPattern">
  457 + <color alpha="255">
  458 + <red>123</red>
  459 + <green>123</green>
  460 + <blue>123</blue>
  461 + </color>
  462 + </brush>
  463 + </colorrole>
  464 + </disabled>
  465 + </palette>
  466 + </property>
  467 + <property name="font">
  468 + <font>
  469 + <family>Malgun Gothic</family>
  470 + <pointsize>9</pointsize>
  471 + </font>
  472 + </property>
  473 + <property name="text">
  474 + <string>증가</string>
  475 + </property>
  476 + <property name="alignment">
  477 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  478 + </property>
  479 + </widget>
  480 + <widget class="QLabel" name="configMinLabel_2">
  481 + <property name="enabled">
  482 + <bool>true</bool>
  483 + </property>
  484 + <property name="geometry">
  485 + <rect>
  486 + <x>185</x>
  487 + <y>780</y>
  488 + <width>151</width>
  489 + <height>51</height>
  490 + </rect>
  491 + </property>
  492 + <property name="palette">
  493 + <palette>
  494 + <active>
  495 + <colorrole role="WindowText">
  496 + <brush brushstyle="SolidPattern">
  497 + <color alpha="255">
  498 + <red>255</red>
  499 + <green>255</green>
  500 + <blue>255</blue>
  501 + </color>
  502 + </brush>
  503 + </colorrole>
  504 + </active>
  505 + <inactive>
  506 + <colorrole role="WindowText">
  507 + <brush brushstyle="SolidPattern">
  508 + <color alpha="255">
  509 + <red>255</red>
  510 + <green>255</green>
  511 + <blue>255</blue>
  512 + </color>
  513 + </brush>
  514 + </colorrole>
  515 + </inactive>
  516 + <disabled>
  517 + <colorrole role="WindowText">
  518 + <brush brushstyle="SolidPattern">
  519 + <color alpha="255">
  520 + <red>123</red>
  521 + <green>123</green>
  522 + <blue>123</blue>
  523 + </color>
  524 + </brush>
  525 + </colorrole>
  526 + </disabled>
  527 + </palette>
  528 + </property>
  529 + <property name="font">
  530 + <font>
  531 + <family>Malgun Gothic</family>
  532 + <pointsize>9</pointsize>
  533 + </font>
  534 + </property>
  535 + <property name="text">
  536 + <string>감소</string>
  537 + </property>
  538 + <property name="alignment">
  539 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  540 + </property>
  541 + </widget>
  542 + <widget class="QPushButton" name="configButton_2">
  543 + <property name="geometry">
  544 + <rect>
  545 + <x>49</x>
  546 + <y>787</y>
  547 + <width>96</width>
  548 + <height>96</height>
  549 + </rect>
  550 + </property>
  551 + <property name="styleSheet">
  552 + <string notr="true">QPushButton {
  553 + border-image: url(:/images/images/manual/011_icon_01.png);
  554 +}
  555 +
  556 +QPushButton:pressed {
  557 + border-image: url(:/images/images/manual/011_icon_01_ov.png);
  558 +}
  559 +</string>
  560 + </property>
  561 + <property name="text">
  562 + <string/>
  563 + </property>
  564 + </widget>
  565 + <widget class="QLabel" name="configCurrentLabel_2">
  566 + <property name="enabled">
  567 + <bool>true</bool>
  568 + </property>
  569 + <property name="geometry">
  570 + <rect>
  571 + <x>690</x>
  572 + <y>850</y>
  573 + <width>150</width>
  574 + <height>51</height>
  575 + </rect>
  576 + </property>
  577 + <property name="palette">
  578 + <palette>
  579 + <active>
  580 + <colorrole role="WindowText">
  581 + <brush brushstyle="SolidPattern">
  582 + <color alpha="255">
  583 + <red>255</red>
  584 + <green>255</green>
  585 + <blue>255</blue>
  586 + </color>
  587 + </brush>
  588 + </colorrole>
  589 + </active>
  590 + <inactive>
  591 + <colorrole role="WindowText">
  592 + <brush brushstyle="SolidPattern">
  593 + <color alpha="255">
  594 + <red>255</red>
  595 + <green>255</green>
  596 + <blue>255</blue>
  597 + </color>
  598 + </brush>
  599 + </colorrole>
  600 + </inactive>
  601 + <disabled>
  602 + <colorrole role="WindowText">
  603 + <brush brushstyle="SolidPattern">
  604 + <color alpha="255">
  605 + <red>123</red>
  606 + <green>123</green>
  607 + <blue>123</blue>
  608 + </color>
  609 + </brush>
  610 + </colorrole>
  611 + </disabled>
  612 + </palette>
  613 + </property>
  614 + <property name="font">
  615 + <font>
  616 + <family>Malgun Gothic</family>
  617 + <pointsize>11</pointsize>
  618 + </font>
  619 + </property>
  620 + <property name="text">
  621 + <string>스팀</string>
  622 + </property>
  623 + <property name="alignment">
  624 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  625 + </property>
  626 + </widget>
  627 + <widget class="QWidget" name="configBlock_2" native="true">
  628 + <property name="geometry">
  629 + <rect>
  630 + <x>27</x>
  631 + <y>765</y>
  632 + <width>140</width>
  633 + <height>140</height>
  634 + </rect>
  635 + </property>
  636 + <property name="styleSheet">
  637 + <string notr="true">background-image: url(:/images/images/manual/010_icon_block.png);</string>
  638 + </property>
  639 + </widget>
  640 + <widget class="QSlider" name="configSlider_2">
  641 + <property name="geometry">
  642 + <rect>
  643 + <x>185</x>
  644 + <y>823</y>
  645 + <width>666</width>
  646 + <height>33</height>
  647 + </rect>
  648 + </property>
  649 + <property name="styleSheet">
  650 + <string notr="true">QSlider::groove {
  651 +background-image: url(:/images/images/manual/010_gauge_bar_bar.png);
  652 +height: 25px;
  653 +margin-bottom: 8px;
  654 +}
  655 +
  656 +QSlider::sub-page {
  657 +background-image: url(:/images/images/manual/010_gauge_bar_stick_01.png);
  658 +height: 25px;
  659 +margin-top: 5px;
  660 +margin-left: 5px;
  661 +margin-bottom: 13px;
  662 +}
  663 +
  664 +QSlider::handle {
  665 +background-image: url(:/images/images/manual/graphe_BTN_Bigsize.png);
  666 +width: 23px;
  667 +margin-bottom: -7px;
  668 +}
  669 +
  670 +QSlider {
  671 +background-image: url(:/images/images/auto/gau_04.png);
  672 +background-repeat: no-repeat;
  673 +}
  674 +</string>
  675 + </property>
  676 + <property name="maximum">
  677 + <number>100</number>
  678 + </property>
  679 + <property name="pageStep">
  680 + <number>1</number>
  681 + </property>
  682 + <property name="value">
  683 + <number>0</number>
  684 + </property>
  685 + <property name="tracking">
  686 + <bool>true</bool>
  687 + </property>
  688 + <property name="orientation">
  689 + <enum>Qt::Horizontal</enum>
  690 + </property>
  691 + </widget>
  692 + <widget class="QLabel" name="configMaxLabel_3">
  693 + <property name="enabled">
  694 + <bool>true</bool>
  695 + </property>
  696 + <property name="geometry">
  697 + <rect>
  698 + <x>700</x>
  699 + <y>950</y>
  700 + <width>151</width>
  701 + <height>51</height>
  702 + </rect>
  703 + </property>
  704 + <property name="palette">
  705 + <palette>
  706 + <active>
  707 + <colorrole role="WindowText">
  708 + <brush brushstyle="SolidPattern">
  709 + <color alpha="255">
  710 + <red>255</red>
  711 + <green>255</green>
  712 + <blue>255</blue>
  713 + </color>
  714 + </brush>
  715 + </colorrole>
  716 + </active>
  717 + <inactive>
  718 + <colorrole role="WindowText">
  719 + <brush brushstyle="SolidPattern">
  720 + <color alpha="255">
  721 + <red>255</red>
  722 + <green>255</green>
  723 + <blue>255</blue>
  724 + </color>
  725 + </brush>
  726 + </colorrole>
  727 + </inactive>
  728 + <disabled>
  729 + <colorrole role="WindowText">
  730 + <brush brushstyle="SolidPattern">
  731 + <color alpha="255">
  732 + <red>123</red>
  733 + <green>123</green>
  734 + <blue>123</blue>
  735 + </color>
  736 + </brush>
  737 + </colorrole>
  738 + </disabled>
  739 + </palette>
  740 + </property>
  741 + <property name="font">
  742 + <font>
  743 + <family>Malgun Gothic</family>
  744 + <pointsize>9</pointsize>
  745 + </font>
  746 + </property>
  747 + <property name="text">
  748 + <string>증가</string>
  749 + </property>
  750 + <property name="alignment">
  751 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  752 + </property>
  753 + </widget>
  754 + <widget class="QLabel" name="configMinLabel_3">
  755 + <property name="enabled">
  756 + <bool>true</bool>
  757 + </property>
  758 + <property name="geometry">
  759 + <rect>
  760 + <x>185</x>
  761 + <y>950</y>
  762 + <width>151</width>
  763 + <height>51</height>
  764 + </rect>
  765 + </property>
  766 + <property name="palette">
  767 + <palette>
  768 + <active>
  769 + <colorrole role="WindowText">
  770 + <brush brushstyle="SolidPattern">
  771 + <color alpha="255">
  772 + <red>255</red>
  773 + <green>255</green>
  774 + <blue>255</blue>
  775 + </color>
  776 + </brush>
  777 + </colorrole>
  778 + </active>
  779 + <inactive>
  780 + <colorrole role="WindowText">
  781 + <brush brushstyle="SolidPattern">
  782 + <color alpha="255">
  783 + <red>255</red>
  784 + <green>255</green>
  785 + <blue>255</blue>
  786 + </color>
  787 + </brush>
  788 + </colorrole>
  789 + </inactive>
  790 + <disabled>
  791 + <colorrole role="WindowText">
  792 + <brush brushstyle="SolidPattern">
  793 + <color alpha="255">
  794 + <red>123</red>
  795 + <green>123</green>
  796 + <blue>123</blue>
  797 + </color>
  798 + </brush>
  799 + </colorrole>
  800 + </disabled>
  801 + </palette>
  802 + </property>
  803 + <property name="font">
  804 + <font>
  805 + <family>Malgun Gothic</family>
  806 + <pointsize>9</pointsize>
  807 + </font>
  808 + </property>
  809 + <property name="text">
  810 + <string>감소</string>
  811 + </property>
  812 + <property name="alignment">
  813 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  814 + </property>
  815 + </widget>
  816 + <widget class="QPushButton" name="configButton_3">
  817 + <property name="geometry">
  818 + <rect>
  819 + <x>49</x>
  820 + <y>957</y>
  821 + <width>96</width>
  822 + <height>96</height>
  823 + </rect>
  824 + </property>
  825 + <property name="styleSheet">
  826 + <string notr="true">QPushButton {
  827 + border-image: url(:/images/images/manual/011_icon_01.png);
  828 +}
  829 +
  830 +QPushButton:pressed {
  831 + border-image: url(:/images/images/manual/011_icon_01_ov.png);
  832 +}
  833 +</string>
  834 + </property>
  835 + <property name="text">
  836 + <string/>
  837 + </property>
  838 + </widget>
  839 + <widget class="QLabel" name="configCurrentLabel_3">
  840 + <property name="enabled">
  841 + <bool>true</bool>
  842 + </property>
  843 + <property name="geometry">
  844 + <rect>
  845 + <x>690</x>
  846 + <y>1020</y>
  847 + <width>150</width>
  848 + <height>51</height>
  849 + </rect>
  850 + </property>
  851 + <property name="palette">
  852 + <palette>
  853 + <active>
  854 + <colorrole role="WindowText">
  855 + <brush brushstyle="SolidPattern">
  856 + <color alpha="255">
  857 + <red>255</red>
  858 + <green>255</green>
  859 + <blue>255</blue>
  860 + </color>
  861 + </brush>
  862 + </colorrole>
  863 + </active>
  864 + <inactive>
  865 + <colorrole role="WindowText">
  866 + <brush brushstyle="SolidPattern">
  867 + <color alpha="255">
  868 + <red>255</red>
  869 + <green>255</green>
  870 + <blue>255</blue>
  871 + </color>
  872 + </brush>
  873 + </colorrole>
  874 + </inactive>
  875 + <disabled>
  876 + <colorrole role="WindowText">
  877 + <brush brushstyle="SolidPattern">
  878 + <color alpha="255">
  879 + <red>123</red>
  880 + <green>123</green>
  881 + <blue>123</blue>
  882 + </color>
  883 + </brush>
  884 + </colorrole>
  885 + </disabled>
  886 + </palette>
  887 + </property>
  888 + <property name="font">
  889 + <font>
  890 + <family>Malgun Gothic</family>
  891 + <pointsize>11</pointsize>
  892 + </font>
  893 + </property>
  894 + <property name="text">
  895 + <string>스팀</string>
  896 + </property>
  897 + <property name="alignment">
  898 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  899 + </property>
  900 + </widget>
  901 + <widget class="QWidget" name="configBlock_3" native="true">
  902 + <property name="geometry">
  903 + <rect>
  904 + <x>27</x>
  905 + <y>935</y>
  906 + <width>140</width>
  907 + <height>140</height>
  908 + </rect>
  909 + </property>
  910 + <property name="styleSheet">
  911 + <string notr="true">background-image: url(:/images/images/manual/010_icon_block.png);</string>
  912 + </property>
  913 + </widget>
  914 + <widget class="QSlider" name="configSlider_3">
  915 + <property name="geometry">
  916 + <rect>
  917 + <x>185</x>
  918 + <y>993</y>
  919 + <width>666</width>
  920 + <height>33</height>
  921 + </rect>
  922 + </property>
  923 + <property name="styleSheet">
  924 + <string notr="true">QSlider::groove {
  925 +background-image: url(:/images/images/manual/010_gauge_bar_bar.png);
  926 +height: 25px;
  927 +margin-bottom: 8px;
  928 +}
  929 +
  930 +QSlider::sub-page {
  931 +background-image: url(:/images/images/manual/010_gauge_bar_stick_01.png);
  932 +height: 25px;
  933 +margin-top: 5px;
  934 +margin-left: 5px;
  935 +margin-bottom: 13px;
  936 +}
  937 +
  938 +QSlider::handle {
  939 +background-image: url(:/images/images/manual/graphe_BTN_Bigsize.png);
  940 +width: 23px;
  941 +margin-bottom: -7px;
  942 +}
  943 +
  944 +QSlider {
  945 +background-image: url(:/images/images/auto/gau_04.png);
  946 +background-repeat: no-repeat;
  947 +}
  948 +</string>
  949 + </property>
  950 + <property name="maximum">
  951 + <number>100</number>
  952 + </property>
  953 + <property name="pageStep">
  954 + <number>1</number>
  955 + </property>
  956 + <property name="value">
  957 + <number>0</number>
  958 + </property>
  959 + <property name="tracking">
  960 + <bool>true</bool>
  961 + </property>
  962 + <property name="orientation">
  963 + <enum>Qt::Horizontal</enum>
  964 + </property>
  965 + </widget>
  966 + <widget class="QLabel" name="configMaxLabel_4">
  967 + <property name="enabled">
  968 + <bool>true</bool>
  969 + </property>
  970 + <property name="geometry">
  971 + <rect>
  972 + <x>700</x>
  973 + <y>1130</y>
  974 + <width>151</width>
  975 + <height>51</height>
  976 + </rect>
  977 + </property>
  978 + <property name="palette">
  979 + <palette>
  980 + <active>
  981 + <colorrole role="WindowText">
  982 + <brush brushstyle="SolidPattern">
  983 + <color alpha="255">
  984 + <red>255</red>
  985 + <green>255</green>
  986 + <blue>255</blue>
  987 + </color>
  988 + </brush>
  989 + </colorrole>
  990 + </active>
  991 + <inactive>
  992 + <colorrole role="WindowText">
  993 + <brush brushstyle="SolidPattern">
  994 + <color alpha="255">
  995 + <red>255</red>
  996 + <green>255</green>
  997 + <blue>255</blue>
  998 + </color>
  999 + </brush>
  1000 + </colorrole>
  1001 + </inactive>
  1002 + <disabled>
  1003 + <colorrole role="WindowText">
  1004 + <brush brushstyle="SolidPattern">
  1005 + <color alpha="255">
  1006 + <red>123</red>
  1007 + <green>123</green>
  1008 + <blue>123</blue>
  1009 + </color>
  1010 + </brush>
  1011 + </colorrole>
  1012 + </disabled>
  1013 + </palette>
  1014 + </property>
  1015 + <property name="font">
  1016 + <font>
  1017 + <family>Malgun Gothic</family>
  1018 + <pointsize>9</pointsize>
  1019 + </font>
  1020 + </property>
  1021 + <property name="text">
  1022 + <string>증가</string>
  1023 + </property>
  1024 + <property name="alignment">
  1025 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  1026 + </property>
  1027 + </widget>
  1028 + <widget class="QLabel" name="configMinLabel_4">
  1029 + <property name="enabled">
  1030 + <bool>true</bool>
  1031 + </property>
  1032 + <property name="geometry">
  1033 + <rect>
  1034 + <x>185</x>
  1035 + <y>1130</y>
  1036 + <width>151</width>
  1037 + <height>51</height>
  1038 + </rect>
  1039 + </property>
  1040 + <property name="palette">
  1041 + <palette>
  1042 + <active>
  1043 + <colorrole role="WindowText">
  1044 + <brush brushstyle="SolidPattern">
  1045 + <color alpha="255">
  1046 + <red>255</red>
  1047 + <green>255</green>
  1048 + <blue>255</blue>
  1049 + </color>
  1050 + </brush>
  1051 + </colorrole>
  1052 + </active>
  1053 + <inactive>
  1054 + <colorrole role="WindowText">
  1055 + <brush brushstyle="SolidPattern">
  1056 + <color alpha="255">
  1057 + <red>255</red>
  1058 + <green>255</green>
  1059 + <blue>255</blue>
  1060 + </color>
  1061 + </brush>
  1062 + </colorrole>
  1063 + </inactive>
  1064 + <disabled>
  1065 + <colorrole role="WindowText">
  1066 + <brush brushstyle="SolidPattern">
  1067 + <color alpha="255">
  1068 + <red>123</red>
  1069 + <green>123</green>
  1070 + <blue>123</blue>
  1071 + </color>
  1072 + </brush>
  1073 + </colorrole>
  1074 + </disabled>
  1075 + </palette>
  1076 + </property>
  1077 + <property name="font">
  1078 + <font>
  1079 + <family>Malgun Gothic</family>
  1080 + <pointsize>9</pointsize>
  1081 + </font>
  1082 + </property>
  1083 + <property name="text">
  1084 + <string>감소</string>
  1085 + </property>
  1086 + <property name="alignment">
  1087 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  1088 + </property>
  1089 + </widget>
  1090 + <widget class="QPushButton" name="configButton_4">
  1091 + <property name="geometry">
  1092 + <rect>
  1093 + <x>49</x>
  1094 + <y>1137</y>
  1095 + <width>96</width>
  1096 + <height>96</height>
  1097 + </rect>
  1098 + </property>
  1099 + <property name="styleSheet">
  1100 + <string notr="true">QPushButton {
  1101 + border-image: url(:/images/images/manual/011_icon_01.png);
  1102 +}
  1103 +
  1104 +QPushButton:pressed {
  1105 + border-image: url(:/images/images/manual/011_icon_01_ov.png);
  1106 +}
  1107 +</string>
  1108 + </property>
  1109 + <property name="text">
  1110 + <string/>
  1111 + </property>
  1112 + </widget>
  1113 + <widget class="QLabel" name="configCurrentLabel_4">
  1114 + <property name="enabled">
  1115 + <bool>true</bool>
  1116 + </property>
  1117 + <property name="geometry">
  1118 + <rect>
  1119 + <x>690</x>
  1120 + <y>1200</y>
  1121 + <width>150</width>
  1122 + <height>51</height>
  1123 + </rect>
  1124 + </property>
  1125 + <property name="palette">
  1126 + <palette>
  1127 + <active>
  1128 + <colorrole role="WindowText">
  1129 + <brush brushstyle="SolidPattern">
  1130 + <color alpha="255">
  1131 + <red>255</red>
  1132 + <green>255</green>
  1133 + <blue>255</blue>
  1134 + </color>
  1135 + </brush>
  1136 + </colorrole>
  1137 + </active>
  1138 + <inactive>
  1139 + <colorrole role="WindowText">
  1140 + <brush brushstyle="SolidPattern">
  1141 + <color alpha="255">
  1142 + <red>255</red>
  1143 + <green>255</green>
  1144 + <blue>255</blue>
  1145 + </color>
  1146 + </brush>
  1147 + </colorrole>
  1148 + </inactive>
  1149 + <disabled>
  1150 + <colorrole role="WindowText">
  1151 + <brush brushstyle="SolidPattern">
  1152 + <color alpha="255">
  1153 + <red>123</red>
  1154 + <green>123</green>
  1155 + <blue>123</blue>
  1156 + </color>
  1157 + </brush>
  1158 + </colorrole>
  1159 + </disabled>
  1160 + </palette>
  1161 + </property>
  1162 + <property name="font">
  1163 + <font>
  1164 + <family>Malgun Gothic</family>
  1165 + <pointsize>11</pointsize>
  1166 + </font>
  1167 + </property>
  1168 + <property name="text">
  1169 + <string>스팀</string>
  1170 + </property>
  1171 + <property name="alignment">
  1172 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  1173 + </property>
  1174 + </widget>
  1175 + <widget class="QWidget" name="configBlock_4" native="true">
  1176 + <property name="geometry">
  1177 + <rect>
  1178 + <x>27</x>
  1179 + <y>1115</y>
  1180 + <width>140</width>
  1181 + <height>140</height>
  1182 + </rect>
  1183 + </property>
  1184 + <property name="styleSheet">
  1185 + <string notr="true">background-image: url(:/images/images/manual/010_icon_block.png);</string>
  1186 + </property>
  1187 + </widget>
  1188 + <widget class="QSlider" name="configSlider_4">
  1189 + <property name="geometry">
  1190 + <rect>
  1191 + <x>185</x>
  1192 + <y>1173</y>
  1193 + <width>666</width>
  1194 + <height>33</height>
  1195 + </rect>
  1196 + </property>
  1197 + <property name="styleSheet">
  1198 + <string notr="true">QSlider::groove {
  1199 +background-image: url(:/images/images/manual/010_gauge_bar_bar.png);
  1200 +height: 25px;
  1201 +margin-bottom: 8px;
  1202 +}
  1203 +
  1204 +QSlider::sub-page {
  1205 +background-image: url(:/images/images/manual/010_gauge_bar_stick_01.png);
  1206 +height: 25px;
  1207 +margin-top: 5px;
  1208 +margin-left: 5px;
  1209 +margin-bottom: 13px;
  1210 +}
  1211 +
  1212 +QSlider::handle {
  1213 +background-image: url(:/images/images/manual/graphe_BTN_Bigsize.png);
  1214 +width: 23px;
  1215 +margin-bottom: -7px;
  1216 +}
  1217 +
  1218 +QSlider {
  1219 +background-image: url(:/images/images/auto/gau_04.png);
  1220 +background-repeat: no-repeat;
  1221 +}
  1222 +</string>
  1223 + </property>
  1224 + <property name="maximum">
  1225 + <number>100</number>
  1226 + </property>
  1227 + <property name="pageStep">
  1228 + <number>1</number>
  1229 + </property>
  1230 + <property name="value">
  1231 + <number>0</number>
  1232 + </property>
  1233 + <property name="tracking">
  1234 + <bool>true</bool>
  1235 + </property>
  1236 + <property name="orientation">
  1237 + <enum>Qt::Horizontal</enum>
  1238 + </property>
  1239 + </widget>
  1240 + <widget class="QLabel" name="configMaxLabel_5">
  1241 + <property name="enabled">
  1242 + <bool>true</bool>
  1243 + </property>
  1244 + <property name="geometry">
  1245 + <rect>
  1246 + <x>700</x>
  1247 + <y>1300</y>
  1248 + <width>151</width>
  1249 + <height>51</height>
  1250 + </rect>
  1251 + </property>
  1252 + <property name="palette">
  1253 + <palette>
  1254 + <active>
  1255 + <colorrole role="WindowText">
  1256 + <brush brushstyle="SolidPattern">
  1257 + <color alpha="255">
  1258 + <red>255</red>
  1259 + <green>255</green>
  1260 + <blue>255</blue>
  1261 + </color>
  1262 + </brush>
  1263 + </colorrole>
  1264 + </active>
  1265 + <inactive>
  1266 + <colorrole role="WindowText">
  1267 + <brush brushstyle="SolidPattern">
  1268 + <color alpha="255">
  1269 + <red>255</red>
  1270 + <green>255</green>
  1271 + <blue>255</blue>
  1272 + </color>
  1273 + </brush>
  1274 + </colorrole>
  1275 + </inactive>
  1276 + <disabled>
  1277 + <colorrole role="WindowText">
  1278 + <brush brushstyle="SolidPattern">
  1279 + <color alpha="255">
  1280 + <red>123</red>
  1281 + <green>123</green>
  1282 + <blue>123</blue>
  1283 + </color>
  1284 + </brush>
  1285 + </colorrole>
  1286 + </disabled>
  1287 + </palette>
  1288 + </property>
  1289 + <property name="font">
  1290 + <font>
  1291 + <family>Malgun Gothic</family>
  1292 + <pointsize>9</pointsize>
  1293 + </font>
  1294 + </property>
  1295 + <property name="text">
  1296 + <string>증가</string>
  1297 + </property>
  1298 + <property name="alignment">
  1299 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  1300 + </property>
  1301 + </widget>
  1302 + <widget class="QLabel" name="configMinLabel_5">
  1303 + <property name="enabled">
  1304 + <bool>true</bool>
  1305 + </property>
  1306 + <property name="geometry">
  1307 + <rect>
  1308 + <x>185</x>
  1309 + <y>1300</y>
  1310 + <width>151</width>
  1311 + <height>51</height>
  1312 + </rect>
  1313 + </property>
  1314 + <property name="palette">
  1315 + <palette>
  1316 + <active>
  1317 + <colorrole role="WindowText">
  1318 + <brush brushstyle="SolidPattern">
  1319 + <color alpha="255">
  1320 + <red>255</red>
  1321 + <green>255</green>
  1322 + <blue>255</blue>
  1323 + </color>
  1324 + </brush>
  1325 + </colorrole>
  1326 + </active>
  1327 + <inactive>
  1328 + <colorrole role="WindowText">
  1329 + <brush brushstyle="SolidPattern">
  1330 + <color alpha="255">
  1331 + <red>255</red>
  1332 + <green>255</green>
  1333 + <blue>255</blue>
  1334 + </color>
  1335 + </brush>
  1336 + </colorrole>
  1337 + </inactive>
  1338 + <disabled>
  1339 + <colorrole role="WindowText">
  1340 + <brush brushstyle="SolidPattern">
  1341 + <color alpha="255">
  1342 + <red>123</red>
  1343 + <green>123</green>
  1344 + <blue>123</blue>
  1345 + </color>
  1346 + </brush>
  1347 + </colorrole>
  1348 + </disabled>
  1349 + </palette>
  1350 + </property>
  1351 + <property name="font">
  1352 + <font>
  1353 + <family>Malgun Gothic</family>
  1354 + <pointsize>9</pointsize>
  1355 + </font>
  1356 + </property>
  1357 + <property name="text">
  1358 + <string>감소</string>
  1359 + </property>
  1360 + <property name="alignment">
  1361 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  1362 + </property>
  1363 + </widget>
  1364 + <widget class="QPushButton" name="configButton_5">
  1365 + <property name="geometry">
  1366 + <rect>
  1367 + <x>49</x>
  1368 + <y>1307</y>
  1369 + <width>96</width>
  1370 + <height>96</height>
  1371 + </rect>
  1372 + </property>
  1373 + <property name="styleSheet">
  1374 + <string notr="true">QPushButton {
  1375 + border-image: url(:/images/images/manual/011_icon_01.png);
  1376 +}
  1377 +
  1378 +QPushButton:pressed {
  1379 + border-image: url(:/images/images/manual/011_icon_01_ov.png);
  1380 +}
  1381 +</string>
  1382 + </property>
  1383 + <property name="text">
  1384 + <string/>
  1385 + </property>
  1386 + </widget>
  1387 + <widget class="QLabel" name="configCurrentLabel_5">
  1388 + <property name="enabled">
  1389 + <bool>true</bool>
  1390 + </property>
  1391 + <property name="geometry">
  1392 + <rect>
  1393 + <x>690</x>
  1394 + <y>1370</y>
  1395 + <width>150</width>
  1396 + <height>51</height>
  1397 + </rect>
  1398 + </property>
  1399 + <property name="palette">
  1400 + <palette>
  1401 + <active>
  1402 + <colorrole role="WindowText">
  1403 + <brush brushstyle="SolidPattern">
  1404 + <color alpha="255">
  1405 + <red>255</red>
  1406 + <green>255</green>
  1407 + <blue>255</blue>
  1408 + </color>
  1409 + </brush>
  1410 + </colorrole>
  1411 + </active>
  1412 + <inactive>
  1413 + <colorrole role="WindowText">
  1414 + <brush brushstyle="SolidPattern">
  1415 + <color alpha="255">
  1416 + <red>255</red>
  1417 + <green>255</green>
  1418 + <blue>255</blue>
  1419 + </color>
  1420 + </brush>
  1421 + </colorrole>
  1422 + </inactive>
  1423 + <disabled>
  1424 + <colorrole role="WindowText">
  1425 + <brush brushstyle="SolidPattern">
  1426 + <color alpha="255">
  1427 + <red>123</red>
  1428 + <green>123</green>
  1429 + <blue>123</blue>
  1430 + </color>
  1431 + </brush>
  1432 + </colorrole>
  1433 + </disabled>
  1434 + </palette>
  1435 + </property>
  1436 + <property name="font">
  1437 + <font>
  1438 + <family>Malgun Gothic</family>
  1439 + <pointsize>11</pointsize>
  1440 + </font>
  1441 + </property>
  1442 + <property name="text">
  1443 + <string>스팀</string>
  1444 + </property>
  1445 + <property name="alignment">
  1446 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  1447 + </property>
  1448 + </widget>
  1449 + <widget class="QWidget" name="configBlock_5" native="true">
  1450 + <property name="geometry">
  1451 + <rect>
  1452 + <x>27</x>
  1453 + <y>1285</y>
  1454 + <width>140</width>
  1455 + <height>140</height>
  1456 + </rect>
  1457 + </property>
  1458 + <property name="styleSheet">
  1459 + <string notr="true">background-image: url(:/images/images/manual/010_icon_block.png);</string>
  1460 + </property>
  1461 + </widget>
  1462 + <widget class="QSlider" name="configSlider_5">
  1463 + <property name="geometry">
  1464 + <rect>
  1465 + <x>185</x>
  1466 + <y>1343</y>
  1467 + <width>666</width>
  1468 + <height>33</height>
  1469 + </rect>
  1470 + </property>
  1471 + <property name="styleSheet">
  1472 + <string notr="true">QSlider::groove {
  1473 +background-image: url(:/images/images/manual/010_gauge_bar_bar.png);
  1474 +height: 25px;
  1475 +margin-bottom: 8px;
  1476 +}
  1477 +
  1478 +QSlider::sub-page {
  1479 +background-image: url(:/images/images/manual/010_gauge_bar_stick_01.png);
  1480 +height: 25px;
  1481 +margin-top: 5px;
  1482 +margin-left: 5px;
  1483 +margin-bottom: 13px;
  1484 +}
  1485 +
  1486 +QSlider::handle {
  1487 +background-image: url(:/images/images/manual/graphe_BTN_Bigsize.png);
  1488 +width: 23px;
  1489 +margin-bottom: -7px;
  1490 +}
  1491 +
  1492 +QSlider {
  1493 +background-image: url(:/images/images/auto/gau_04.png);
  1494 +background-repeat: no-repeat;
  1495 +}
  1496 +</string>
  1497 + </property>
  1498 + <property name="maximum">
  1499 + <number>100</number>
  1500 + </property>
  1501 + <property name="pageStep">
  1502 + <number>1</number>
  1503 + </property>
  1504 + <property name="value">
  1505 + <number>0</number>
  1506 + </property>
  1507 + <property name="tracking">
  1508 + <bool>true</bool>
  1509 + </property>
  1510 + <property name="orientation">
  1511 + <enum>Qt::Horizontal</enum>
  1512 + </property>
  1513 + </widget>
  1514 + <zorder>configBlock_5</zorder>
  1515 + <zorder>configBlock_4</zorder>
  1516 + <zorder>configBlock_3</zorder>
  1517 + <zorder>configBlock_2</zorder>
  1518 + <zorder>cookTypeIcon_1</zorder>
  1519 + <zorder>selectCookButton_1</zorder>
  1520 + <zorder>pushButton_4</zorder>
  1521 + <zorder>configSlider_1</zorder>
  1522 + <zorder>configCurrentLabel_1</zorder>
  1523 + <zorder>configBlock_1</zorder>
  1524 + <zorder>configMinLabel_1</zorder>
  1525 + <zorder>configButton_1</zorder>
  1526 + <zorder>configMaxLabel_1</zorder>
  1527 + <zorder>configMaxLabel_2</zorder>
  1528 + <zorder>configMinLabel_2</zorder>
  1529 + <zorder>configButton_2</zorder>
  1530 + <zorder>configCurrentLabel_2</zorder>
  1531 + <zorder>configSlider_2</zorder>
  1532 + <zorder>configMaxLabel_3</zorder>
  1533 + <zorder>configMinLabel_3</zorder>
  1534 + <zorder>configButton_3</zorder>
  1535 + <zorder>configCurrentLabel_3</zorder>
  1536 + <zorder>configSlider_3</zorder>
  1537 + <zorder>configMaxLabel_4</zorder>
  1538 + <zorder>configMinLabel_4</zorder>
  1539 + <zorder>configButton_4</zorder>
  1540 + <zorder>configCurrentLabel_4</zorder>
  1541 + <zorder>configSlider_4</zorder>
  1542 + <zorder>configMaxLabel_5</zorder>
  1543 + <zorder>configMinLabel_5</zorder>
  1544 + <zorder>configButton_5</zorder>
  1545 + <zorder>configCurrentLabel_5</zorder>
  1546 + <zorder>configSlider_5</zorder>
  1547 + </widget>
  1548 + <widget class="QWidget" name="cookPage">
  1549 + <property name="styleSheet">
  1550 + <string notr="true">QWidget#cookPage {
  1551 +background-image: url(:/images/images/auto/ba_ground_set(full));
  1552 +}</string>
  1553 + </property>
  1554 + <widget class="QPushButton" name="configCookButton">
  1555 + <property name="geometry">
  1556 + <rect>
  1557 + <x>720</x>
  1558 + <y>480</y>
  1559 + <width>152</width>
  1560 + <height>70</height>
  1561 + </rect>
  1562 + </property>
  1563 + <property name="styleSheet">
  1564 + <string notr="true">QPushButton {
  1565 +border-image: url(:/images/images/auto/btn_02.png);
  1566 +}
  1567 +QPushButton::pressed {
  1568 +border-image: url(:/images/images/auto/btn_02_ov.png);
  1569 +}</string>
  1570 + </property>
  1571 + <property name="text">
  1572 + <string/>
  1573 + </property>
  1574 + <property name="icon">
  1575 + <iconset resource="resources.qrc">
  1576 + <normaloff>:/images/images/auto/btn_icon_03.png</normaloff>:/images/images/auto/btn_icon_03.png</iconset>
  1577 + </property>
  1578 + <property name="iconSize">
  1579 + <size>
  1580 + <width>38</width>
  1581 + <height>37</height>
  1582 + </size>
  1583 + </property>
  1584 + </widget>
  1585 + <widget class="QPushButton" name="autoCookButton">
  1586 + <property name="geometry">
  1587 + <rect>
  1588 + <x>559</x>
  1589 + <y>480</y>
  1590 + <width>152</width>
  1591 + <height>70</height>
  1592 + </rect>
  1593 + </property>
  1594 + <property name="styleSheet">
  1595 + <string notr="true">QPushButton {
  1596 +border-image: url(:/images/images/auto/btn_02.png);
  1597 +}
  1598 +QPushButton::pressed {
  1599 +border-image: url(:/images/images/auto/btn_02_ov.png);
  1600 +}</string>
  1601 + </property>
  1602 + <property name="text">
  1603 + <string/>
  1604 + </property>
  1605 + <property name="icon">
  1606 + <iconset resource="resources.qrc">
  1607 + <normaloff>:/images/images/auto/btn_icon_02.png</normaloff>:/images/images/auto/btn_icon_02.png</iconset>
  1608 + </property>
  1609 + <property name="iconSize">
  1610 + <size>
  1611 + <width>40</width>
  1612 + <height>51</height>
  1613 + </size>
  1614 + </property>
  1615 + </widget>
  1616 + <widget class="QPushButton" name="selectCookButton_2">
  1617 + <property name="geometry">
  1618 + <rect>
  1619 + <x>259</x>
  1620 + <y>480</y>
  1621 + <width>288</width>
  1622 + <height>70</height>
  1623 + </rect>
  1624 + </property>
  1625 + <property name="font">
  1626 + <font>
  1627 + <family>Roboto</family>
  1628 + <pointsize>10</pointsize>
  1629 + <weight>75</weight>
  1630 + <bold>true</bold>
  1631 + </font>
  1632 + </property>
  1633 + <property name="styleSheet">
  1634 + <string notr="true">QPushButton {
  1635 +border-image: url(:/images/images/auto/btn_01.png);
  1636 +}
  1637 +QPushButton::pressed {
  1638 +border-image: url(:/images/images/auto/btn_01_ov.png);
  1639 +}</string>
  1640 + </property>
  1641 + <property name="text">
  1642 + <string/>
  1643 + </property>
  1644 + </widget>
  1645 + <widget class="QLabel" name="cookTypeIcon_2">
  1646 + <property name="geometry">
  1647 + <rect>
  1648 + <x>0</x>
  1649 + <y>430</y>
  1650 + <width>250</width>
  1651 + <height>150</height>
  1652 + </rect>
  1653 + </property>
  1654 + <property name="text">
  1655 + <string/>
  1656 + </property>
  1657 + <property name="pixmap">
  1658 + <pixmap resource="resources.qrc">:/images/images/auto/005_auto_icon_01_ov.png</pixmap>
  1659 + </property>
  1660 + <property name="alignment">
  1661 + <set>Qt::AlignCenter</set>
  1662 + </property>
  1663 + </widget>
  1664 + <widget class="QPushButton" name="showPrevStepButton">
  1665 + <property name="geometry">
  1666 + <rect>
  1667 + <x>20</x>
  1668 + <y>860</y>
  1669 + <width>38</width>
  1670 + <height>60</height>
  1671 + </rect>
  1672 + </property>
  1673 + <property name="styleSheet">
  1674 + <string notr="true">QPushButton {
  1675 +border-image: url(:/images/images/auto/time_window_02.png);
  1676 +}
  1677 +QPushButton::pressed {
  1678 +border-image: url(:/images/images/auto/window_arrow_01_expand.png);
  1679 +}</string>
  1680 + </property>
  1681 + <property name="text">
  1682 + <string/>
  1683 + </property>
  1684 + </widget>
  1685 + <widget class="QPushButton" name="showNextStepButton">
  1686 + <property name="geometry">
  1687 + <rect>
  1688 + <x>840</x>
  1689 + <y>850</y>
  1690 + <width>38</width>
  1691 + <height>60</height>
  1692 + </rect>
  1693 + </property>
  1694 + <property name="styleSheet">
  1695 + <string notr="true">QPushButton {
  1696 +border-image: url(:/images/images/auto/time_window_03.png);
  1697 +}
  1698 +QPushButton::pressed {
  1699 +border-image: url(:/images/images/auto/window_arrow_02_expand.png);
  1700 +}</string>
  1701 + </property>
  1702 + <property name="text">
  1703 + <string/>
  1704 + </property>
  1705 + </widget>
  1706 + <widget class="QLabel" name="label_3">
  1707 + <property name="geometry">
  1708 + <rect>
  1709 + <x>130</x>
  1710 + <y>600</y>
  1711 + <width>100</width>
  1712 + <height>100</height>
  1713 + </rect>
  1714 + </property>
  1715 + <property name="text">
  1716 + <string/>
  1717 + </property>
  1718 + <property name="pixmap">
  1719 + <pixmap resource="resources.qrc">:/images/images/auto/window_icon_01.png</pixmap>
  1720 + </property>
  1721 + <property name="alignment">
  1722 + <set>Qt::AlignCenter</set>
  1723 + </property>
  1724 + </widget>
  1725 + <widget class="QLabel" name="label_4">
  1726 + <property name="geometry">
  1727 + <rect>
  1728 + <x>460</x>
  1729 + <y>600</y>
  1730 + <width>100</width>
  1731 + <height>100</height>
  1732 + </rect>
  1733 + </property>
  1734 + <property name="text">
  1735 + <string/>
  1736 + </property>
  1737 + <property name="pixmap">
  1738 + <pixmap resource="resources.qrc">:/images/images/auto/window_icon_02.png</pixmap>
  1739 + </property>
  1740 + <property name="alignment">
  1741 + <set>Qt::AlignCenter</set>
  1742 + </property>
  1743 + </widget>
  1744 + <widget class="QPushButton" name="infoButton">
  1745 + <property name="geometry">
  1746 + <rect>
  1747 + <x>730</x>
  1748 + <y>730</y>
  1749 + <width>63</width>
  1750 + <height>63</height>
  1751 + </rect>
  1752 + </property>
  1753 + <property name="styleSheet">
  1754 + <string notr="true">QPushButton {
  1755 +border-image: url(:/images/images/auto/window_icon_03.png);
  1756 +}
  1757 +QPushButton::pressed {
  1758 +border-image: url(:/images/images/auto/window_icon_03_ov.png);
  1759 +}</string>
  1760 + </property>
  1761 + <property name="text">
  1762 + <string/>
  1763 + </property>
  1764 + </widget>
  1765 + <widget class="QLabel" name="cookStepIcon">
  1766 + <property name="geometry">
  1767 + <rect>
  1768 + <x>80</x>
  1769 + <y>710</y>
  1770 + <width>100</width>
  1771 + <height>100</height>
  1772 + </rect>
  1773 + </property>
  1774 + <property name="palette">
  1775 + <palette>
  1776 + <active>
  1777 + <colorrole role="WindowText">
  1778 + <brush brushstyle="SolidPattern">
  1779 + <color alpha="255">
  1780 + <red>255</red>
  1781 + <green>255</green>
  1782 + <blue>255</blue>
  1783 + </color>
  1784 + </brush>
  1785 + </colorrole>
  1786 + </active>
  1787 + <inactive>
  1788 + <colorrole role="WindowText">
  1789 + <brush brushstyle="SolidPattern">
  1790 + <color alpha="255">
  1791 + <red>255</red>
  1792 + <green>255</green>
  1793 + <blue>255</blue>
  1794 + </color>
  1795 + </brush>
  1796 + </colorrole>
  1797 + </inactive>
  1798 + <disabled>
  1799 + <colorrole role="WindowText">
  1800 + <brush brushstyle="SolidPattern">
  1801 + <color alpha="255">
  1802 + <red>123</red>
  1803 + <green>123</green>
  1804 + <blue>123</blue>
  1805 + </color>
  1806 + </brush>
  1807 + </colorrole>
  1808 + </disabled>
  1809 + </palette>
  1810 + </property>
  1811 + <property name="font">
  1812 + <font>
  1813 + <family>Malgun Gothic</family>
  1814 + <pointsize>14</pointsize>
  1815 + </font>
  1816 + </property>
  1817 + <property name="text">
  1818 + <string/>
  1819 + </property>
  1820 + <property name="pixmap">
  1821 + <pixmap resource="resources.qrc">:/images/images/auto/sys_icon_05.png</pixmap>
  1822 + </property>
  1823 + <property name="alignment">
  1824 + <set>Qt::AlignCenter</set>
  1825 + </property>
  1826 + </widget>
  1827 + <widget class="QLabel" name="cookStepLabel">
  1828 + <property name="geometry">
  1829 + <rect>
  1830 + <x>180</x>
  1831 + <y>710</y>
  1832 + <width>541</width>
  1833 + <height>100</height>
  1834 + </rect>
  1835 + </property>
  1836 + <property name="palette">
  1837 + <palette>
  1838 + <active>
  1839 + <colorrole role="WindowText">
  1840 + <brush brushstyle="SolidPattern">
  1841 + <color alpha="255">
  1842 + <red>255</red>
  1843 + <green>255</green>
  1844 + <blue>255</blue>
  1845 + </color>
  1846 + </brush>
  1847 + </colorrole>
  1848 + </active>
  1849 + <inactive>
  1850 + <colorrole role="WindowText">
  1851 + <brush brushstyle="SolidPattern">
  1852 + <color alpha="255">
  1853 + <red>255</red>
  1854 + <green>255</green>
  1855 + <blue>255</blue>
  1856 + </color>
  1857 + </brush>
  1858 + </colorrole>
  1859 + </inactive>
  1860 + <disabled>
  1861 + <colorrole role="WindowText">
  1862 + <brush brushstyle="SolidPattern">
  1863 + <color alpha="255">
  1864 + <red>123</red>
  1865 + <green>123</green>
  1866 + <blue>123</blue>
  1867 + </color>
  1868 + </brush>
  1869 + </colorrole>
  1870 + </disabled>
  1871 + </palette>
  1872 + </property>
  1873 + <property name="font">
  1874 + <font>
  1875 + <family>Malgun Gothic</family>
  1876 + <pointsize>14</pointsize>
  1877 + </font>
  1878 + </property>
  1879 + <property name="text">
  1880 + <string>Preheat</string>
  1881 + </property>
  1882 + </widget>
  1883 + <widget class="QLabel" name="cookModeIcon">
  1884 + <property name="geometry">
  1885 + <rect>
  1886 + <x>80</x>
  1887 + <y>1020</y>
  1888 + <width>741</width>
  1889 + <height>81</height>
  1890 + </rect>
  1891 + </property>
  1892 + <property name="text">
  1893 + <string/>
  1894 + </property>
  1895 + <property name="pixmap">
  1896 + <pixmap resource="resources.qrc">:/images/images/auto/window_icon_06.png</pixmap>
  1897 + </property>
  1898 + <property name="alignment">
  1899 + <set>Qt::AlignCenter</set>
  1900 + </property>
  1901 + </widget>
  1902 + <widget class="AnimatedImageBox" name="animation">
  1903 + <property name="geometry">
  1904 + <rect>
  1905 + <x>40</x>
  1906 + <y>1220</y>
  1907 + <width>251</width>
  1908 + <height>201</height>
  1909 + </rect>
  1910 + </property>
  1911 + <property name="text">
  1912 + <string>TextLabel</string>
  1913 + </property>
  1914 + </widget>
  1915 + <widget class="HumidityCircularGauge" name="humidityGauge" native="true">
  1916 + <property name="geometry">
  1917 + <rect>
  1918 + <x>100</x>
  1919 + <y>810</y>
  1920 + <width>291</width>
  1921 + <height>290</height>
  1922 + </rect>
  1923 + </property>
  1924 + <property name="palette">
  1925 + <palette>
  1926 + <active>
  1927 + <colorrole role="WindowText">
  1928 + <brush brushstyle="SolidPattern">
  1929 + <color alpha="255">
  1930 + <red>255</red>
  1931 + <green>255</green>
  1932 + <blue>255</blue>
  1933 + </color>
  1934 + </brush>
  1935 + </colorrole>
  1936 + </active>
  1937 + <inactive>
  1938 + <colorrole role="WindowText">
  1939 + <brush brushstyle="SolidPattern">
  1940 + <color alpha="255">
  1941 + <red>255</red>
  1942 + <green>255</green>
  1943 + <blue>255</blue>
  1944 + </color>
  1945 + </brush>
  1946 + </colorrole>
  1947 + </inactive>
  1948 + <disabled>
  1949 + <colorrole role="WindowText">
  1950 + <brush brushstyle="SolidPattern">
  1951 + <color alpha="255">
  1952 + <red>123</red>
  1953 + <green>123</green>
  1954 + <blue>123</blue>
  1955 + </color>
  1956 + </brush>
  1957 + </colorrole>
  1958 + </disabled>
  1959 + </palette>
  1960 + </property>
  1961 + </widget>
  1962 + <widget class="HeatCircularGauge" name="heatGauge" native="true">
  1963 + <property name="geometry">
  1964 + <rect>
  1965 + <x>510</x>
  1966 + <y>810</y>
  1967 + <width>291</width>
  1968 + <height>290</height>
  1969 + </rect>
  1970 + </property>
  1971 + <property name="palette">
  1972 + <palette>
  1973 + <active>
  1974 + <colorrole role="WindowText">
  1975 + <brush brushstyle="SolidPattern">
  1976 + <color alpha="255">
  1977 + <red>255</red>
  1978 + <green>255</green>
  1979 + <blue>255</blue>
  1980 + </color>
  1981 + </brush>
  1982 + </colorrole>
  1983 + </active>
  1984 + <inactive>
  1985 + <colorrole role="WindowText">
  1986 + <brush brushstyle="SolidPattern">
  1987 + <color alpha="255">
  1988 + <red>255</red>
  1989 + <green>255</green>
  1990 + <blue>255</blue>
  1991 + </color>
  1992 + </brush>
  1993 + </colorrole>
  1994 + </inactive>
  1995 + <disabled>
  1996 + <colorrole role="WindowText">
  1997 + <brush brushstyle="SolidPattern">
  1998 + <color alpha="255">
  1999 + <red>123</red>
  2000 + <green>123</green>
  2001 + <blue>123</blue>
  2002 + </color>
  2003 + </brush>
  2004 + </colorrole>
  2005 + </disabled>
  2006 + </palette>
  2007 + </property>
  2008 + </widget>
  2009 + <widget class="AnimatedImageBox" name="cookStepAnimation">
  2010 + <property name="geometry">
  2011 + <rect>
  2012 + <x>340</x>
  2013 + <y>800</y>
  2014 + <width>231</width>
  2015 + <height>281</height>
  2016 + </rect>
  2017 + </property>
  2018 + <property name="text">
  2019 + <string/>
  2020 + </property>
  2021 + </widget>
  2022 + <widget class="QLabel" name="humidityLabel">
  2023 + <property name="geometry">
  2024 + <rect>
  2025 + <x>90</x>
  2026 + <y>960</y>
  2027 + <width>321</width>
  2028 + <height>100</height>
  2029 + </rect>
  2030 + </property>
  2031 + <property name="palette">
  2032 + <palette>
  2033 + <active>
  2034 + <colorrole role="WindowText">
  2035 + <brush brushstyle="SolidPattern">
  2036 + <color alpha="255">
  2037 + <red>255</red>
  2038 + <green>255</green>
  2039 + <blue>255</blue>
  2040 + </color>
  2041 + </brush>
  2042 + </colorrole>
  2043 + </active>
  2044 + <inactive>
  2045 + <colorrole role="WindowText">
  2046 + <brush brushstyle="SolidPattern">
  2047 + <color alpha="255">
  2048 + <red>255</red>
  2049 + <green>255</green>
  2050 + <blue>255</blue>
  2051 + </color>
  2052 + </brush>
  2053 + </colorrole>
  2054 + </inactive>
  2055 + <disabled>
  2056 + <colorrole role="WindowText">
  2057 + <brush brushstyle="SolidPattern">
  2058 + <color alpha="255">
  2059 + <red>123</red>
  2060 + <green>123</green>
  2061 + <blue>123</blue>
  2062 + </color>
  2063 + </brush>
  2064 + </colorrole>
  2065 + </disabled>
  2066 + </palette>
  2067 + </property>
  2068 + <property name="font">
  2069 + <font>
  2070 + <family>Malgun Gothic</family>
  2071 + <pointsize>14</pointsize>
  2072 + </font>
  2073 + </property>
  2074 + <property name="text">
  2075 + <string>10</string>
  2076 + </property>
  2077 + <property name="alignment">
  2078 + <set>Qt::AlignCenter</set>
  2079 + </property>
  2080 + </widget>
  2081 + <widget class="QLabel" name="heatLabel">
  2082 + <property name="geometry">
  2083 + <rect>
  2084 + <x>490</x>
  2085 + <y>960</y>
  2086 + <width>321</width>
  2087 + <height>100</height>
  2088 + </rect>
  2089 + </property>
  2090 + <property name="palette">
  2091 + <palette>
  2092 + <active>
  2093 + <colorrole role="WindowText">
  2094 + <brush brushstyle="SolidPattern">
  2095 + <color alpha="255">
  2096 + <red>255</red>
  2097 + <green>255</green>
  2098 + <blue>255</blue>
  2099 + </color>
  2100 + </brush>
  2101 + </colorrole>
  2102 + </active>
  2103 + <inactive>
  2104 + <colorrole role="WindowText">
  2105 + <brush brushstyle="SolidPattern">
  2106 + <color alpha="255">
  2107 + <red>255</red>
  2108 + <green>255</green>
  2109 + <blue>255</blue>
  2110 + </color>
  2111 + </brush>
  2112 + </colorrole>
  2113 + </inactive>
  2114 + <disabled>
  2115 + <colorrole role="WindowText">
  2116 + <brush brushstyle="SolidPattern">
  2117 + <color alpha="255">
  2118 + <red>123</red>
  2119 + <green>123</green>
  2120 + <blue>123</blue>
  2121 + </color>
  2122 + </brush>
  2123 + </colorrole>
  2124 + </disabled>
  2125 + </palette>
  2126 + </property>
  2127 + <property name="font">
  2128 + <font>
  2129 + <family>Malgun Gothic</family>
  2130 + <pointsize>14</pointsize>
  2131 + </font>
  2132 + </property>
  2133 + <property name="text">
  2134 + <string>10</string>
  2135 + </property>
  2136 + <property name="alignment">
  2137 + <set>Qt::AlignCenter</set>
  2138 + </property>
  2139 + </widget>
  2140 + <widget class="QLabel" name="timeLabel">
  2141 + <property name="geometry">
  2142 + <rect>
  2143 + <x>230</x>
  2144 + <y>600</y>
  2145 + <width>231</width>
  2146 + <height>100</height>
  2147 + </rect>
  2148 + </property>
  2149 + <property name="palette">
  2150 + <palette>
  2151 + <active>
  2152 + <colorrole role="WindowText">
  2153 + <brush brushstyle="SolidPattern">
  2154 + <color alpha="255">
  2155 + <red>255</red>
  2156 + <green>255</green>
  2157 + <blue>255</blue>
  2158 + </color>
  2159 + </brush>
  2160 + </colorrole>
  2161 + </active>
  2162 + <inactive>
  2163 + <colorrole role="WindowText">
  2164 + <brush brushstyle="SolidPattern">
  2165 + <color alpha="255">
  2166 + <red>255</red>
  2167 + <green>255</green>
  2168 + <blue>255</blue>
  2169 + </color>
  2170 + </brush>
  2171 + </colorrole>
  2172 + </inactive>
  2173 + <disabled>
  2174 + <colorrole role="WindowText">
  2175 + <brush brushstyle="SolidPattern">
  2176 + <color alpha="255">
  2177 + <red>123</red>
  2178 + <green>123</green>
  2179 + <blue>123</blue>
  2180 + </color>
  2181 + </brush>
  2182 + </colorrole>
  2183 + </disabled>
  2184 + </palette>
  2185 + </property>
  2186 + <property name="font">
  2187 + <font>
  2188 + <family>Malgun Gothic</family>
  2189 + <pointsize>14</pointsize>
  2190 + <weight>75</weight>
  2191 + <bold>true</bold>
  2192 + </font>
  2193 + </property>
  2194 + <property name="text">
  2195 + <string>00:00</string>
  2196 + </property>
  2197 + </widget>
  2198 + <widget class="QLabel" name="interTempLabel">
  2199 + <property name="geometry">
  2200 + <rect>
  2201 + <x>560</x>
  2202 + <y>600</y>
  2203 + <width>231</width>
  2204 + <height>100</height>
  2205 + </rect>
  2206 + </property>
  2207 + <property name="palette">
  2208 + <palette>
  2209 + <active>
  2210 + <colorrole role="WindowText">
  2211 + <brush brushstyle="SolidPattern">
  2212 + <color alpha="255">
  2213 + <red>255</red>
  2214 + <green>255</green>
  2215 + <blue>255</blue>
  2216 + </color>
  2217 + </brush>
  2218 + </colorrole>
  2219 + </active>
  2220 + <inactive>
  2221 + <colorrole role="WindowText">
  2222 + <brush brushstyle="SolidPattern">
  2223 + <color alpha="255">
  2224 + <red>255</red>
  2225 + <green>255</green>
  2226 + <blue>255</blue>
  2227 + </color>
  2228 + </brush>
  2229 + </colorrole>
  2230 + </inactive>
  2231 + <disabled>
  2232 + <colorrole role="WindowText">
  2233 + <brush brushstyle="SolidPattern">
  2234 + <color alpha="255">
  2235 + <red>123</red>
  2236 + <green>123</green>
  2237 + <blue>123</blue>
  2238 + </color>
  2239 + </brush>
  2240 + </colorrole>
  2241 + </disabled>
  2242 + </palette>
  2243 + </property>
  2244 + <property name="font">
  2245 + <font>
  2246 + <family>Malgun Gothic</family>
  2247 + <pointsize>14</pointsize>
  2248 + <weight>75</weight>
  2249 + <bold>true</bold>
  2250 + </font>
  2251 + </property>
  2252 + <property name="text">
  2253 + <string>000/000</string>
  2254 + </property>
  2255 + </widget>
  2256 + <widget class="QLabel" name="doorStepLabel">
  2257 + <property name="geometry">
  2258 + <rect>
  2259 + <x>110</x>
  2260 + <y>710</y>
  2261 + <width>541</width>
  2262 + <height>100</height>
  2263 + </rect>
  2264 + </property>
  2265 + <property name="palette">
  2266 + <palette>
  2267 + <active>
  2268 + <colorrole role="WindowText">
  2269 + <brush brushstyle="SolidPattern">
  2270 + <color alpha="255">
  2271 + <red>255</red>
  2272 + <green>255</green>
  2273 + <blue>255</blue>
  2274 + </color>
  2275 + </brush>
  2276 + </colorrole>
  2277 + </active>
  2278 + <inactive>
  2279 + <colorrole role="WindowText">
  2280 + <brush brushstyle="SolidPattern">
  2281 + <color alpha="255">
  2282 + <red>255</red>
  2283 + <green>255</green>
  2284 + <blue>255</blue>
  2285 + </color>
  2286 + </brush>
  2287 + </colorrole>
  2288 + </inactive>
  2289 + <disabled>
  2290 + <colorrole role="WindowText">
  2291 + <brush brushstyle="SolidPattern">
  2292 + <color alpha="255">
  2293 + <red>123</red>
  2294 + <green>123</green>
  2295 + <blue>123</blue>
  2296 + </color>
  2297 + </brush>
  2298 + </colorrole>
  2299 + </disabled>
  2300 + </palette>
  2301 + </property>
  2302 + <property name="font">
  2303 + <font>
  2304 + <family>Malgun Gothic</family>
  2305 + <pointsize>14</pointsize>
  2306 + </font>
  2307 + </property>
  2308 + <property name="text">
  2309 + <string>Preheat</string>
  2310 + </property>
  2311 + </widget>
  2312 + <widget class="QPushButton" name="humidityGaugeButton">
  2313 + <property name="geometry">
  2314 + <rect>
  2315 + <x>100</x>
  2316 + <y>810</y>
  2317 + <width>291</width>
  2318 + <height>290</height>
  2319 + </rect>
  2320 + </property>
  2321 + <property name="styleSheet">
  2322 + <string notr="true">border: #000000</string>
  2323 + </property>
  2324 + <property name="text">
  2325 + <string/>
  2326 + </property>
  2327 + </widget>
  2328 + <widget class="QPushButton" name="heatGaugeButton">
  2329 + <property name="geometry">
  2330 + <rect>
  2331 + <x>510</x>
  2332 + <y>810</y>
  2333 + <width>291</width>
  2334 + <height>290</height>
  2335 + </rect>
  2336 + </property>
  2337 + <property name="styleSheet">
  2338 + <string notr="true">border: #000000</string>
  2339 + </property>
  2340 + <property name="text">
  2341 + <string/>
  2342 + </property>
  2343 + </widget>
  2344 + </widget>
  2345 + <widget class="QWidget" name="selectionPage">
  2346 + <property name="styleSheet">
  2347 + <string notr="true">QWidget#selectionPage {
  2348 +background-image: url(:/images/images/auto/ba_ground_set);
  2349 +}</string>
  2350 + </property>
  2351 + </widget>
  2352 + </widget>
  2353 + <widget class="QWidget" name="bottomBar" native="true">
  2354 + <property name="geometry">
  2355 + <rect>
  2356 + <x>0</x>
  2357 + <y>1450</y>
  2358 + <width>900</width>
  2359 + <height>150</height>
  2360 + </rect>
  2361 + </property>
  2362 + <property name="styleSheet">
  2363 + <string notr="true">QWidget#bottomBar {
  2364 +background-image: url(:/images/images/config_service/001_01_background_under_down.png);
  2365 +}</string>
  2366 + </property>
  2367 + <widget class="QPushButton" name="backButton">
  2368 + <property name="geometry">
  2369 + <rect>
  2370 + <x>401</x>
  2371 + <y>26</y>
  2372 + <width>97</width>
  2373 + <height>97</height>
  2374 + </rect>
  2375 + </property>
  2376 + <property name="sizePolicy">
  2377 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  2378 + <horstretch>0</horstretch>
  2379 + <verstretch>0</verstretch>
  2380 + </sizepolicy>
  2381 + </property>
  2382 + <property name="styleSheet">
  2383 + <string notr="true">QPushButton { border-image: url(:/images/images/config_service/006_sys_icon_03.png); }
  2384 +QPushButton:pressed { border-image: url(:/images/images/config_service/006_sys_icon_03_ov.png); }</string>
  2385 + </property>
  2386 + <property name="text">
  2387 + <string/>
  2388 + </property>
  2389 + </widget>
  2390 + </widget>
  2391 + <zorder>stackedWidget</zorder>
  2392 + <zorder>upperStack</zorder>
  2393 + <zorder>bottomBar</zorder>
  2394 + </widget>
  2395 + </widget>
  2396 + <customwidgets>
  2397 + <customwidget>
  2398 + <class>Clock</class>
  2399 + <extends>QWidget</extends>
  2400 + <header>clock.h</header>
  2401 + <container>1</container>
  2402 + </customwidget>
  2403 + <customwidget>
  2404 + <class>AnimatedImageBox</class>
  2405 + <extends>QLabel</extends>
  2406 + <header>animatedimagebox.h</header>
  2407 + </customwidget>
  2408 + <customwidget>
  2409 + <class>HumidityCircularGauge</class>
  2410 + <extends>QWidget</extends>
  2411 + <header>humiditycirculargauge.h</header>
  2412 + <container>1</container>
  2413 + </customwidget>
  2414 + <customwidget>
  2415 + <class>HeatCircularGauge</class>
  2416 + <extends>QWidget</extends>
  2417 + <header>heatcirculargauge.h</header>
  2418 + <container>1</container>
  2419 + </customwidget>
  2420 + </customwidgets>
  2421 + <resources>
  2422 + <include location="resources.qrc"/>
  2423 + </resources>
  2424 + <connections/>
  2425 +</ui>
... ...
app/gui/oven_control/circulargauge.cpp
... ... @@ -0,0 +1,85 @@
  1 +#include "circulargauge.h"
  2 +
  3 +#include <QPainter>
  4 +#include <QtDebug>
  5 +
  6 +CircularGauge::CircularGauge(QWidget *parent) : QWidget(parent),
  7 + value(30), maximum(40), minimum(0)
  8 +{
  9 + background.load(":/images/images/auto/circle_graphe_01.png");
  10 +}
  11 +
  12 +void CircularGauge::setValue(int value)
  13 +{
  14 + value = qBound(minimum, value, maximum);
  15 + if (this->value != value)
  16 + {
  17 + this->value = value;
  18 + update();
  19 + }
  20 +}
  21 +
  22 +void CircularGauge::setMaximum(int maximum)
  23 +{
  24 + maximum = qMax(minimum, maximum);
  25 + if (this->maximum != maximum)
  26 + {
  27 + this->maximum = maximum;
  28 + update();
  29 + }
  30 +}
  31 +
  32 +void CircularGauge::setMinimum(int minimum)
  33 +{
  34 + minimum = qMin(minimum, maximum);
  35 + if (this->minimum != minimum)
  36 + {
  37 + this->minimum = minimum;
  38 + update();
  39 + }
  40 +}
  41 +
  42 +void CircularGauge::paintEvent(QPaintEvent */*event*/)
  43 +{
  44 + QPainter painter(this);
  45 + painter.setRenderHint(QPainter::Antialiasing);
  46 + painter.drawImage(0, 0, background);
  47 +
  48 + painter.save();
  49 +
  50 + QRect rect((291-283)/2, (290-282)/2, 283, 282);
  51 +
  52 + qreal degree = (qreal) qMax(value - minimum, 0) / qMax(maximum - minimum, 1) * 345;
  53 +
  54 + QBrush barBrush(bar);
  55 + barBrush.setTransform(QTransform().translate(4, 3));
  56 +
  57 + painter.setPen(Qt::NoPen);
  58 + painter.setBrush(barBrush);
  59 + painter.drawPie(rect, 5760 / 4 - 10 * 16, (int) (degree * 16) + 10 * 16 );
  60 +
  61 + painter.restore();
  62 + painter.save();
  63 +
  64 + rect = QRect((291-25)/2 + 2, 2, indicator.size().width() - 2, indicator.size().height() - 2);
  65 + rect.translate(-size().width() / 2, -size().height() / 2);
  66 +
  67 + painter.translate(size().width() / 2, size().height() / 2);
  68 + painter.rotate(-degree);
  69 +
  70 + painter.drawImage(rect, indicator);
  71 +
  72 + painter.restore();
  73 +
  74 + QPen white(Qt::white);
  75 + white.setWidth(3);
  76 +
  77 + painter.setPen(white);
  78 + painter.drawLine(54, 167, 238, 167);
  79 +
  80 + rect.setSize(icon.size());
  81 + rect.moveCenter(QPoint(291/2, 290/3 + 15));
  82 +
  83 + painter.drawImage(rect, icon);
  84 +}
  85 +
... ...
app/gui/oven_control/circulargauge.h
... ... @@ -0,0 +1,35 @@
  1 +#ifndef CIRCULARGAUGE_H
  2 +#define CIRCULARGAUGE_H
  3 +
  4 +#include <QWidget>
  5 +#include <QLabel>
  6 +
  7 +class CircularGauge : public QWidget
  8 +{
  9 + Q_OBJECT
  10 +public:
  11 + explicit CircularGauge(QWidget *parent = 0);
  12 +
  13 +signals:
  14 +
  15 +public slots:
  16 + void setValue(int value);
  17 + void setMaximum(int maximum);
  18 + void setMinimum(int minimum);
  19 +
  20 +protected:
  21 + QImage background;
  22 + QImage bar;
  23 + QImage indicator;
  24 + QImage icon;
  25 + QImage line;
  26 +
  27 + void paintEvent(QPaintEvent *event);
  28 +
  29 +private:
  30 + int value;
  31 + int maximum;
  32 + int minimum;
  33 +};
  34 +
  35 +#endif // CIRCULARGAUGE_H
... ...
app/gui/oven_control/cook.cpp
1 1 #include "cook.h"
2 2  
  3 +#include <QtCore>
  4 +#include <QtDebug>
  5 +
3 6 #include <cmath>
4 7  
5   -Cook::Cook(QObject *parent) : QObject(parent)
  8 +AbstractCook::~AbstractCook()
  9 +{
  10 + for (int idx = 0; idx < 5; idx++)
  11 + if (configurations[idx] != NULL)
  12 + {
  13 + delete configurations[idx];
  14 + configurations[idx] = NULL;
  15 + }
  16 +}
  17 +
  18 +Cook::CookType AbstractCook::type()
  19 +{
  20 + return type_;
  21 +}
  22 +
  23 +QString AbstractCook::name()
  24 +{
  25 + return name_;
  26 +}
  27 +
  28 +int AbstractCook::time()
  29 +{
  30 + int t = time_;
  31 + for (int idx = 0; idx < 5; idx++)
  32 + if (configurations[idx] != NULL)
  33 + t = configurations[idx]->configureTime(t);
  34 +
  35 + return t;
  36 +}
  37 +
  38 +bool AbstractCook::interTempEnabled()
  39 +{
  40 + return interTempEnabled_;
  41 +}
  42 +
  43 +int AbstractCook::interTemp()
  44 +{
  45 + int t = interTemp_;
  46 + for (int idx = 0; idx < 5; idx++)
  47 + if (configurations[idx] != NULL)
  48 + t = configurations[idx]->configureInterTemp(t);
  49 +
  50 + return t;
  51 +}
  52 +
  53 +Cook::Step AbstractCook::currentStep()
  54 +{
  55 + return step(currentStepIndex());
  56 +}
  57 +
  58 +int AbstractCook::currentStepIndex()
  59 +{
  60 + return currentStep_;
  61 +}
  62 +
  63 +void AbstractCook::setCurrentStepIndex(int index)
  64 +{
  65 + if (index < stepCount_)
  66 + currentStep_ = index;
  67 +}
  68 +
  69 +int AbstractCook::stepCount()
  70 +{
  71 + return stepCount_;
  72 +}
  73 +
  74 +Cook::Step AbstractCook::step(int index)
  75 +{
  76 + if (index < stepCount_)
  77 + {
  78 + Cook::Step s = stepList[index];
  79 + for (int idx = 0; idx < 5; idx++)
  80 + if (configurations[idx] != NULL)
  81 + s = configurations[idx]->configureStep(s);
  82 +
  83 + return s;
  84 + }
  85 + else
  86 + return Cook::Step { Cook::Invalid, Cook::SteamMode, 0, 0 };
  87 +}
  88 +
  89 +Cook::StepClass Cook::classify(Cook::StepType type)
  90 +{
  91 + switch (type)
  92 + {
  93 + case Preheat:
  94 + return PreheatClass;
  95 + case PutThermometer:
  96 + case Load:
  97 + case Cut:
  98 + case Pour:
  99 + return DoorClass;
  100 + case Bake:
  101 + case Dry:
  102 + case Ferment:
  103 + case BlowSteam:
  104 + case CoolDown:
  105 + case Steam:
  106 + case Roast:
  107 + case Boil:
  108 + case Thicken:
  109 + case WarmUp:
  110 + case MakeCrispy:
  111 + case Finish:
  112 + case Damp:
  113 + case Defer:
  114 + case Grill:
  115 + case End:
  116 + case Burn:
  117 + case Fry:
  118 + case HeatUp:
  119 + case Ripen:
  120 + case RipenKeep:
  121 + case BoilSteadily:
  122 + case CookGratin:
  123 + case Brown:
  124 + case Simmer:
  125 + case Moisten:
  126 + return CookClass;
  127 + default:
  128 + return InvalidClass;
  129 + }
  130 +}
  131 +
  132 +Cook::Configuration AbstractCookConfig::type()
  133 +{
  134 + return type_;
  135 +}
  136 +
  137 +QString AbstractCookConfig::icon()
  138 +{
  139 + return icon_;
  140 +}
  141 +
  142 +QString AbstractCookConfig::overlayIcon()
  143 +{
  144 + return overayIcon_;
  145 +}
  146 +
  147 +QString AbstractCookConfig::minLabel()
  148 +{
  149 + return minLabel_;
  150 +}
  151 +
  152 +QString AbstractCookConfig::maxLabel()
  153 +{
  154 + return maxLabel_;
  155 +}
  156 +
  157 +QString AbstractCookConfig::currentLabel()
  158 +{
  159 + return currentLabel_;
  160 +}
  161 +
  162 +int AbstractCookConfig::count()
  163 +{
  164 + return count_;
  165 +}
  166 +
  167 +void AbstractCookConfig::setCount(int value)
  168 +{
  169 + count_ = value;
  170 + if (current_ > count_)
  171 + current_ = count_;
  172 +}
  173 +
  174 +int AbstractCookConfig::current()
  175 +{
  176 + return current_;
  177 +}
  178 +
  179 +void AbstractCookConfig::setCurrent(int value)
  180 +{
  181 + current_ = qBound(1, value, count_);
  182 +}
  183 +
  184 +int AbstractCookConfig::standard()
  185 +{
  186 + return standard_;
  187 +}
  188 +
  189 +void AbstractCookConfig::setStandard(int value)
6 190 {
  191 + standard_ = qBound(1, value, count_);
  192 + setCurrent(standard_);
  193 +}
  194 +
  195 +int AbstractCookConfig::configureTime(int standardTime)
  196 +{
  197 + return standardTime;
  198 +}
  199 +
  200 +int AbstractCookConfig::configureInterTemp(int standardInterTemp)
  201 +{
  202 + return standardInterTemp;
  203 +}
  204 +
  205 +Cook::Step AbstractCookConfig::configureStep(Cook::Step standardStep)
  206 +{
  207 + return standardStep;
  208 +}
  209 +
  210 +BrightnessConfig::BrightnessConfig()
  211 +{
  212 + type_ = Cook::Brightness;
  213 + icon_ = ":/images/images/auto/gau_icon_01.png";
  214 + overayIcon_ = ":/images/images/auto/gau_icon_01_ov.png";
  215 + minLabel_ = "연한색";
  216 + maxLabel_ = "진한색";
  217 +}
  218 +
  219 +Cook::Step BrightnessConfig::configureStep(Cook::Step standardStep)
  220 +{
  221 + int dVal = current_ - standard_;
  222 + qreal m = 1.0 - 0.05 * dVal;
  223 +
  224 + standardStep.humidity =
  225 + qBound(0, (int) round(standardStep.humidity * m), 100);
  226 +
  227 + return standardStep;
  228 +}
  229 +
  230 +TimeConfig::TimeConfig()
  231 +{
  232 + type_ = Cook::Time;
  233 + icon_ = ":/images/images/auto/011_icon_03.png";
  234 + overayIcon_ = ":/images/images/auto/011_icon_03_ov.png";
  235 + minLabel_ = "단시간";
  236 + maxLabel_ = "장시간";
  237 +}
  238 +
  239 +int TimeConfig::configureTime(int standardTime)
  240 +{
  241 + int dVal = current_ - standard_;
  242 + qreal m = 1.0 + 0.1 * dVal;
  243 +
  244 + standardTime = qBound(0, (int) round(standardTime * m), 24 * 60 * 60);
  245 +
  246 + return standardTime;
  247 +}
  248 +
  249 +BurnDegreeConfig::BurnDegreeConfig()
  250 +{
  251 + type_ = Cook::BurnDegree;
  252 + icon_ = ":/images/images/auto/gau_icon_02.png";
  253 + overayIcon_ = ":/images/images/auto/gau_icon_02_ov.png";
  254 + minLabel_ = "중간 익힘";
  255 + maxLabel_ = "완전 익힘";
  256 +}
  257 +
  258 +Cook::Step BurnDegreeConfig::configureStep(Cook::Step standardStep)
  259 +{
  260 + int dVal = current_ - standard_;
  261 + qreal m = 1.0 + 0.03 * dVal;
  262 +
  263 + standardStep.temp =
  264 + qBound(30, (int) round(standardStep.temp * m), 300);
  265 +
  266 + return standardStep;
  267 +}
  268 +
  269 +int BurnDegreeConfig::configureInterTemp(int standardInterTemp)
  270 +{
  271 + int dVal = current_ - standard_;
  272 + qreal m = 1.0 + 0.03 * dVal;
  273 +
  274 + standardInterTemp = qBound(0, (int) round(standardInterTemp * m), 99);
  275 +
  276 + return standardInterTemp;
  277 +}
  278 +
  279 +QString Cook::name(Cook::StepType type)
  280 +{
  281 + switch (type)
  282 + {
  283 + case Cook::Roast:
  284 + return "로스팅";
  285 + case Cook::Grill:
  286 + return "그릴";
  287 + case Cook::Boil:
  288 + return "끓이기";
  289 + case Cook::BoilSteadily:
  290 + return "뭉근하게 끓이기";
  291 + case Cook::HeatUp:
  292 + return "온도 높이기";
  293 + case Cook::Thicken:
  294 + return "걸쭉하게 만들기";
  295 + case Cook::WarmUp:
  296 + return "데우기";
  297 + case Cook::Simmer:
  298 + return "약한 불로 끓이기";
  299 + case Cook::End:
  300 + return "종료";
  301 + case Cook::MakeCrispy:
  302 + return "바삭함 주기";
  303 + case Cook::Brown:
  304 + return "브라우닝(갈색 내기)";
  305 + case Cook::BlowSteam:
  306 + return "스팀 쏘이기";
  307 + case Cook::Damp:
  308 + return "습윤 주기";
  309 + case Cook::Finish:
  310 + return "피니싱";
  311 + case Cook::Burn:
  312 + return "그을리기";
  313 + case Cook::CookGratin:
  314 + return "그라탱 요리";
  315 + case Cook::CoolDown:
  316 + return "식히기";
  317 + case Cook::Defer:
  318 + return "보류";
  319 + case Cook::RipenKeep:
  320 + return "숙성 & 보존";
  321 + case Cook::Bake:
  322 + return "베이킹";
  323 + case Cook::Fry:
  324 + return "기름에 재빨리 볶기";
  325 + case Cook::Steam:
  326 + return "찌기";
  327 + case Cook::Ripen:
  328 + return "촉촉하게";
  329 + case Cook::Ferment:
  330 + return "숙성";
  331 + case Cook::Moisten:
  332 + return "발효";
  333 + case Cook::Dry:
  334 + return "건조시키기";
  335 + default:
  336 + return "";
  337 + }
  338 +}
  339 +
  340 +QString Cook::icon(Cook::StepType type)
  341 +{
  342 + switch (type)
  343 + {
  344 + case Cook::Roast:
  345 + case Cook::Grill:
  346 + return ":/images/images/auto/sys_icon_01.png";
  347 + case Cook::Boil:
  348 + case Cook::BoilSteadily:
  349 + case Cook::HeatUp:
  350 + case Cook::Thicken:
  351 + case Cook::WarmUp:
  352 + case Cook::Simmer:
  353 + return ":/images/images/auto/sys_icon_02.png";
  354 + case Cook::End:
  355 + return ":/images/images/auto/sys_icon_03.png";
  356 + case Cook::MakeCrispy:
  357 + case Cook::Brown:
  358 + case Cook::BlowSteam:
  359 + case Cook::Damp:
  360 + return ":/images/images/auto/sys_icon_04.png";
  361 + case Cook::Finish:
  362 + return ":/images/images/auto/sys_icon_05.png";
  363 + case Cook::Burn:
  364 + case Cook::CookGratin:
  365 + return ":/images/images/auto/sys_icon_06.png";
  366 + case Cook::CoolDown:
  367 + return ":/images/images/auto/sys_icon_07.png";
  368 + case Cook::Defer:
  369 + case Cook::RipenKeep:
  370 + return ":/images/images/auto/sys_icon_08.png";
  371 + case Cook::Bake:
  372 + return ":/images/images/auto/sys_icon_09.png";
  373 + case Cook::Fry:
  374 + case Cook::Steam:
  375 + return ":/images/images/auto/sys_icon_10.png";
  376 + case Cook::Ripen:
  377 + case Cook::Ferment:
  378 + case Cook::Moisten:
  379 + return ":/images/images/auto/sys_icon_11.png";
  380 + case Cook::Dry:
  381 + return ":/images/images/auto/sys_icon_12.png";
  382 + default:
  383 + return "";
  384 + }
  385 +}
  386 +
  387 +QString Cook::icon(Cook::CookType type)
  388 +{
  389 + switch (type)
  390 + {
  391 + case Poultry:
  392 + return ":/images/images/auto/005_auto_icon_01_ov.png";
  393 + case Meat:
  394 + return ":/images/images/auto/005_auto_icon_02_ov.png";
  395 + case Fish:
  396 + return ":/images/images/auto/005_auto_icon_03_ov.png";
  397 + case Desert:
  398 + return ":/images/images/auto/005_auto_icon_04_ov.png";
  399 + case Vegetable:
  400 + return ":/images/images/auto/005_auto_icon_05_ov.png";
  401 + case Bread:
  402 + return ":/images/images/auto/005_auto_icon_06_ov.png";
  403 + case Etc:
  404 + return ":/images/images/auto/005_auto_icon_07_ov.png";
  405 + default:
  406 + return "";
  407 + }
  408 +}
  409 +
  410 +FriedRice::FriedRice()
  411 +{
  412 + name_ = QCoreApplication::tr("볶음밥");
  413 + currentStep_ = 0;
  414 + stepCount_ = 4;
  415 +
  416 + stepList[0] = { Cook::Preheat, Cook::CombiMode, 100, 150 };
  417 + stepList[1] = { Cook::Load, Cook::CombiMode, 0, 0 };
  418 + stepList[2] = { Cook::Roast, Cook::CombiMode, 80, 130 };
  419 + stepList[3] = { Cook::Roast, Cook::DryMode, 30, 170 };
  420 +}
  421 +
  422 +ChickenCook::ChickenCook()
  423 +{
  424 + type_ = Cook::Poultry;
  425 + name_ = QCoreApplication::tr("닭고기 요리");
  426 + currentStep_ = 0;
  427 + stepCount_ = 5;
  428 +
  429 + stepList[0] = { Cook::Preheat, Cook::CombiMode, 100, 230 };
  430 + stepList[1] = { Cook::Load, Cook::CombiMode, 0, 0 };
  431 + stepList[2] = { Cook::Roast, Cook::CombiMode, 90, 210 };
  432 + stepList[3] = { Cook::Roast, Cook::CombiMode, 50, 173 };
  433 + stepList[4] = { Cook::Roast, Cook::DryMode, 50, 200 };
  434 +
  435 + time_ = 39 * 60;
  436 + interTempEnabled_ = true;
  437 + interTemp_ = 88;
  438 +
  439 + BrightnessConfig *brightness = new BrightnessConfig;
  440 + brightness->setCount(5);
  441 + brightness->setStandard(3);
  442 + brightness->setCurrent(3);
  443 + configurations[0] = brightness;
  444 +
  445 + BurnDegreeConfig *burnDegree = new BurnDegreeConfig;
  446 + burnDegree->setCount(3);
  447 + burnDegree->setStandard(3);
  448 + burnDegree->setCurrent(3);
  449 + configurations[1] = burnDegree;
  450 +}
  451 +
  452 +MeatPie::MeatPie()
  453 +{
  454 + type_ = Cook::Meat;
  455 + name_ = QCoreApplication::tr("고기 파이");
  456 + currentStep_ = 0;
  457 + stepCount_ = 5;
  458 +
  459 + stepList[0] = { Cook::Preheat, Cook::DryMode, 100, 211 };
  460 + stepList[1] = { Cook::Load, Cook::DryMode, 0, 0 };
  461 + stepList[2] = { Cook::Bake, Cook::DryMode, 100, 191 };
  462 + stepList[3] = { Cook::CoolDown, Cook::DryMode, 100, 120 };
  463 + stepList[4] = { Cook::Bake, Cook::DryMode, 40, 120 };
  464 +
  465 + time_ = 77 * 60;
  466 + interTempEnabled_ = true;
  467 + interTemp_ = 62;
  468 +
  469 + BrightnessConfig *brightness = new BrightnessConfig;
  470 + brightness->setCount(5);
  471 + brightness->setStandard(3);
  472 + brightness->setCurrent(3);
  473 + configurations[0] = brightness;
  474 +
  475 + BurnDegreeConfig *burnDegree = new BurnDegreeConfig;
  476 + burnDegree->setCount(3);
  477 + burnDegree->setStandard(2);
  478 + burnDegree->setCurrent(2);
  479 + configurations[1] = burnDegree;
  480 +}
  481 +
  482 +Croissant::Croissant()
  483 +{
  484 + type_ = Cook::Bread;
  485 + name_ = QCoreApplication::tr("크로와상/페이스트리");
  486 + currentStep_ = 0;
  487 + stepCount_ = 6;
  488 +
  489 + stepList[0] = { Cook::Preheat, Cook::CombiMode, 100, 180 };
  490 + stepList[1] = { Cook::Load, Cook::DryMode, 0, 0 };
  491 + stepList[2] = { Cook::BlowSteam, Cook::SteamMode, 100, 98 };
  492 + stepList[3] = { Cook::Bake, Cook::DryMode, 100, 170 };
  493 + stepList[4] = { Cook::Bake, Cook::DryMode, 70, 170 };
  494 + stepList[5] = { Cook::Bake, Cook::DryMode, 20, 170 };
  495 +
  496 + time_ = 18 * 60;
  497 + interTempEnabled_ = false;
  498 + interTemp_ = 0;
  499 +
  500 + BrightnessConfig *brightness = new BrightnessConfig;
  501 + brightness->setCount(5);
  502 + brightness->setStandard(3);
  503 + brightness->setCurrent(3);
  504 + configurations[0] = brightness;
  505 +
  506 + TimeConfig *timeConf = new TimeConfig;
  507 + timeConf->setCount(3);
  508 + timeConf->setStandard(2);
  509 + timeConf->setCurrent(2);
  510 + configurations[4] = timeConf;
7 511 }
... ...
app/gui/oven_control/cook.h
... ... @@ -3,13 +3,202 @@
3 3  
4 4 #include <QObject>
5 5 #include <QTimer>
  6 +#include <QList>
6 7  
7   -class Cook : public QObject
  8 +namespace Cook {
  9 + enum CookType
  10 + {
  11 + Poultry,
  12 + Meat,
  13 + Fish,
  14 + Desert,
  15 + Vegetable,
  16 + Bread,
  17 + Etc
  18 + };
  19 +
  20 + enum StepClass
  21 + {
  22 + InvalidClass,
  23 + PreheatClass,
  24 + DoorClass,
  25 + CookClass
  26 + };
  27 +
  28 + enum StepType
  29 + {
  30 + Invalid,
  31 +
  32 + Preheat, // 예열
  33 + PutThermometer, // 중심 온도계 삽입
  34 + Load, // 식재료 적재
  35 + Cut, // 자르기
  36 + Pour, // 물 붓기
  37 +
  38 + Bake, // 베이킹
  39 + Dry, // 건조
  40 + Ferment, // 발효
  41 + BlowSteam, // 스팀 쏘이기
  42 + CoolDown, // 식히기
  43 + Steam, // 찌기
  44 + Roast, // 로스팅
  45 + Boil, // 끓이기
  46 + Thicken, // 걸쭉하게 만들기
  47 + WarmUp, // 데우기
  48 + MakeCrispy, // 바삭하게 만들기
  49 + Finish, // 피니싱
  50 + Damp, // 습윤하게 만들기
  51 + Defer, // 보류
  52 + Grill, // 그릴
  53 + End, // 종료
  54 + Burn, // 그을리기
  55 + Fry, // 기름에 볶기
  56 + HeatUp, // 온도 높이기
  57 + Ripen, // 숙성
  58 + RipenKeep, // 숙성 & 보존
  59 + BoilSteadily, // 뭉근하게 끓이기
  60 + CookGratin, // 그라탱 요리
  61 + Brown, // 브라우닝
  62 + Simmer, // 약한 불로 끓이기
  63 + Moisten // 촉촉하게
  64 + };
  65 +
  66 + enum Mode {
  67 + SteamMode, DryMode, CombiMode
  68 + };
  69 +
  70 + struct Step {
  71 + StepType type;
  72 + Mode mode;
  73 + int humidity;
  74 + int temp;
  75 + };
  76 +
  77 + enum Configuration {
  78 + Brightness,
  79 + Time,
  80 + BurnDegree
  81 + };
  82 +
  83 + StepClass classify(StepType type);
  84 + QString name(StepType type);
  85 + QString icon(CookType type);
  86 + QString icon(StepType type);
  87 +}
  88 +
  89 +class AbstractCookConfig
  90 +{
  91 +public:
  92 + Cook::Configuration type();
  93 + QString icon();
  94 + QString overlayIcon();
  95 + QString minLabel();
  96 + QString maxLabel();
  97 + virtual QString currentLabel();
  98 +
  99 + int count();
  100 + int current();
  101 + int standard();
  102 +
  103 + virtual int configureTime(int standardTime);
  104 + virtual int configureInterTemp(int standardInterTemp);
  105 + virtual Cook::Step configureStep(Cook::Step standardStep);
  106 +
  107 +public slots:
  108 + void setCount(int value);
  109 + void setCurrent(int value);
  110 + void setStandard(int value);
  111 +
  112 +protected:
  113 + Cook::Configuration type_;
  114 + QString icon_;
  115 + QString overayIcon_;
  116 + QString minLabel_;
  117 + QString maxLabel_;
  118 + QString currentLabel_;
  119 +
  120 + int standard_;
  121 + int current_;
  122 + int count_;
  123 +};
  124 +
  125 +class AbstractCook
8 126 {
9   - Q_OBJECT
10 127 public:
11   - explicit Cook(QObject *parent = 0);
  128 + AbstractCook() { for (int idx = 0; idx < 5; idx++) configurations[idx] = NULL; }
  129 + ~AbstractCook();
  130 +
  131 + Cook::CookType type();
  132 + QString name();
  133 + int time();
  134 + bool interTempEnabled();
  135 + int interTemp();
  136 +
  137 + Cook::Step currentStep();
  138 + Cook::Step step(int index);
12 139  
  140 + int currentStepIndex();
  141 + void setCurrentStepIndex(int index);
  142 +
  143 + int stepCount();
  144 +
  145 + AbstractCookConfig *configurations[5];
  146 +
  147 +protected:
  148 + Cook::CookType type_;
  149 + QString name_;
  150 + int time_;
  151 + bool interTempEnabled_;
  152 + int interTemp_;
  153 + int currentStep_;
  154 + int stepCount_;
  155 + Cook::Step stepList[10];
  156 +};
  157 +
  158 +class BrightnessConfig : public AbstractCookConfig
  159 +{
  160 +public:
  161 + BrightnessConfig();
  162 + Cook::Step configureStep(Cook::Step standardStep);
  163 +};
  164 +
  165 +class TimeConfig : public AbstractCookConfig
  166 +{
  167 +public:
  168 + TimeConfig();
  169 + int configureTime(int standardTime);
  170 +};
  171 +
  172 +class BurnDegreeConfig : public AbstractCookConfig
  173 +{
  174 +public:
  175 + BurnDegreeConfig();
  176 + Cook::Step configureStep(Cook::Step standardStep);
  177 + int configureInterTemp(int standardInterTemp);
  178 +};
  179 +
  180 +class FriedRice : public AbstractCook
  181 +{
  182 +public:
  183 + FriedRice();
  184 +};
  185 +
  186 +class ChickenCook : public AbstractCook
  187 +{
  188 +public:
  189 + ChickenCook();
  190 +};
  191 +
  192 +class MeatPie : public AbstractCook
  193 +{
  194 +public:
  195 + MeatPie();
  196 +};
  197 +
  198 +class Croissant : public AbstractCook
  199 +{
  200 +public:
  201 + Croissant();
13 202 };
14 203  
15 204 #endif // COOK_H
... ...
app/gui/oven_control/heatcirculargauge.cpp
... ... @@ -0,0 +1,8 @@
  1 +#include "heatcirculargauge.h"
  2 +
  3 +HeatCircularGauge::HeatCircularGauge(QWidget *parent) : CircularGauge(parent)
  4 +{
  5 + bar.load(":/images/images/auto/circle_graphe_04.png");
  6 + indicator.load(":/images/images/auto/circle_graphe_07.png");
  7 + icon.load(":/images/images/auto/window_icon_08.png");
  8 +}
... ...
app/gui/oven_control/heatcirculargauge.h
... ... @@ -0,0 +1,12 @@
  1 +#ifndef HEATCIRCULARGAUGE_H
  2 +#define HEATCIRCULARGAUGE_H
  3 +
  4 +#include "circulargauge.h"
  5 +
  6 +class HeatCircularGauge : public CircularGauge
  7 +{
  8 +public:
  9 + HeatCircularGauge(QWidget *parent = 0);
  10 +};
  11 +
  12 +#endif // HEATCIRCULARGAUGE_H
... ...
app/gui/oven_control/humiditycirculargauge.cpp
... ... @@ -0,0 +1,8 @@
  1 +#include "humiditycirculargauge.h"
  2 +
  3 +HumidityCircularGauge::HumidityCircularGauge(QWidget *parent) : CircularGauge(parent)
  4 +{
  5 + bar.load(":/images/images/auto/circle_graphe_05.png");
  6 + indicator.load(":/images/images/auto/circle_graphe_06.png");
  7 + icon.load(":/images/images/auto/window_icon_07.png");
  8 +}
... ...
app/gui/oven_control/humiditycirculargauge.h
... ... @@ -0,0 +1,14 @@
  1 +#ifndef HUMIDITYCIRCULARGAUGE_H
  2 +#define HUMIDITYCIRCULARGAUGE_H
  3 +
  4 +#include "circulargauge.h"
  5 +
  6 +class HumidityCircularGauge : public CircularGauge
  7 +{
  8 + Q_OBJECT
  9 +
  10 +public:
  11 + explicit HumidityCircularGauge(QWidget *parent = 0);
  12 +};
  13 +
  14 +#endif // HUMIDITYCIRCULARGAUGE_H
... ...
app/gui/oven_control/images/advanced/001_01_background_time.png

70.1 KB

app/gui/oven_control/images/advanced/001_01_background_under_down.png

16.3 KB

app/gui/oven_control/images/advanced/003_02__mainicon_arrow.png

4.84 KB

app/gui/oven_control/images/advanced/006_sys_icon_01.png

5.54 KB

app/gui/oven_control/images/advanced/006_sys_icon_01_ov.png

5.49 KB

app/gui/oven_control/images/advanced/006_sys_icon_02.png

5.61 KB

app/gui/oven_control/images/advanced/006_sys_icon_02_ov.png

5.58 KB

app/gui/oven_control/images/advanced/006_sys_icon_03.png

5.62 KB

app/gui/oven_control/images/advanced/006_sys_icon_03_ov.png

5.58 KB

app/gui/oven_control/images/advanced/006_sys_icon_04.png

5.63 KB

app/gui/oven_control/images/advanced/006_sys_icon_04_ov.png

5.5 KB

app/gui/oven_control/images/advanced/006_sys_icon_05.png

6.66 KB

app/gui/oven_control/images/advanced/006_sys_icon_05_ov.png

6.51 KB

app/gui/oven_control/images/advanced/006_sys_icon_10.png

5.54 KB

app/gui/oven_control/images/advanced/006_sys_icon_10_ov.png

5.48 KB

app/gui/oven_control/images/advanced/006_sys_icon_11.png

6.08 KB

app/gui/oven_control/images/advanced/006_sys_icon_11_ov.png

5.97 KB

app/gui/oven_control/images/advanced/006_sys_icon_12.png

5.53 KB

app/gui/oven_control/images/advanced/006_sys_icon_12_ov.png

5.38 KB

app/gui/oven_control/images/advanced/006_sys_icon_13.png

5.53 KB

app/gui/oven_control/images/advanced/006_sys_icon_13_ov.png

5.37 KB

app/gui/oven_control/images/advanced/006_sys_icon_14.png

6.55 KB

app/gui/oven_control/images/advanced/006_sys_icon_14_ov.png

6.38 KB

app/gui/oven_control/images/advanced/006_sys_icon_15.png

5.33 KB

app/gui/oven_control/images/advanced/006_sys_icon_15_ov.png

5.28 KB

app/gui/oven_control/images/advanced/006_sys_icon_16.png

6.08 KB

app/gui/oven_control/images/advanced/006_sys_icon_16_ov.png

5.97 KB

app/gui/oven_control/images/advanced/006_sys_icon_17.png

5.47 KB

app/gui/oven_control/images/advanced/006_sys_icon_17_ov.png

5.44 KB

app/gui/oven_control/images/advanced/006_sys_icon_18.png

5.64 KB

app/gui/oven_control/images/advanced/006_sys_icon_18_ov.png

5.58 KB

app/gui/oven_control/images/advanced/006_sys_icon_19.png

5.5 KB

app/gui/oven_control/images/advanced/006_sys_icon_19_ov.png

5.46 KB

app/gui/oven_control/images/advanced/006_sys_icon_20.png

5.72 KB

app/gui/oven_control/images/advanced/006_sys_icon_20_ov.png

5.62 KB

app/gui/oven_control/images/advanced/006_sys_icon_21.png

5.9 KB

app/gui/oven_control/images/advanced/006_sys_icon_21_ov.png

5.83 KB

app/gui/oven_control/images/advanced/088_scrol_big.png

2.9 KB

app/gui/oven_control/images/advanced/088_scrol_small.png

2.85 KB

app/gui/oven_control/images/advanced/arrow_next.png

3.97 KB

app/gui/oven_control/images/advanced/arrow_perv.png

4.1 KB

app/gui/oven_control/images/advanced/back_01(set).png

229 KB

app/gui/oven_control/images/advanced/back_01_01.png

227 KB

app/gui/oven_control/images/advanced/back_01_02.png

2.94 KB

app/gui/oven_control/images/advanced/bar_01.png

9.72 KB

app/gui/oven_control/images/advanced/bar_02.png

9.97 KB

app/gui/oven_control/images/advanced/bar_03.png

9.75 KB

app/gui/oven_control/images/advanced/bar_icon_01.png

4.48 KB

app/gui/oven_control/images/advanced/bar_icon_01_ov.png

4.5 KB

app/gui/oven_control/images/advanced/bar_icon_02.png

4.03 KB

app/gui/oven_control/images/advanced/bar_icon_02_ov.png

4.03 KB

app/gui/oven_control/images/advanced/bar_icon_03.png

3.32 KB

app/gui/oven_control/images/advanced/btn_01.png

5.2 KB

app/gui/oven_control/images/advanced/btn_01_icon.png

3.2 KB

app/gui/oven_control/images/advanced/btn_01_ov.png

5.84 KB

app/gui/oven_control/images/advanced/btn_02-ov.png

7.18 KB

app/gui/oven_control/images/advanced/btn_02.png

6.05 KB

app/gui/oven_control/images/advanced/btn_02_icon.png

3.82 KB

app/gui/oven_control/images/advanced/btn_03.png

3.26 KB

app/gui/oven_control/images/advanced/btn_03_ov.png

3.52 KB

app/gui/oven_control/images/advanced/circle_graphe_01.png

29.1 KB

app/gui/oven_control/images/advanced/circle_graphe_02.png

14.4 KB

app/gui/oven_control/images/advanced/circle_graphe_03.png

18.5 KB

app/gui/oven_control/images/advanced/circle_graphe_04.png

14.5 KB

app/gui/oven_control/images/advanced/circle_graphe_05.png

19.2 KB

app/gui/oven_control/images/advanced/circle_graphe_06.png

4.07 KB

app/gui/oven_control/images/advanced/circle_graphe_07.png

4.06 KB

app/gui/oven_control/images/advanced/gau_01.png

3.7 KB

app/gui/oven_control/images/advanced/gau_02.png

2.84 KB

app/gui/oven_control/images/advanced/gau_03.png

2.81 KB

app/gui/oven_control/images/advanced/gau_04.png

3.7 KB

app/gui/oven_control/images/advanced/gau_05.png

3.74 KB

app/gui/oven_control/images/advanced/gau_06.png

3.58 KB

app/gui/oven_control/images/advanced/gau_07.png

3.81 KB

app/gui/oven_control/images/advanced/gau_08.png

2.83 KB

app/gui/oven_control/images/advanced/gau_09.png

3.98 KB

app/gui/oven_control/images/advanced/graphe_hit_01.png

2.91 KB

app/gui/oven_control/images/advanced/graphe_hit_02.png

2.83 KB

app/gui/oven_control/images/advanced/graphe_hit_03.png

3.5 KB

app/gui/oven_control/images/advanced/graphe_hit_04.png

2.94 KB

app/gui/oven_control/images/advanced/graphe_hit_05.png

2.83 KB

app/gui/oven_control/images/advanced/graphe_hit_06.png

3.59 KB

app/gui/oven_control/images/advanced/graphe_linc_01.png

4.28 KB

app/gui/oven_control/images/advanced/graphe_line_001.png

2.76 KB

app/gui/oven_control/images/advanced/graphe_line_002.png

2.74 KB

app/gui/oven_control/images/advanced/icon_01.png

4.4 KB

app/gui/oven_control/images/advanced/icon_01_ov.png

4.55 KB

app/gui/oven_control/images/advanced/icon_02.png

5.94 KB

app/gui/oven_control/images/advanced/icon_03.png

5.94 KB

app/gui/oven_control/images/advanced/icon_04.png

6.39 KB

app/gui/oven_control/images/advanced/icon_04_ov1.png

6.67 KB

app/gui/oven_control/images/advanced/icon_04_ov2.png

6.71 KB

app/gui/oven_control/images/advanced/icon_04_ov3.png

6.78 KB

app/gui/oven_control/images/advanced/icon_04_ov4.png

6.87 KB

app/gui/oven_control/images/advanced/main_btn_01.png

5.1 KB

app/gui/oven_control/images/advanced/main_btn_01_ov.png

5.03 KB

app/gui/oven_control/images/advanced/main_btn_02.png

5.4 KB

app/gui/oven_control/images/advanced/main_btn_02_ov.png

5.35 KB

app/gui/oven_control/images/advanced/main_btn_03.png

5.54 KB

app/gui/oven_control/images/advanced/main_btn_03_ov.png

5.03 KB

app/gui/oven_control/images/advanced/main_btn_04.png

6.13 KB

app/gui/oven_control/images/advanced/main_btn_05.png

4.81 KB

app/gui/oven_control/images/advanced/main_btn_05_ov.png

4.48 KB

app/gui/oven_control/images/advanced/mark_01_icon.png

6.28 KB

app/gui/oven_control/images/advanced/mark_01_icon_ov.png

6.23 KB

app/gui/oven_control/images/advanced/mas_box.png

5.14 KB

app/gui/oven_control/images/advanced/mas_box_01.png

4.52 KB

app/gui/oven_control/images/advanced/mas_symbol.png

3.45 KB

app/gui/oven_control/images/advanced/medium_ani_a01.png

52.5 KB

app/gui/oven_control/images/advanced/medium_ani_a02.png

56 KB

app/gui/oven_control/images/advanced/medium_ani_a03.png

57 KB

app/gui/oven_control/images/advanced/medium_ani_a04.png

57.5 KB

app/gui/oven_control/images/advanced/medium_ani_a05.png

56.9 KB

app/gui/oven_control/images/advanced/medium_ani_a06.png

65.3 KB

app/gui/oven_control/images/advanced/medium_ani_a07.png

71.2 KB

app/gui/oven_control/images/advanced/medium_ani_a08.png

72.7 KB

app/gui/oven_control/images/advanced/medium_ani_a09.png

70.7 KB

app/gui/oven_control/images/advanced/medium_ani_b01.png

54.2 KB

app/gui/oven_control/images/advanced/medium_ani_b02.png

54.6 KB

app/gui/oven_control/images/advanced/medium_ani_c01.png

75.2 KB

app/gui/oven_control/images/advanced/medium_ani_c02.png

78.2 KB

app/gui/oven_control/images/advanced/medium_ani_c03.png

80.6 KB

app/gui/oven_control/images/advanced/medium_ani_c04.png

82.3 KB

app/gui/oven_control/images/advanced/medium_ani_d01.png

75.4 KB

app/gui/oven_control/images/advanced/medium_ani_d02.png

78.3 KB

app/gui/oven_control/images/advanced/medium_ani_d03.png

80.6 KB

app/gui/oven_control/images/advanced/medium_ani_d04.png

82.3 KB

app/gui/oven_control/images/advanced/symbol_01.png

4.12 KB

app/gui/oven_control/images/advanced/sys_icon_01.png

4.23 KB

app/gui/oven_control/images/advanced/sys_icon_02.png

5.59 KB

app/gui/oven_control/images/advanced/sys_icon_03.png

3.83 KB

app/gui/oven_control/images/advanced/sys_icon_04.png

5.93 KB

app/gui/oven_control/images/advanced/sys_icon_05.png

3.22 KB

app/gui/oven_control/images/advanced/sys_icon_06.png

5.85 KB

app/gui/oven_control/images/advanced/sys_icon_07.png

4.58 KB

app/gui/oven_control/images/advanced/sys_icon_08.png

6.27 KB

app/gui/oven_control/images/advanced/sys_icon_09.png

4.9 KB

app/gui/oven_control/images/advanced/sys_icon_10.png

5.85 KB

app/gui/oven_control/images/advanced/sys_icon_11.png

6.23 KB

app/gui/oven_control/images/advanced/sys_icon_12.png

5.6 KB

app/gui/oven_control/images/advanced/window_icon_04.png

4.48 KB

app/gui/oven_control/images/advanced/window_icon_05.png

4.56 KB

app/gui/oven_control/images/advanced/window_icon_06.png

4.19 KB

app/gui/oven_control/images/advanced/window_icon_07.png

4.05 KB

app/gui/oven_control/images/advanced/window_icon_07_08_line.png

2.75 KB

app/gui/oven_control/images/auto/001_01_background_under_down.png

16.3 KB

app/gui/oven_control/images/auto/005_auto_icon_01.png

6.39 KB

app/gui/oven_control/images/auto/005_auto_icon_01_ov.png

6.13 KB

app/gui/oven_control/images/auto/005_auto_icon_02.png

6.99 KB

app/gui/oven_control/images/auto/005_auto_icon_02_ov.png

6.72 KB

app/gui/oven_control/images/auto/005_auto_icon_03.png

6.73 KB

app/gui/oven_control/images/auto/005_auto_icon_03_ov.png

6.6 KB

app/gui/oven_control/images/auto/005_auto_icon_04.png

6.31 KB

app/gui/oven_control/images/auto/005_auto_icon_04_ov.png

6.09 KB

app/gui/oven_control/images/auto/005_auto_icon_05.png

7.17 KB

app/gui/oven_control/images/auto/005_auto_icon_05_ov.png

6.82 KB

app/gui/oven_control/images/auto/005_auto_icon_06.png

5.61 KB

app/gui/oven_control/images/auto/005_auto_icon_06_ov.png

5.54 KB

app/gui/oven_control/images/auto/005_auto_icon_07.png

5.04 KB

app/gui/oven_control/images/auto/005_auto_icon_07_ov.png

4.92 KB

app/gui/oven_control/images/auto/005_auto_icon_08.png

4.2 KB

app/gui/oven_control/images/auto/005_auto_icon_08_ov.png

4.1 KB

app/gui/oven_control/images/auto/005_auto_icon_09.png

4.65 KB

app/gui/oven_control/images/auto/005_auto_icon_09_ov.png

4.5 KB

app/gui/oven_control/images/auto/005_auto_icon_10.png

4.32 KB

app/gui/oven_control/images/auto/005_auto_icon_10_ov.png

4.24 KB

app/gui/oven_control/images/auto/005_auto_icon_11.png

5.67 KB

app/gui/oven_control/images/auto/005_auto_icon_11_ov.png

5.48 KB

app/gui/oven_control/images/auto/006_sys_icon_01.png

5.54 KB

app/gui/oven_control/images/auto/006_sys_icon_01_ov.png

5.49 KB

app/gui/oven_control/images/auto/006_sys_icon_02.png

5.61 KB

app/gui/oven_control/images/auto/006_sys_icon_02_ov.png

5.58 KB

app/gui/oven_control/images/auto/006_sys_icon_03.png

5.62 KB

app/gui/oven_control/images/auto/006_sys_icon_03_ov.png

5.58 KB

app/gui/oven_control/images/auto/006_sys_icon_04.png

5.63 KB

app/gui/oven_control/images/auto/006_sys_icon_04_ov.png

5.5 KB

app/gui/oven_control/images/auto/006_sys_icon_05.png

6.66 KB

app/gui/oven_control/images/auto/006_sys_icon_05_ov.png

6.51 KB

app/gui/oven_control/images/auto/006_sys_icon_10.png

5.54 KB

app/gui/oven_control/images/auto/006_sys_icon_10_ov.png

5.48 KB

app/gui/oven_control/images/auto/006_sys_icon_11.png

6.08 KB

app/gui/oven_control/images/auto/006_sys_icon_11_ov.png

5.97 KB

app/gui/oven_control/images/auto/006_sys_icon_12.png

5.53 KB

app/gui/oven_control/images/auto/006_sys_icon_12_ov.png

5.38 KB

app/gui/oven_control/images/auto/006_sys_icon_13.png

5.53 KB

app/gui/oven_control/images/auto/006_sys_icon_13_ov.png

5.37 KB

app/gui/oven_control/images/auto/006_sys_icon_14.png

6.55 KB

app/gui/oven_control/images/auto/006_sys_icon_14_ov.png

6.38 KB

app/gui/oven_control/images/auto/006_sys_icon_15.png

5.33 KB

app/gui/oven_control/images/auto/006_sys_icon_15_ov.png

5.28 KB

app/gui/oven_control/images/auto/006_sys_icon_16.png

6.08 KB

app/gui/oven_control/images/auto/006_sys_icon_16_ov.png

5.97 KB

app/gui/oven_control/images/auto/010_icon_block.png

10.5 KB

app/gui/oven_control/images/auto/011_icon_01.png

6.05 KB

app/gui/oven_control/images/auto/011_icon_01_ov.png

5.93 KB

app/gui/oven_control/images/auto/011_icon_02.png

5.97 KB

app/gui/oven_control/images/auto/011_icon_02_ov.png

5.84 KB

app/gui/oven_control/images/auto/011_icon_03.png

6.35 KB

app/gui/oven_control/images/auto/011_icon_03_ov.png

6.24 KB

app/gui/oven_control/images/auto/011_icon_04.png

6.23 KB

app/gui/oven_control/images/auto/011_icon_04_ov.png

6.2 KB

app/gui/oven_control/images/auto/011_icon_04_ov_01.png

6.4 KB

app/gui/oven_control/images/auto/Gau_icon_06.png

6.17 KB

app/gui/oven_control/images/auto/Gau_icon_06_ov.png

6.41 KB

app/gui/oven_control/images/auto/Gau_icon_07.png

6.21 KB

app/gui/oven_control/images/auto/Gau_icon_07_ov.png

6.34 KB

app/gui/oven_control/images/auto/ani_01.png

34.8 KB

app/gui/oven_control/images/auto/ani_02.png

36.6 KB

app/gui/oven_control/images/auto/ani_03.png

37 KB

app/gui/oven_control/images/auto/ani_04.png

37.4 KB

app/gui/oven_control/images/auto/ani_05.png

37 KB

app/gui/oven_control/images/auto/ani_06.png

42.4 KB

app/gui/oven_control/images/auto/ani_07.png

46.2 KB

app/gui/oven_control/images/auto/ani_08.png

47.2 KB

app/gui/oven_control/images/auto/ani_09.png

46 KB

app/gui/oven_control/images/auto/ani_a_01.png

35.8 KB

app/gui/oven_control/images/auto/ani_a_02.png

36.1 KB

app/gui/oven_control/images/auto/ani_b_01.png

52.7 KB

app/gui/oven_control/images/auto/ani_b_02.png

51.7 KB

app/gui/oven_control/images/auto/ani_b_03.png

50.2 KB

app/gui/oven_control/images/auto/ani_b_04.png

48.3 KB

app/gui/oven_control/images/auto/ani_c_01.png

52.6 KB

app/gui/oven_control/images/auto/ani_c_02.png

51.7 KB

app/gui/oven_control/images/auto/ani_c_03.png

50.2 KB

app/gui/oven_control/images/auto/ani_c_04.png

48.4 KB

app/gui/oven_control/images/auto/ani_d_01.png

73.5 KB

app/gui/oven_control/images/auto/ani_d_02.png

73.3 KB

app/gui/oven_control/images/auto/ani_frame_a_01.png

95.1 KB

app/gui/oven_control/images/auto/ani_frame_a_02.png

95.8 KB

app/gui/oven_control/images/auto/ani_frame_a_03.png

97.3 KB

app/gui/oven_control/images/auto/ani_frame_a_04.png

97.9 KB

app/gui/oven_control/images/auto/ani_frame_b_01.png

96.6 KB

app/gui/oven_control/images/auto/ani_frame_b_02.png

95 KB

app/gui/oven_control/images/auto/ani_frame_b_03.png

93.8 KB

app/gui/oven_control/images/auto/ani_frame_c_01.png

96.5 KB

app/gui/oven_control/images/auto/ani_frame_c_02.png

94.3 KB

app/gui/oven_control/images/auto/ani_frame_c_03.png

91.7 KB

app/gui/oven_control/images/auto/ani_frame_c_04.png

88.7 KB

app/gui/oven_control/images/auto/ani_frame_d_01.png

118 KB

app/gui/oven_control/images/auto/ani_frame_d_02.png

118 KB

app/gui/oven_control/images/auto/ani_frame_d_03.png

115 KB

app/gui/oven_control/images/auto/ani_frame_d_04.png

114 KB

app/gui/oven_control/images/auto/ba_ground_a01.png

227 KB

app/gui/oven_control/images/auto/ba_ground_a02.png

2.94 KB

app/gui/oven_control/images/auto/ba_ground_a03.png

89.3 KB

app/gui/oven_control/images/auto/ba_ground_set(full).png

296 KB

app/gui/oven_control/images/auto/ba_ground_set(full)_01.png

226 KB

app/gui/oven_control/images/auto/ba_ground_set.png

271 KB

app/gui/oven_control/images/auto/ba_ground_window_popup.png

6.06 KB

app/gui/oven_control/images/auto/ba_ground_window_setting.png

83.9 KB

app/gui/oven_control/images/auto/bg_ground_time.png

4.59 KB

app/gui/oven_control/images/auto/btn_01.png

8.05 KB

app/gui/oven_control/images/auto/btn_01_ov.png

10.3 KB

app/gui/oven_control/images/auto/btn_02.png

6.03 KB

app/gui/oven_control/images/auto/btn_02_ov.png

7.12 KB

app/gui/oven_control/images/auto/btn_03.png

8.05 KB

app/gui/oven_control/images/auto/btn_03_ov.png

10.3 KB

app/gui/oven_control/images/auto/btn_icon_01.png

3.31 KB

app/gui/oven_control/images/auto/btn_icon_02.png

3.2 KB

app/gui/oven_control/images/auto/btn_icon_03.png

3.51 KB

app/gui/oven_control/images/auto/cen_mt_icon_01.png

6.59 KB

app/gui/oven_control/images/auto/cen_mt_icon_02.png

6.6 KB

app/gui/oven_control/images/auto/cen_mt_icon_03.png

6.85 KB

app/gui/oven_control/images/auto/cen_mt_icon_block.png

10.5 KB

app/gui/oven_control/images/auto/circle_graphe_01.png

29.1 KB

app/gui/oven_control/images/auto/circle_graphe_02.png

14.4 KB

app/gui/oven_control/images/auto/circle_graphe_03.png

18.5 KB

app/gui/oven_control/images/auto/circle_graphe_04.png

14.5 KB

app/gui/oven_control/images/auto/circle_graphe_05.png

19.2 KB

app/gui/oven_control/images/auto/circle_graphe_06.png

4.07 KB

app/gui/oven_control/images/auto/circle_graphe_07.png

4.06 KB

app/gui/oven_control/images/auto/gau_01.png

3.7 KB

app/gui/oven_control/images/auto/gau_02.png

2.84 KB

app/gui/oven_control/images/auto/gau_03.png

2.81 KB

app/gui/oven_control/images/auto/gau_04.png

3.7 KB

app/gui/oven_control/images/auto/gau_05.png

3.74 KB

app/gui/oven_control/images/auto/gau_06.png

3.58 KB

app/gui/oven_control/images/auto/gau_07.png

3.81 KB

app/gui/oven_control/images/auto/gau_08.png

2.83 KB

app/gui/oven_control/images/auto/gau_09.png

3.98 KB

app/gui/oven_control/images/auto/gau_icon_01.png

6.31 KB

app/gui/oven_control/images/auto/gau_icon_01_ov.png

6.09 KB

app/gui/oven_control/images/auto/gau_icon_02.png

6.41 KB

app/gui/oven_control/images/auto/gau_icon_02_ov.png

6.19 KB

app/gui/oven_control/images/auto/gau_icon_03.png

5.72 KB

app/gui/oven_control/images/auto/gau_icon_03_ov.png

5.83 KB

app/gui/oven_control/images/auto/gau_icon_04.png

7 KB

app/gui/oven_control/images/auto/gau_icon_04_ov.png

6.69 KB

app/gui/oven_control/images/auto/gau_icon_05.png

6.25 KB

app/gui/oven_control/images/auto/gau_icon_05_ov.png

6.45 KB

app/gui/oven_control/images/auto/gau_icon_bg.png

10.5 KB

app/gui/oven_control/images/auto/graphe_hit_01.png

2.91 KB

app/gui/oven_control/images/auto/graphe_hit_02.png

2.83 KB

app/gui/oven_control/images/auto/graphe_hit_03.png

3.5 KB

app/gui/oven_control/images/auto/graphe_hit_04.png

2.94 KB

app/gui/oven_control/images/auto/graphe_hit_05.png

2.83 KB

app/gui/oven_control/images/auto/graphe_hit_06.png

3.59 KB

app/gui/oven_control/images/auto/option_btn_01.png

8.78 KB

app/gui/oven_control/images/auto/option_btn_01_ov.png

11 KB

app/gui/oven_control/images/auto/option_btn_02.png

8.14 KB

app/gui/oven_control/images/auto/option_btn_02_ov.png

10 KB

app/gui/oven_control/images/auto/option_btn_03.png

8.1 KB

app/gui/oven_control/images/auto/option_btn_03_ov.png

10.1 KB

app/gui/oven_control/images/auto/option_btn_04.png

8.2 KB

app/gui/oven_control/images/auto/option_btn_04_ov.png

10 KB

app/gui/oven_control/images/auto/option_btn_05.png

7.78 KB

app/gui/oven_control/images/auto/option_btn_05_ov.png

9.58 KB

app/gui/oven_control/images/auto/option_btn_06.png

8.72 KB

app/gui/oven_control/images/auto/option_btn_06_ov_01.png

11 KB

app/gui/oven_control/images/auto/option_btn_06_ov_02.png

11 KB

app/gui/oven_control/images/auto/option_btn_07.png

8.99 KB

app/gui/oven_control/images/auto/option_btn_07_ov_01.png

11.4 KB

app/gui/oven_control/images/auto/option_btn_07_ov_02.png

11.5 KB

app/gui/oven_control/images/auto/option_btn_07_ov_03.png

11.4 KB

app/gui/oven_control/images/auto/option_btn_08.png

8.54 KB

app/gui/oven_control/images/auto/option_btn_08_ov_01.png

10.6 KB

app/gui/oven_control/images/auto/option_btn_08_ov_02.png

10.6 KB

app/gui/oven_control/images/auto/option_btn_09.png

6.77 KB

app/gui/oven_control/images/auto/option_btn_09_ov.png

8.36 KB

app/gui/oven_control/images/auto/option_btn_wash_01.png

12.8 KB

app/gui/oven_control/images/auto/option_btn_wash_01_ov.png

15.9 KB

app/gui/oven_control/images/auto/option_btn_wash_02.png

12.5 KB

app/gui/oven_control/images/auto/option_btn_wash_02_ov.png

15.6 KB

app/gui/oven_control/images/auto/option_btn_wash_03.png

14.2 KB

app/gui/oven_control/images/auto/option_btn_wash_03_ov.png

16.9 KB

app/gui/oven_control/images/auto/option_btn_wash_04.png

14.4 KB

app/gui/oven_control/images/auto/option_btn_wash_04_ov.png

16.9 KB

app/gui/oven_control/images/auto/option_btn_wash_05.png

14.7 KB

app/gui/oven_control/images/auto/option_btn_wash_05_ov.png

17.3 KB

app/gui/oven_control/images/auto/sys_icon_01.png

4.23 KB

app/gui/oven_control/images/auto/sys_icon_02.png

5.59 KB

app/gui/oven_control/images/auto/sys_icon_03.png

3.83 KB

app/gui/oven_control/images/auto/sys_icon_04.png

5.93 KB

app/gui/oven_control/images/auto/sys_icon_05.png

3.22 KB

app/gui/oven_control/images/auto/sys_icon_06.png

5.85 KB

app/gui/oven_control/images/auto/sys_icon_07.png

4.58 KB

app/gui/oven_control/images/auto/sys_icon_08.png

6.27 KB

app/gui/oven_control/images/auto/sys_icon_09.png

4.9 KB

app/gui/oven_control/images/auto/sys_icon_10.png

5.85 KB

app/gui/oven_control/images/auto/sys_icon_11.png

6.23 KB

app/gui/oven_control/images/auto/sys_icon_12.png

5.6 KB

app/gui/oven_control/images/auto/time_window_01.png

2.74 KB

app/gui/oven_control/images/auto/time_window_02.png

3.98 KB

app/gui/oven_control/images/auto/time_window_03.png

3.78 KB

app/gui/oven_control/images/auto/time_window_04_pin.png

2.83 KB

app/gui/oven_control/images/auto/time_window_04_pin_ov.png

2.92 KB

app/gui/oven_control/images/auto/window_arrow_01.png

3.04 KB

app/gui/oven_control/images/auto/window_arrow_01_expand.png

3.76 KB

app/gui/oven_control/images/auto/window_arrow_02.png

3.04 KB

app/gui/oven_control/images/auto/window_arrow_02_expand.png

3.69 KB

app/gui/oven_control/images/auto/window_arrow_pin_01.png

2.9 KB

app/gui/oven_control/images/auto/window_arrow_pin_02.png

3.11 KB

app/gui/oven_control/images/auto/window_icon_01.png

4.5 KB

app/gui/oven_control/images/auto/window_icon_02.png

4.78 KB

app/gui/oven_control/images/auto/window_icon_03.png

4.36 KB

app/gui/oven_control/images/auto/window_icon_03_ov.png

4.36 KB

app/gui/oven_control/images/auto/window_icon_04.png

4.48 KB

app/gui/oven_control/images/auto/window_icon_05.png

4.56 KB

app/gui/oven_control/images/auto/window_icon_06.png

4.19 KB

app/gui/oven_control/images/auto/window_icon_07.png

4.05 KB

app/gui/oven_control/images/auto/window_icon_07_08_line.png

2.75 KB

app/gui/oven_control/images/auto/window_icon_08.png

3.8 KB

app/gui/oven_control/images/auto/window_icon_09.png

4.4 KB

app/gui/oven_control/images/auto/window_icon_09_ov.png

4.78 KB

app/gui/oven_control/images/auto/window_icon_10.png

4.28 KB

app/gui/oven_control/images/auto/window_icon_10_ov.png

4.73 KB

app/gui/oven_control/images/auto/window_icon_11.png

4.33 KB

app/gui/oven_control/images/auto/window_icon_11_ov.png

4.86 KB

app/gui/oven_control/images/favorites/mas_box.png

5.14 KB

app/gui/oven_control/images/favorites/mas_graphe.png

3.16 KB

app/gui/oven_control/images/favorites/mas_graphe_dim.png

3.02 KB

app/gui/oven_control/images/favorites/mas_line.png

2.74 KB

app/gui/oven_control/images/favorites/mas_pin.png

2.83 KB

app/gui/oven_control/images/favorites/mas_symbol.png

3.45 KB

app/gui/oven_control/main.cpp
1 1 #include "mainwindow.h"
2 2 #include "manualcookwindow.h"
3 3 #include "functiontestwindow.h"
  4 +#include "autocookselectionwindow.h"
4 5 #include "udphandler.h"
5 6 #include <QApplication>
6 7  
... ... @@ -11,6 +12,8 @@ int main(int argc, char *argv[])
11 12 MainWindow w;
12 13 w.showFullScreen();
13 14  
  15 +// AutoCookSelectionWindow w;
  16 +// w.showFullScreen();
14 17 // ManualCookWindow w;
15 18 // w.show();
16 19  
... ...
app/gui/oven_control/mainwindow.cpp
... ... @@ -9,6 +9,7 @@
9 9 #include "ovencontroller.h"
10 10 #include "configwindow.h"
11 11 #include "functiontestwindow.h"
  12 +#include "autocookselectionwindow.h"
12 13  
13 14 MainWindow::MainWindow(QWidget *parent) :
14 15 QMainWindow(parent),
... ... @@ -66,3 +67,24 @@ void MainWindow::on_configButton_clicked()
66 67 w->setWindowModality(Qt::WindowModal);
67 68 w->showFullScreen();
68 69 }
  70 +
  71 +void MainWindow::on_poultryButton_clicked()
  72 +{
  73 + AutoCookSelectionWindow *w = new AutoCookSelectionWindow(this, oven, Cook::Poultry);
  74 + w->setWindowModality(Qt::WindowModal);
  75 + w->showFullScreen();
  76 +}
  77 +
  78 +void MainWindow::on_meatButton_clicked()
  79 +{
  80 + AutoCookSelectionWindow *w = new AutoCookSelectionWindow(this, oven, Cook::Meat);
  81 + w->setWindowModality(Qt::WindowModal);
  82 + w->showFullScreen();
  83 +}
  84 +
  85 +void MainWindow::on_breadButton_clicked()
  86 +{
  87 + AutoCookSelectionWindow *w = new AutoCookSelectionWindow(this, oven, Cook::Bread);
  88 + w->setWindowModality(Qt::WindowModal);
  89 + w->showFullScreen();
  90 +}
... ...
app/gui/oven_control/mainwindow.h
... ... @@ -26,6 +26,12 @@ private slots:
26 26  
27 27 void on_configButton_clicked();
28 28  
  29 + void on_poultryButton_clicked();
  30 +
  31 + void on_meatButton_clicked();
  32 +
  33 + void on_breadButton_clicked();
  34 +
29 35 private:
30 36 Ui::MainWindow *ui;
31 37  
... ...
app/gui/oven_control/mainwindow.ui
... ... @@ -1591,6 +1591,71 @@ QPushButton#primeButton:pressed {
1591 1591 <set>Qt::AlignCenter</set>
1592 1592 </property>
1593 1593 </widget>
  1594 + <widget class="QLabel" name="steamLabel_13">
  1595 + <property name="enabled">
  1596 + <bool>true</bool>
  1597 + </property>
  1598 + <property name="geometry">
  1599 + <rect>
  1600 + <x>600</x>
  1601 + <y>1500</y>
  1602 + <width>300</width>
  1603 + <height>100</height>
  1604 + </rect>
  1605 + </property>
  1606 + <property name="palette">
  1607 + <palette>
  1608 + <active>
  1609 + <colorrole role="WindowText">
  1610 + <brush brushstyle="SolidPattern">
  1611 + <color alpha="255">
  1612 + <red>255</red>
  1613 + <green>255</green>
  1614 + <blue>255</blue>
  1615 + </color>
  1616 + </brush>
  1617 + </colorrole>
  1618 + </active>
  1619 + <inactive>
  1620 + <colorrole role="WindowText">
  1621 + <brush brushstyle="SolidPattern">
  1622 + <color alpha="255">
  1623 + <red>255</red>
  1624 + <green>255</green>
  1625 + <blue>255</blue>
  1626 + </color>
  1627 + </brush>
  1628 + </colorrole>
  1629 + </inactive>
  1630 + <disabled>
  1631 + <colorrole role="WindowText">
  1632 + <brush brushstyle="SolidPattern">
  1633 + <color alpha="255">
  1634 + <red>123</red>
  1635 + <green>123</green>
  1636 + <blue>123</blue>
  1637 + </color>
  1638 + </brush>
  1639 + </colorrole>
  1640 + </disabled>
  1641 + </palette>
  1642 + </property>
  1643 + <property name="font">
  1644 + <font>
  1645 + <family>Malgun Gothic</family>
  1646 + <pointsize>10</pointsize>
  1647 + </font>
  1648 + </property>
  1649 + <property name="text">
  1650 + <string>V0.1.1</string>
  1651 + </property>
  1652 + <property name="alignment">
  1653 + <set>Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing</set>
  1654 + </property>
  1655 + <property name="margin">
  1656 + <number>10</number>
  1657 + </property>
  1658 + </widget>
1594 1659 </widget>
1595 1660 </widget>
1596 1661 <layoutdefault spacing="6" margin="11"/>
... ...
app/gui/oven_control/manualcookwindow.cpp
... ... @@ -231,6 +231,7 @@ void ManualCookWindow::onOvenUpdated(Oven *oven)
231 231 bool old;
232 232 old = ui->humiditySlider->blockSignals(true);
233 233 ui->humiditySlider->setValue(oven->humidity());
  234 + ui->humiditySlider->setEnabled(oven->mode() == Oven::CombinationMode);
234 235 ui->humiditySlider->blockSignals(old);
235 236  
236 237 old = ui->tempSlider->blockSignals(true);
... ...
app/gui/oven_control/oven.cpp
... ... @@ -294,7 +294,7 @@ void Oven::startCooking()
294 294 {
295 295 paused_ = false;
296 296  
297   - if (cookingStartable())
  297 + if (!cooking())
298 298 {
299 299 if (preheating())
300 300 stopPreheating();
... ...
app/gui/oven_control/oven_control.pro
... ... @@ -30,7 +30,13 @@ SOURCES += main.cpp\
30 30 valvetestwindow.cpp \
31 31 washtestwindow.cpp \
32 32 fantestwindow.cpp \
33   - gastestwindow.cpp
  33 + gastestwindow.cpp \
  34 + autocookselectionwindow.cpp \
  35 + autocookwindow.cpp \
  36 + animatedimagebox.cpp \
  37 + circulargauge.cpp \
  38 + humiditycirculargauge.cpp \
  39 + heatcirculargauge.cpp
34 40  
35 41 HEADERS += mainwindow.h \
36 42 cook.h \
... ... @@ -49,7 +55,13 @@ HEADERS += mainwindow.h \
49 55 valvetestwindow.h \
50 56 washtestwindow.h \
51 57 fantestwindow.h \
52   - gastestwindow.h
  58 + gastestwindow.h \
  59 + autocookselectionwindow.h \
  60 + autocookwindow.h \
  61 + animatedimagebox.h \
  62 + circulargauge.h \
  63 + humiditycirculargauge.h \
  64 + heatcirculargauge.h
53 65  
54 66 FORMS += mainwindow.ui \
55 67 manualcookwindow.ui \
... ... @@ -61,10 +73,14 @@ FORMS += mainwindow.ui \
61 73 valvetestwindow.ui \
62 74 washtestwindow.ui \
63 75 fantestwindow.ui \
64   - gastestwindow.ui
  76 + gastestwindow.ui \
  77 + autocookselectionwindow.ui \
  78 + autocookwindow.ui
65 79  
66 80 RESOURCES += \
67 81 resources.qrc
68 82  
69 83 target.path = /falinux/dev
70 84 INSTALLS += target
  85 +
  86 +DISTFILES +=
... ...
app/gui/oven_control/ovencontroller.cpp
... ... @@ -78,6 +78,7 @@ void OvenController::stopCooking()
78 78 void OvenController::startPreheating()
79 79 {
80 80 udp->set(TG_OVEN_MODE, 0);
  81 + udp->set(TG_TIME, 1440);
81 82 udp->turnOn(TG_SYSTEM);
82 83 udp->turnOn(TG_PREHEAT);
83 84 }
... ...
app/gui/oven_control/resources.qrc
... ... @@ -421,5 +421,228 @@
421 421 <file>images/config_service/112_profile_hide_menu_13.png</file>
422 422 <file>images/config_service/112_profile_hide_menu_14.png</file>
423 423 <file>images/manual/graphe_BTN_Bigsize.png</file>
  424 + <file>images/auto/001_01_background_under_down.png</file>
  425 + <file>images/auto/005_auto_icon_01.png</file>
  426 + <file>images/auto/005_auto_icon_01_ov.png</file>
  427 + <file>images/auto/005_auto_icon_02.png</file>
  428 + <file>images/auto/005_auto_icon_02_ov.png</file>
  429 + <file>images/auto/005_auto_icon_03.png</file>
  430 + <file>images/auto/005_auto_icon_03_ov.png</file>
  431 + <file>images/auto/005_auto_icon_04.png</file>
  432 + <file>images/auto/005_auto_icon_04_ov.png</file>
  433 + <file>images/auto/005_auto_icon_05.png</file>
  434 + <file>images/auto/005_auto_icon_05_ov.png</file>
  435 + <file>images/auto/005_auto_icon_06.png</file>
  436 + <file>images/auto/005_auto_icon_06_ov.png</file>
  437 + <file>images/auto/005_auto_icon_07.png</file>
  438 + <file>images/auto/005_auto_icon_07_ov.png</file>
  439 + <file>images/auto/005_auto_icon_08.png</file>
  440 + <file>images/auto/005_auto_icon_08_ov.png</file>
  441 + <file>images/auto/005_auto_icon_09.png</file>
  442 + <file>images/auto/005_auto_icon_09_ov.png</file>
  443 + <file>images/auto/005_auto_icon_10.png</file>
  444 + <file>images/auto/005_auto_icon_10_ov.png</file>
  445 + <file>images/auto/005_auto_icon_11.png</file>
  446 + <file>images/auto/005_auto_icon_11_ov.png</file>
  447 + <file>images/auto/006_sys_icon_01.png</file>
  448 + <file>images/auto/006_sys_icon_01_ov.png</file>
  449 + <file>images/auto/006_sys_icon_02.png</file>
  450 + <file>images/auto/006_sys_icon_02_ov.png</file>
  451 + <file>images/auto/006_sys_icon_03.png</file>
  452 + <file>images/auto/006_sys_icon_03_ov.png</file>
  453 + <file>images/auto/006_sys_icon_04.png</file>
  454 + <file>images/auto/006_sys_icon_04_ov.png</file>
  455 + <file>images/auto/006_sys_icon_05.png</file>
  456 + <file>images/auto/006_sys_icon_05_ov.png</file>
  457 + <file>images/auto/006_sys_icon_10.png</file>
  458 + <file>images/auto/006_sys_icon_10_ov.png</file>
  459 + <file>images/auto/006_sys_icon_11.png</file>
  460 + <file>images/auto/006_sys_icon_11_ov.png</file>
  461 + <file>images/auto/006_sys_icon_12.png</file>
  462 + <file>images/auto/006_sys_icon_12_ov.png</file>
  463 + <file>images/auto/006_sys_icon_13.png</file>
  464 + <file>images/auto/006_sys_icon_13_ov.png</file>
  465 + <file>images/auto/006_sys_icon_14.png</file>
  466 + <file>images/auto/006_sys_icon_14_ov.png</file>
  467 + <file>images/auto/006_sys_icon_15.png</file>
  468 + <file>images/auto/006_sys_icon_15_ov.png</file>
  469 + <file>images/auto/006_sys_icon_16.png</file>
  470 + <file>images/auto/006_sys_icon_16_ov.png</file>
  471 + <file>images/auto/ani_01.png</file>
  472 + <file>images/auto/ani_02.png</file>
  473 + <file>images/auto/ani_03.png</file>
  474 + <file>images/auto/ani_04.png</file>
  475 + <file>images/auto/ani_05.png</file>
  476 + <file>images/auto/ani_06.png</file>
  477 + <file>images/auto/ani_07.png</file>
  478 + <file>images/auto/ani_08.png</file>
  479 + <file>images/auto/ani_09.png</file>
  480 + <file>images/auto/ani_a_01.png</file>
  481 + <file>images/auto/ani_a_02.png</file>
  482 + <file>images/auto/ani_b_01.png</file>
  483 + <file>images/auto/ani_b_02.png</file>
  484 + <file>images/auto/ani_b_03.png</file>
  485 + <file>images/auto/ani_b_04.png</file>
  486 + <file>images/auto/ani_c_01.png</file>
  487 + <file>images/auto/ani_c_02.png</file>
  488 + <file>images/auto/ani_c_03.png</file>
  489 + <file>images/auto/ani_c_04.png</file>
  490 + <file>images/auto/ani_d_01.png</file>
  491 + <file>images/auto/ani_d_02.png</file>
  492 + <file>images/auto/ani_frame_a_01.png</file>
  493 + <file>images/auto/ani_frame_a_02.png</file>
  494 + <file>images/auto/ani_frame_a_03.png</file>
  495 + <file>images/auto/ani_frame_a_04.png</file>
  496 + <file>images/auto/ani_frame_b_01.png</file>
  497 + <file>images/auto/ani_frame_b_02.png</file>
  498 + <file>images/auto/ani_frame_b_03.png</file>
  499 + <file>images/auto/ani_frame_c_01.png</file>
  500 + <file>images/auto/ani_frame_c_02.png</file>
  501 + <file>images/auto/ani_frame_c_03.png</file>
  502 + <file>images/auto/ani_frame_c_04.png</file>
  503 + <file>images/auto/ani_frame_d_01.png</file>
  504 + <file>images/auto/ani_frame_d_02.png</file>
  505 + <file>images/auto/ani_frame_d_03.png</file>
  506 + <file>images/auto/ani_frame_d_04.png</file>
  507 + <file>images/auto/ba_ground_a01.png</file>
  508 + <file>images/auto/ba_ground_a02.png</file>
  509 + <file>images/auto/ba_ground_a03.png</file>
  510 + <file>images/auto/ba_ground_set.png</file>
  511 + <file>images/auto/ba_ground_set(full).png</file>
  512 + <file>images/auto/ba_ground_set(full)_01.png</file>
  513 + <file>images/auto/ba_ground_window_popup.png</file>
  514 + <file>images/auto/ba_ground_window_setting.png</file>
  515 + <file>images/auto/bg_ground_time.png</file>
  516 + <file>images/auto/btn_01.png</file>
  517 + <file>images/auto/btn_01_ov.png</file>
  518 + <file>images/auto/btn_02.png</file>
  519 + <file>images/auto/btn_02_ov.png</file>
  520 + <file>images/auto/btn_03.png</file>
  521 + <file>images/auto/btn_03_ov.png</file>
  522 + <file>images/auto/btn_icon_01.png</file>
  523 + <file>images/auto/btn_icon_02.png</file>
  524 + <file>images/auto/btn_icon_03.png</file>
  525 + <file>images/auto/circle_graphe_01.png</file>
  526 + <file>images/auto/circle_graphe_02.png</file>
  527 + <file>images/auto/circle_graphe_03.png</file>
  528 + <file>images/auto/circle_graphe_04.png</file>
  529 + <file>images/auto/circle_graphe_05.png</file>
  530 + <file>images/auto/circle_graphe_06.png</file>
  531 + <file>images/auto/circle_graphe_07.png</file>
  532 + <file>images/auto/gau_01.png</file>
  533 + <file>images/auto/gau_02.png</file>
  534 + <file>images/auto/gau_03.png</file>
  535 + <file>images/auto/gau_04.png</file>
  536 + <file>images/auto/gau_05.png</file>
  537 + <file>images/auto/gau_06.png</file>
  538 + <file>images/auto/gau_07.png</file>
  539 + <file>images/auto/gau_08.png</file>
  540 + <file>images/auto/gau_09.png</file>
  541 + <file>images/auto/gau_icon_01.png</file>
  542 + <file>images/auto/gau_icon_01_ov.png</file>
  543 + <file>images/auto/gau_icon_02.png</file>
  544 + <file>images/auto/gau_icon_02_ov.png</file>
  545 + <file>images/auto/gau_icon_03.png</file>
  546 + <file>images/auto/gau_icon_03_ov.png</file>
  547 + <file>images/auto/gau_icon_04.png</file>
  548 + <file>images/auto/gau_icon_04_ov.png</file>
  549 + <file>images/auto/gau_icon_05.png</file>
  550 + <file>images/auto/gau_icon_05_ov.png</file>
  551 + <file>images/auto/gau_icon_bg.png</file>
  552 + <file>images/auto/graphe_hit_01.png</file>
  553 + <file>images/auto/graphe_hit_02.png</file>
  554 + <file>images/auto/graphe_hit_03.png</file>
  555 + <file>images/auto/graphe_hit_04.png</file>
  556 + <file>images/auto/graphe_hit_05.png</file>
  557 + <file>images/auto/graphe_hit_06.png</file>
  558 + <file>images/auto/option_btn_01.png</file>
  559 + <file>images/auto/option_btn_01_ov.png</file>
  560 + <file>images/auto/option_btn_02.png</file>
  561 + <file>images/auto/option_btn_02_ov.png</file>
  562 + <file>images/auto/option_btn_03.png</file>
  563 + <file>images/auto/option_btn_03_ov.png</file>
  564 + <file>images/auto/option_btn_04.png</file>
  565 + <file>images/auto/option_btn_04_ov.png</file>
  566 + <file>images/auto/option_btn_05.png</file>
  567 + <file>images/auto/option_btn_05_ov.png</file>
  568 + <file>images/auto/option_btn_06.png</file>
  569 + <file>images/auto/option_btn_06_ov_01.png</file>
  570 + <file>images/auto/option_btn_06_ov_02.png</file>
  571 + <file>images/auto/option_btn_07.png</file>
  572 + <file>images/auto/option_btn_07_ov_01.png</file>
  573 + <file>images/auto/option_btn_07_ov_02.png</file>
  574 + <file>images/auto/option_btn_07_ov_03.png</file>
  575 + <file>images/auto/option_btn_08.png</file>
  576 + <file>images/auto/option_btn_08_ov_01.png</file>
  577 + <file>images/auto/option_btn_08_ov_02.png</file>
  578 + <file>images/auto/option_btn_09.png</file>
  579 + <file>images/auto/option_btn_09_ov.png</file>
  580 + <file>images/auto/option_btn_wash_01.png</file>
  581 + <file>images/auto/option_btn_wash_01_ov.png</file>
  582 + <file>images/auto/option_btn_wash_02.png</file>
  583 + <file>images/auto/option_btn_wash_02_ov.png</file>
  584 + <file>images/auto/option_btn_wash_03.png</file>
  585 + <file>images/auto/option_btn_wash_03_ov.png</file>
  586 + <file>images/auto/option_btn_wash_04.png</file>
  587 + <file>images/auto/option_btn_wash_04_ov.png</file>
  588 + <file>images/auto/option_btn_wash_05.png</file>
  589 + <file>images/auto/option_btn_wash_05_ov.png</file>
  590 + <file>images/auto/sys_icon_01.png</file>
  591 + <file>images/auto/sys_icon_02.png</file>
  592 + <file>images/auto/sys_icon_03.png</file>
  593 + <file>images/auto/sys_icon_04.png</file>
  594 + <file>images/auto/sys_icon_05.png</file>
  595 + <file>images/auto/sys_icon_06.png</file>
  596 + <file>images/auto/sys_icon_07.png</file>
  597 + <file>images/auto/sys_icon_08.png</file>
  598 + <file>images/auto/sys_icon_09.png</file>
  599 + <file>images/auto/sys_icon_10.png</file>
  600 + <file>images/auto/sys_icon_11.png</file>
  601 + <file>images/auto/sys_icon_12.png</file>
  602 + <file>images/auto/time_window_01.png</file>
  603 + <file>images/auto/time_window_02.png</file>
  604 + <file>images/auto/time_window_03.png</file>
  605 + <file>images/auto/time_window_04_pin.png</file>
  606 + <file>images/auto/time_window_04_pin_ov.png</file>
  607 + <file>images/auto/window_arrow_01.png</file>
  608 + <file>images/auto/window_arrow_02.png</file>
  609 + <file>images/auto/window_arrow_pin_01.png</file>
  610 + <file>images/auto/window_arrow_pin_02.png</file>
  611 + <file>images/auto/window_icon_01.png</file>
  612 + <file>images/auto/window_icon_02.png</file>
  613 + <file>images/auto/window_icon_03.png</file>
  614 + <file>images/auto/window_icon_03_ov.png</file>
  615 + <file>images/auto/window_icon_04.png</file>
  616 + <file>images/auto/window_icon_05.png</file>
  617 + <file>images/auto/window_icon_06.png</file>
  618 + <file>images/auto/window_icon_07.png</file>
  619 + <file>images/auto/window_icon_07_08_line.png</file>
  620 + <file>images/auto/window_icon_08.png</file>
  621 + <file>images/auto/window_icon_09.png</file>
  622 + <file>images/auto/window_icon_09_ov.png</file>
  623 + <file>images/auto/window_icon_10.png</file>
  624 + <file>images/auto/window_icon_10_ov.png</file>
  625 + <file>images/auto/window_icon_11.png</file>
  626 + <file>images/auto/window_icon_11_ov.png</file>
  627 + <file>images/auto/window_arrow_01_expand.png</file>
  628 + <file>images/auto/window_arrow_02_expand.png</file>
  629 + <file>images/auto/010_icon_block.png</file>
  630 + <file>images/auto/011_icon_01.png</file>
  631 + <file>images/auto/011_icon_01_ov.png</file>
  632 + <file>images/auto/011_icon_02.png</file>
  633 + <file>images/auto/011_icon_02_ov.png</file>
  634 + <file>images/auto/011_icon_03.png</file>
  635 + <file>images/auto/011_icon_03_ov.png</file>
  636 + <file>images/auto/011_icon_04.png</file>
  637 + <file>images/auto/011_icon_04_ov.png</file>
  638 + <file>images/auto/011_icon_04_ov_01.png</file>
  639 + <file>images/auto/cen_mt_icon_01.png</file>
  640 + <file>images/auto/cen_mt_icon_02.png</file>
  641 + <file>images/auto/cen_mt_icon_03.png</file>
  642 + <file>images/auto/cen_mt_icon_block.png</file>
  643 + <file>images/auto/Gau_icon_06.png</file>
  644 + <file>images/auto/Gau_icon_06_ov.png</file>
  645 + <file>images/auto/Gau_icon_07.png</file>
  646 + <file>images/auto/Gau_icon_07_ov.png</file>
424 647 </qresource>
425 648 </RCC>
... ...
app/gui/oven_control/udphandler.cpp
... ... @@ -13,9 +13,9 @@ typedef struct {
13 13  
14 14 UdpHandler::UdpHandler(QObject *parent) : QObject(parent)
15 15 {
16   - printer = new PacketPrinter;
17   - connect(this, SIGNAL(changed()), this, SLOT(printData()));
18   - printer->show();
  16 +// printer = new PacketPrinter;
  17 +// connect(this, SIGNAL(changed()), this, SLOT(printData()));
  18 +// printer->show();
19 19 }
20 20  
21 21 bool UdpHandler::init()
... ...