From 93740918678bd050c5076f69754c06a3ff0a368c Mon Sep 17 00:00:00 2001
From: byloveletter <byloveletter@falinux.com>
Date: Tue, 16 May 2017 16:47:27 +0900
Subject: [PATCH] =?UTF-8?q?config=20enum=20=EC=84=A4=EC=A0=95=20=EC=A7=84?=
 =?UTF-8?q?=ED=96=89=20=EC=A4=91=20=EC=9A=94=EC=B2=AD=EC=9C=BC=EB=A1=9C=20?=
 =?UTF-8?q?=ED=91=B8=EC=8B=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/gui/oven_control/adjustmentwindow.cpp          |   2 +-
 app/gui/oven_control/config.cpp                    |  26 ++++-
 app/gui/oven_control/config.h                      |  66 ++++++++++--
 app/gui/oven_control/configsoundselelectdlg.cpp    | 103 ++++++++++++++++--
 app/gui/oven_control/configsoundselelectdlg.h      |   7 +-
 app/gui/oven_control/configsoundselelectdlg.ui     |  24 +++--
 app/gui/oven_control/configwindow.cpp              |  31 ++++--
 app/gui/oven_control/configwindow.h                |   9 +-
 .../oven_control/images/config/102_usb_icon.png    | Bin 0 -> 1851 bytes
 app/gui/oven_control/oven_control.pro              |   9 +-
 app/gui/oven_control/resources.qrc                 |   1 +
 app/gui/oven_control/usbcheckpopupdlg.cpp          |  14 +++
 app/gui/oven_control/usbcheckpopupdlg.h            |  22 ++++
 app/gui/oven_control/usbcheckpopupdlg.ui           | 118 +++++++++++++++++++++
 app/gui/oven_control/yesnopopupdlg.cpp             |  10 +-
 app/gui/oven_control/yesnopopupdlg.ui              |  13 ++-
 16 files changed, 406 insertions(+), 49 deletions(-)
 create mode 100644 app/gui/oven_control/images/config/102_usb_icon.png
 create mode 100644 app/gui/oven_control/usbcheckpopupdlg.cpp
 create mode 100644 app/gui/oven_control/usbcheckpopupdlg.h
 create mode 100644 app/gui/oven_control/usbcheckpopupdlg.ui

diff --git a/app/gui/oven_control/adjustmentwindow.cpp b/app/gui/oven_control/adjustmentwindow.cpp
index ec8e8a0..c63378c 100644
--- a/app/gui/oven_control/adjustmentwindow.cpp
+++ b/app/gui/oven_control/adjustmentwindow.cpp
@@ -21,7 +21,7 @@ AdjustmentWindow::~AdjustmentWindow()
 void AdjustmentWindow::on_btnAdjust_clicked()
 {
     YesNoPopupDlg* w = new YesNoPopupDlg(this,tr("모든 설정 값을 공장(출고)초기화\n값으로 변경 하시겠습니까?"));
-    w->raise();
+    //w->raise();
     int dlgrst = w->exec();
     dlgrst = w->result();
     if(dlgrst == QDialog::Accepted) {
diff --git a/app/gui/oven_control/config.cpp b/app/gui/oven_control/config.cpp
index 2a419cb..0609774 100644
--- a/app/gui/oven_control/config.cpp
+++ b/app/gui/oven_control/config.cpp
@@ -8,6 +8,8 @@
 #include "configtimeformatdlg.h"
 #include "configresttimeformatdlg.h"
 #include "configmastervolumedlg.h"
+#include "configsoundselelectdlg.h"
+#include "yesnopopupdlg.h"
 
 using namespace Define;
 
@@ -73,6 +75,9 @@ QString Config::getValueString(Define::ConfigType idx){
             break;
         case 2:
             qstrTemp = tr(config_format[(uint32_t)idx]);
+        case 3:
+            qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].d32+1);
+            break;
         }
         return qstrTemp;
     }
@@ -109,6 +114,9 @@ QString Config::getValueString(Define::ConfigType idx){
         if(configlist.items.resttime_format.d32 >=2) configlist.items.resttime_format.d32 = 0;
         qstrTemp = tr(rest_time_type_menu[configlist.items.resttime_format.d32]);
         break;
+    case config_ip:
+        qstrTemp.sprintf("%3d.%3d.%3d.%3d", configlist.items.ip.d8.d8_0,configlist.items.ip.d8.d8_1,configlist.items.ip.d8.d8_2,configlist.items.ip.d8.d8_3);
+        break;
     default:
         break;
     }
@@ -188,11 +196,27 @@ void Config::execConfigWindow(QWidget *parent, Define::ConfigType idx){
     case config_marster_vol:
         dlg = new ConfigMasterVolumeDlg(parent);
         break;
+    case config_keypad_sound1:
+    case config_keypad_sound2:
+    case config_request_loadexec:
+    case config_programstep_finish:
+    case config_cooktime_finish:
+    case config_stoperror_distinguish:
+        dlg = new ConfigSoundSelelectDlg(parent,idx);
+        break;
+     case config_sound_factory_reset:
+        dlg = new YesNoPopupDlg(parent, tr("모든 음향설정 값을 공장초기화\r하시겠습니까?"));
+        break;
     }
-    dlg->setWindowModality(Qt::ApplicationModal);
+    if(dlg == NULL) return;
+    dlg->setWindowModality(Qt::WindowModal);
     dlg->exec();
     if(dlg->result() == QDialog::Accepted){
         qDebug()<<"Accepted";
+        if(idx == config_sound_factory_reset){
+            //Sound Fatory Reset
+            qDebug() << "Process Sound Config Reset";
+        }
     }
     else{
         qDebug() << "rejected";
diff --git a/app/gui/oven_control/config.h b/app/gui/oven_control/config.h
index 625723d..34911b4 100644
--- a/app/gui/oven_control/config.h
+++ b/app/gui/oven_control/config.h
@@ -8,7 +8,7 @@
 #define STRUCT_PACK     __attribute__ ((packed))
 
 
-#define MAX_CONFIG_COUNT 21
+#define MAX_CONFIG_COUNT 32
 
 namespace Define
 {
@@ -34,6 +34,17 @@ namespace Define
         config_cooktime_finish,
         config_stoperror_distinguish,
         config_sound_factory_reset,
+        config_haccp_data_download,
+        config_info_data_download,
+        config_service_data_download,
+        config_program_download,
+        config_program_upload,
+        config_program_initialize,
+        config_ip,
+        config_gateway,
+        config_netmask,
+        config_set_download,
+        config_set_upload,
         config_invalid = 65535
     };
 
@@ -73,6 +84,17 @@ namespace Define
             config_item cooktime_finish;
             config_item stoperror_distinguish;
             config_item sound_factory_reset;
+            config_item haccp_data_download;
+            config_item info_data_download;
+            config_item service_data_download;
+            config_item program_download;
+            config_item program_upload;
+            config_item program_initialize;
+            config_item ip;
+            config_item gateway;
+            config_item netmask;
+            config_item set_download;
+            config_item set_upload;
         }items;
     }STRUCT_PACK config_lists;
 
@@ -87,6 +109,11 @@ namespace Define
         "am/pm\0"
     };
 
+    enum temp_type{
+        temp_type_c=0,
+        temp_type_f,
+    };
+
     const char temptype_menu[2][16]{
          "섭씨(℃)\0",
         "화씨(℉)\0"
@@ -99,7 +126,10 @@ namespace Define
         "1100g"
     };
 
-
+    enum rest_time_type{
+        rest_time_rest=0,
+        rest_time_target
+    };
 
     const char rest_time_type_menu[2][16] = {
          "잔여시간\0",
@@ -129,10 +159,12 @@ class Config : public QObject
     * 0 = int
     * 1 = float
     * 2 = only String,
+    * 3 = int +1
     */
    const uint8_t config_data_type[MAX_CONFIG_COUNT] = {
         0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80,  //Settings
-        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
+        0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02,
+        0x02, 0x02, 0x02,0x02, 0x02,0x02, 0x80, 0x80, 0x80, 0x02, 0x02
     };
 
     const char config_format_kr[MAX_CONFIG_COUNT][64]={
@@ -156,7 +188,18 @@ class Config : public QObject
         "%d번",
         "%d번",
         "%d번",
-        "공장초기화"
+        "공장초기화",
+        "USB 삽입",       //config_haccp_data_download,
+        "USB 삽입",       //config_info_data_download,
+        "USB 삽입",       //config_service_data_download,
+        "USB 삽입",       //config_program_download,
+        "USB 삽입",       //config_program_upload,
+        "초기화",           //config_program_initialize,
+        "%d.%d.%d.%d", //config_ip,
+        "%d.%d.%d.%d", //config_gateway,
+        "%d.%d.%d.%d", //config_netmask,
+        "USB 삽입",       //config_set_download,
+        "USB 삽입",       //config_set_upload,
     };
 
 
@@ -179,11 +222,22 @@ class Config : public QObject
         "마스터 볼륨", //13
         "키패드 소리 - 1",
         "키패드 소리 - 2 ", //15
-        "프로그램 단계 종료",
         "적재/실행 요청",
+        "프로그램 단계 종료",
         "조리시간 종료",
         "과정 중단/오류 식별", //19
-        "음향설정 초기화" //20
+        "음향설정 초기화", //20
+        "HACCP 데이터 다운로드",     //config_haccp_data_download,
+        "인포 데이터 다운로드",          //config_info_data_download,
+        "서비스 데이터 다운로드",       //config_service_data_download,
+        "프로그램 다운로드",               //config_program_download,
+        "프로그램 업로드",                  //25 config_program_upload,
+        "모든 프로그램 삭제",              //config_program_initialize,
+        "IP 주소",                                //config_ip,
+        "IP 게이트웨이",                      //config_gateway,
+        "IP 넷마스크",                         //config_netmask,
+        "기본설정 다운로드",               //30 config_set_download,
+        "기본설정 업로드",                  //31 end of system config config_set_upload,
     };
 
     QSet<uint32_t> m_setFavorite;
diff --git a/app/gui/oven_control/configsoundselelectdlg.cpp b/app/gui/oven_control/configsoundselelectdlg.cpp
index 09d72d7..26d0611 100644
--- a/app/gui/oven_control/configsoundselelectdlg.cpp
+++ b/app/gui/oven_control/configsoundselelectdlg.cpp
@@ -1,23 +1,74 @@
+#include <QDebug>
 #include "configsoundselelectdlg.h"
 #include "ui_configsoundselelectdlg.h"
 
+
 ConfigSoundSelelectDlg::ConfigSoundSelelectDlg(QWidget *parent, ConfigType cfgtype) :
     QDialog(parent),
     ui(new Ui::ConfigSoundSelelectDlg)
 {
+    QString strTemp;
     Config* cfg = Config::getInstance();
     config_item item;
     ui->setupUi(this);
+    setWindowFlags(Qt::Widget | Qt::FramelessWindowHint);
+    setAttribute(Qt::WA_NoSystemBackground);
+    setAttribute(Qt::WA_TranslucentBackground);
+    setAttribute(Qt::WA_PaintOnScreen);
 
-    switch(cfgtype){
+    this->setAttribute( Qt::WA_DeleteOnClose);
+
+
+    m_nCfgType = cfgtype;
+
+    ui->pushButton_1->setText(tr("Media 01"));
+    ui->pushButton_2->setText(tr("Media 02"));
+    ui->pushButton_3->setText(tr("Media 03"));
+    ui->pushButton_4->setText(tr("Media 04"));
+    ui->pushButton_5->setText(tr("Media 05"));
+    ui->pushButton_6->setText(tr("Media 06"));
+    ui->pushButton_7->setText(tr("Media 07"));
+    ui->pushButton_8->setText(tr("Media 08"));
+    ui->pushButton_9->setText(tr("Media 09"));
+    ui->pushButton_10->setText(tr("Media 10"));
+
+    strTemp = cfg->getTitleString(cfgtype);
+
+    ui->ctrLbTitle->setText(strTemp);
+
+
+    item = cfg->getConfigValue(cfgtype);
+
+   m_nCurSel = item.d32;
+   qDebug() << "m_nCurSel is " << m_nCurSel;
 
-    case config_keypad_sound1:
-    default:
-        item = cfg->getConfigValue(cfgtype);
-        break;
-    }
-    m_nCurSel = item.d32;
     reloadUi();
+
+    m_pSignalMapper = new QSignalMapper(this);
+    m_pSignalMapper->setMapping(ui->pushButton_1,0);
+    m_pSignalMapper->setMapping(ui->pushButton_2,1);
+    m_pSignalMapper->setMapping(ui->pushButton_3,2);
+    m_pSignalMapper->setMapping(ui->pushButton_4,3);
+    m_pSignalMapper->setMapping(ui->pushButton_5,4);
+    m_pSignalMapper->setMapping(ui->pushButton_6,5);
+    m_pSignalMapper->setMapping(ui->pushButton_7,6);
+    m_pSignalMapper->setMapping(ui->pushButton_8,7);
+    m_pSignalMapper->setMapping(ui->pushButton_9,8);
+    m_pSignalMapper->setMapping(ui->pushButton_10,9);
+
+
+    connect(ui->pushButton_1,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_3,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_4,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_5,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_6,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_7,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_8,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_9,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+    connect(ui->pushButton_10,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
+
+    connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
 }
 
 ConfigSoundSelelectDlg::~ConfigSoundSelelectDlg()
@@ -27,6 +78,11 @@ ConfigSoundSelelectDlg::~ConfigSoundSelelectDlg()
 
 void ConfigSoundSelelectDlg::on_ctrBtnOk_clicked()
 {
+    Config* cfg = Config::getInstance();
+    config_item item;
+    item.d32 = m_nCurSel;
+    qDebug() << item.d32 << "cur sel  " << m_nCurSel;
+    cfg->setConfigValue(m_nCfgType,item);
     accept();
 }
 
@@ -37,7 +93,40 @@ void ConfigSoundSelelectDlg::on_ctrBtnCancel_clicked()
 
 void ConfigSoundSelelectDlg::reloadUi(){
     switch(m_nCurSel){
+    case 1:
+        ui->pushButton_2->setChecked(true);
+        break;
+    case 2:
+        ui->pushButton_3->setChecked(true);
+        break;
+    case 3:
+        ui->pushButton_4->setChecked(true);
+        break;
+    case 4:
+        ui->pushButton_5->setChecked(true);
+        break;
+    case 5:
+        ui->pushButton_6->setChecked(true);
+        break;
+    case 6:
+        ui->pushButton_7->setChecked(true);
+        break;
+    case 7:
+        ui->pushButton_8->setChecked(true);
+        break;
+    case 8:
+        ui->pushButton_9->setChecked(true);
+        break;
+    case 9:
+        ui->pushButton_10->setChecked(true);
+        break;
     case 0:
+    default:
+        ui->pushButton_1->setChecked(true);
         break;
     }
 }
+
+void ConfigSoundSelelectDlg::onConfigBtnClicked(const int sel){
+    m_nCurSel = sel;
+}
diff --git a/app/gui/oven_control/configsoundselelectdlg.h b/app/gui/oven_control/configsoundselelectdlg.h
index 28370ee..4bbc121 100644
--- a/app/gui/oven_control/configsoundselelectdlg.h
+++ b/app/gui/oven_control/configsoundselelectdlg.h
@@ -26,9 +26,14 @@ private slots:
 
     void on_ctrBtnCancel_clicked();
 
+public slots:
+    void onConfigBtnClicked(const int sel);
+
 private:
     Ui::ConfigSoundSelelectDlg *ui;
-    int m_nCurSel;
+    QSignalMapper *m_pSignalMapper;
+    ConfigType m_nCfgType;
+    uint32_t m_nCurSel;
 };
 
 #endif // CONFIGSOUNDSELELECTDLG_H
diff --git a/app/gui/oven_control/configsoundselelectdlg.ui b/app/gui/oven_control/configsoundselelectdlg.ui
index 0e2adad..7efe246 100644
--- a/app/gui/oven_control/configsoundselelectdlg.ui
+++ b/app/gui/oven_control/configsoundselelectdlg.ui
@@ -17,7 +17,11 @@
    <bool>false</bool>
   </property>
   <property name="styleSheet">
-   <string notr="true">#centralwidget{
+   <string notr="true">#ConfigSoundSelelectDlg{
+	background-color: transparent;
+}
+
+#centralwidget{
        background-image : url(:/images/background/popup/503.png);
 }
 
@@ -175,7 +179,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -224,7 +228,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -273,7 +277,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -322,7 +326,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -371,7 +375,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -420,7 +424,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -469,7 +473,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -518,7 +522,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
@@ -567,7 +571,7 @@ QLabel{
          <bool>true</bool>
         </property>
         <property name="checked">
-         <bool>true</bool>
+         <bool>false</bool>
         </property>
         <property name="autoExclusive">
          <bool>true</bool>
diff --git a/app/gui/oven_control/configwindow.cpp b/app/gui/oven_control/configwindow.cpp
index ac310a5..ca49f62 100644
--- a/app/gui/oven_control/configwindow.cpp
+++ b/app/gui/oven_control/configwindow.cpp
@@ -20,15 +20,6 @@ ConfigWindow::ConfigWindow(QWidget *parent) :
 
     ui->scrollAreaMenuLayout->setAlignment(Qt::AlignTop);
 
-    ConfigPanelButton *configbtn;
-//    for(int i = 0;i <20;i++){
-//        configbtn = new ConfigPanelButton(this,i);
-//        configbtn->showFavoriteButton();
-//        configbtn->setText("TEST");
-//        configbtn->setValue("test");
-//        ui->scrollAreaMenuLayout->addWidget(configbtn);
-//        connect(configbtn,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t)));
-//    }
     Config* cfg = Config::getInstance();
 
     QSetIterator<uint32_t> itr = cfg->getConstBeginFavorite();
@@ -75,10 +66,20 @@ void ConfigWindow::on_pushButton_8_clicked() //설정 버튼
     }
 }
 
+void ConfigWindow::reloadValue(){
+    Config* cfg = Config::getInstance();
+    QString strtemp="";
+    for(int i=0;i<m_vectorMenuList.count();i++){
+        strtemp = cfg->getValueString(m_arrConfigListInfos[m_nCurConfigPos][i]);
+        m_vectorMenuList[i]->setValue(strtemp);
+    }
+}
+
 void ConfigWindow::onConfigBtnClicked(uint16_t id){
     qDebug() << "config id prsess : " << id;
     Config *cfg = Config::getInstance();
     cfg->execConfigWindow(this,(Define::ConfigType)id);
+    reloadValue();
 }
 
 
@@ -87,8 +88,8 @@ void ConfigWindow::onConfigCheckBtnClicked(uint16_t id, bool checked){
 }
 
 void ConfigWindow::reloadUi(void){
-    QWidget** pws = m_vectorMenuList.data();
-    QWidget* pw;
+    ConfigPanelButton** pws = m_vectorMenuList.data();
+    ConfigPanelButton* pw;
     ConfigPanelButton *pcb;
     Config* cfg = Config::getInstance();
     QString strtemp="";
@@ -126,3 +127,11 @@ void ConfigWindow::on_pushButton_7_clicked() //음향 관리
         reloadUi();
     }
 }
+
+void ConfigWindow::on_pushButton_2_clicked()
+{
+    if(m_nCurConfigPos != config_menu_system){
+        m_nCurConfigPos = config_menu_system;
+        reloadUi();
+    }
+}
diff --git a/app/gui/oven_control/configwindow.h b/app/gui/oven_control/configwindow.h
index 2779cdc..480d95a 100644
--- a/app/gui/oven_control/configwindow.h
+++ b/app/gui/oven_control/configwindow.h
@@ -31,18 +31,19 @@ class ConfigWindow : public QMainWindow
 
 private:
     const uint16_t m_arrMaxMenuCount[7] ={
-        5,8,0,
+        5,8,8,
     };
    const Define::ConfigType m_arrConfigListInfos[7][20] = {
        {config_datetime, config_temptype,config_backlight, config_time_type,config_resttime_format,},
        {config_marster_vol,config_keypad_sound1,config_keypad_sound2,config_request_loadexec,config_programstep_finish,config_cooktime_finish,config_stoperror_distinguish,config_sound_factory_reset},
-       {config_invalid,},
+       {config_info_data_download,config_service_data_download,config_program_download,config_program_upload,config_program_initialize ,config_ip,config_set_download,config_set_upload},
        {config_invalid,},
        {config_invalid,},
        {config_invalid,},
        {config_invalid,}
    };
    void reloadUi(void);
+   void reloadValue(void);
 
 public:
     explicit ConfigWindow(QWidget *parent = 0);
@@ -60,13 +61,15 @@ private slots:
 
     void on_pushButton_7_clicked();
 
+    void on_pushButton_2_clicked();
+
 public slots:
     void onConfigBtnClicked(uint16_t id);
     void onConfigCheckBtnClicked(uint16_t id, bool checked);
 
 private:
     Ui::ConfigWindow *ui;
-    QVector<QWidget *> m_vectorMenuList;
+    QVector<ConfigPanelButton *> m_vectorMenuList;
     CONFIG_MENU_POS m_nCurConfigPos;
 };
 
diff --git a/app/gui/oven_control/images/config/102_usb_icon.png b/app/gui/oven_control/images/config/102_usb_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..913baadd1b68205869c73d3bb9e32bbc3f562b33
GIT binary patch
literal 1851
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

literal 0
HcmV?d00001

diff --git a/app/gui/oven_control/oven_control.pro b/app/gui/oven_control/oven_control.pro
index 26bf5d6..3d6d79f 100644
--- a/app/gui/oven_control/oven_control.pro
+++ b/app/gui/oven_control/oven_control.pro
@@ -84,7 +84,8 @@ SOURCES += main.cpp\
     manualcooksettingwidget.cpp \
     autocooksettingwidget.cpp \
     favoritenamepopup.cpp \
-    confirmpopup.cpp
+    confirmpopup.cpp \
+    usbcheckpopupdlg.cpp
 
 HEADERS  += mainwindow.h \
     cook.h \
@@ -158,7 +159,8 @@ HEADERS  += mainwindow.h \
     manualcooksettingwidget.h \
     autocooksettingwidget.h \
     favoritenamepopup.h \
-    confirmpopup.h
+    confirmpopup.h \
+    usbcheckpopupdlg.h
 
 FORMS    += mainwindow.ui \
     manualcookwindow.ui \
@@ -208,7 +210,8 @@ FORMS    += mainwindow.ui \
     manualcooksettingwidget.ui \
     autocooksettingwidget.ui \
     favoritenamepopup.ui \
-    confirmpopup.ui
+    confirmpopup.ui \
+    usbcheckpopupdlg.ui
 
 RESOURCES += \
     resources.qrc
diff --git a/app/gui/oven_control/resources.qrc b/app/gui/oven_control/resources.qrc
index 536ad04..ade7336 100644
--- a/app/gui/oven_control/resources.qrc
+++ b/app/gui/oven_control/resources.qrc
@@ -532,5 +532,6 @@
         <file>images/config/101_br_icon_04.png</file>
         <file>images/config/102_icon_play_ov.png</file>
         <file>images/config/102_icon_play.png</file>
+        <file>images/config/102_usb_icon.png</file>
     </qresource>
 </RCC>
diff --git a/app/gui/oven_control/usbcheckpopupdlg.cpp b/app/gui/oven_control/usbcheckpopupdlg.cpp
new file mode 100644
index 0000000..42e4b24
--- /dev/null
+++ b/app/gui/oven_control/usbcheckpopupdlg.cpp
@@ -0,0 +1,14 @@
+#include "usbcheckpopupdlg.h"
+#include "ui_usbcheckpopupdlg.h"
+
+UsbCheckPopupDlg::UsbCheckPopupDlg(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::UsbCheckPopupDlg)
+{
+    ui->setupUi(this);
+}
+
+UsbCheckPopupDlg::~UsbCheckPopupDlg()
+{
+    delete ui;
+}
diff --git a/app/gui/oven_control/usbcheckpopupdlg.h b/app/gui/oven_control/usbcheckpopupdlg.h
new file mode 100644
index 0000000..60e543c
--- /dev/null
+++ b/app/gui/oven_control/usbcheckpopupdlg.h
@@ -0,0 +1,22 @@
+#ifndef USBCHECKPOPUPDLG_H
+#define USBCHECKPOPUPDLG_H
+
+#include <QDialog>
+
+namespace Ui {
+class UsbCheckPopupDlg;
+}
+
+class UsbCheckPopupDlg : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit UsbCheckPopupDlg(QWidget *parent = 0);
+    ~UsbCheckPopupDlg();
+
+private:
+    Ui::UsbCheckPopupDlg *ui;
+};
+
+#endif // USBCHECKPOPUPDLG_H
diff --git a/app/gui/oven_control/usbcheckpopupdlg.ui b/app/gui/oven_control/usbcheckpopupdlg.ui
new file mode 100644
index 0000000..7add1a8
--- /dev/null
+++ b/app/gui/oven_control/usbcheckpopupdlg.ui
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>UsbCheckPopupDlg</class>
+ <widget class="QDialog" name="UsbCheckPopupDlg">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>900</width>
+    <height>1600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <property name="windowOpacity">
+   <double>1.000000000000000</double>
+  </property>
+  <property name="styleSheet">
+   <string notr="true">#centralWidget { background-image: url(:/images/background/popup/503.png);
+}
+</string>
+  </property>
+  <property name="modal">
+   <bool>true</bool>
+  </property>
+  <widget class="QWidget" name="centralWidget" native="true">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>420</y>
+     <width>900</width>
+     <height>503</height>
+    </rect>
+   </property>
+   <property name="styleSheet">
+    <string notr="true"/>
+   </property>
+   <widget class="QPushButton" name="ctrBtnYes">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>362</y>
+      <width>900</width>
+      <height>141</height>
+     </rect>
+    </property>
+    <property name="font">
+     <font>
+      <pointsize>15</pointsize>
+      <weight>75</weight>
+      <bold>true</bold>
+      <underline>true</underline>
+     </font>
+    </property>
+    <property name="styleSheet">
+     <string notr="true">QPushButton{
+border : none;
+color : white;
+}
+QPushButton::pressed {color : yellow}</string>
+    </property>
+    <property name="text">
+     <string>확인</string>
+    </property>
+   </widget>
+   <widget class="QLabel" name="label">
+    <property name="geometry">
+     <rect>
+      <x>390</x>
+      <y>80</y>
+      <width>93</width>
+      <height>92</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string/>
+    </property>
+    <property name="pixmap">
+     <pixmap resource="resources.qrc">:/images/config/102_usb_icon.png</pixmap>
+    </property>
+   </widget>
+   <widget class="QLabel" name="ctrLbDesc">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>170</y>
+      <width>900</width>
+      <height>201</height>
+     </rect>
+    </property>
+    <property name="font">
+     <font>
+      <family>나눔고딕</family>
+      <pointsize>15</pointsize>
+     </font>
+    </property>
+    <property name="styleSheet">
+     <string notr="true">QLabel {
+        color : white;
+   border : none;
+}</string>
+    </property>
+    <property name="text">
+     <string>제품에 USB가 삽입되어 있지 않습니다.
+USB를 삽입해 주세요!</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignCenter</set>
+    </property>
+   </widget>
+  </widget>
+ </widget>
+ <resources>
+  <include location="resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/app/gui/oven_control/yesnopopupdlg.cpp b/app/gui/oven_control/yesnopopupdlg.cpp
index 05ea5a6..b939357 100644
--- a/app/gui/oven_control/yesnopopupdlg.cpp
+++ b/app/gui/oven_control/yesnopopupdlg.cpp
@@ -6,12 +6,17 @@ YesNoPopupDlg::YesNoPopupDlg(QWidget *parent, QString strDesc) :
     ui(new Ui::YesNoPopupDlg)
 {
     ui->setupUi(this);
-    this->setAttribute( Qt::WA_TranslucentBackground);
     this->setAttribute( Qt::WA_DeleteOnClose);
-    this->setWindowFlags(Qt::FramelessWindowHint);
+    setWindowFlags(Qt::FramelessWindowHint);
+    setAttribute(Qt::WA_NoSystemBackground);
+    setAttribute(Qt::WA_TranslucentBackground);
+    //setAttribute(Qt::WA_PaintOnScreen);
+
+
 
     ui->ctrLbDesc->setText(strDesc);
 
+    //this->setAttribute( Qt::WA_DeleteOnClose);
 }
 
 YesNoPopupDlg::~YesNoPopupDlg()
@@ -28,5 +33,4 @@ void YesNoPopupDlg::on_ctrBtnYes_clicked()
 void YesNoPopupDlg::on_ctrBtnNo_clicked()
 {
     this->reject();
-
 }
diff --git a/app/gui/oven_control/yesnopopupdlg.ui b/app/gui/oven_control/yesnopopupdlg.ui
index 09a7038..89cee75 100644
--- a/app/gui/oven_control/yesnopopupdlg.ui
+++ b/app/gui/oven_control/yesnopopupdlg.ui
@@ -7,21 +7,28 @@
     <x>0</x>
     <y>0</y>
     <width>900</width>
-    <height>503</height>
+    <height>1600</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Dialog</string>
   </property>
+  <property name="windowOpacity">
+   <double>1.000000000000000</double>
+  </property>
   <property name="styleSheet">
    <string notr="true">#centralWidget { background-image: url(:/images/background/popup/503.png); 
-}</string>
+}
+</string>
+  </property>
+  <property name="modal">
+   <bool>true</bool>
   </property>
   <widget class="QWidget" name="centralWidget" native="true">
    <property name="geometry">
     <rect>
      <x>0</x>
-     <y>0</y>
+     <y>420</y>
      <width>900</width>
      <height>503</height>
     </rect>
-- 
2.1.4