Commit e3205cf8390b19cf158f490ca125bd243fd1d0b7

Authored by 고영탁
1 parent 097e5e14a0
Exists in master and in 2 other branches fhd, fhd-demo

고객사 요구 사항 반영

 - 데모모드 복구
 - 데모모드 상황시 설정 진입시 비밀번호 요구
app/gui/oven_control/config.cpp
... ... @@ -23,6 +23,7 @@
23 23 #include "udphandler.h"
24 24 #include "system.h"
25 25 #include "unistd.h"
  26 +#include "configdemomodedlg.h"
26 27  
27 28 using namespace Define;
28 29 using namespace System;
... ... @@ -493,6 +494,9 @@ void Config::execConfigWindow(QWidget *parent, Define::ConfigType idx){
493 494 case config_duty_wash:
494 495 dlg = new ConfigDutyWashDlg(parent);
495 496 break;
  497 + case config_demo_mode:
  498 + dlg = new ConfigDemoModeDlg(parent);
  499 + break;
496 500 default:
497 501 dlg=NULL;
498 502 }
... ...
app/gui/oven_control/configdemomodedlg.cpp
... ... @@ -0,0 +1,178 @@
  1 +#include "configdemomodedlg.h"
  2 +#include "ui_configdemomodedlg.h"
  3 +#include "config.h"
  4 +#include "soundplayer.h"
  5 +
  6 +using namespace Define;
  7 +
  8 +ConfigDemoModeDlg::ConfigDemoModeDlg(QWidget *parent) :
  9 + QDialog(parent),
  10 + ui(new Ui::ConfigDemoModeDlg)
  11 +{
  12 + Config* cfg = Config::getInstance();
  13 + config_item item;
  14 + item = cfg->getConfigValue(config_demo_mode);
  15 + m_nCurSel = item.d32;
  16 + ui->setupUi(this);
  17 + this->setWindowFlags( Qt::FramelessWindowHint);
  18 + this->setAttribute( Qt::WA_DeleteOnClose);
  19 + qApp->setActiveWindow(this);
  20 + this->setFocus();
  21 +
  22 + foreach (QPushButton *button, findChildren<QPushButton *>())
  23 + connect(button, &QPushButton::pressed, SoundPlayer::playClick);
  24 +
  25 + ui->pushButton_1->setText(QCoreApplication::translate("Config",on_off_menu[0]));
  26 + ui->pushButton_2->setText(QCoreApplication::translate("Config", on_off_menu[1]));
  27 +
  28 + reloadUi();
  29 +
  30 + m_pSignalMapper = new QSignalMapper(this);
  31 + m_pSignalMapper->setMapping(ui->pushButton_1,0);
  32 + m_pSignalMapper->setMapping(ui->pushButton_2,1);
  33 +
  34 + connect(ui->pushButton_1,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
  35 + connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
  36 +
  37 + connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
  38 +
  39 + m_vectorTabOrder.append(this);
  40 + m_vectorTabOrder.append(ui->pushButton_1);
  41 + m_vectorTabOrder.append(ui->pushButton_2);
  42 + m_vectorTabOrder.append(ui->ctrBtnOk);
  43 + m_vectorTabOrder.append(ui->ctrBtnCancel);
  44 +}
  45 +
  46 +ConfigDemoModeDlg::~ConfigDemoModeDlg()
  47 +{
  48 + delete ui;
  49 +}
  50 +
  51 +void ConfigDemoModeDlg::on_ctrBtnOk_clicked()
  52 +{
  53 + Config* cfg = Config::getInstance();
  54 + config_item item;
  55 + item.d32 = m_nCurSel;
  56 + cfg->setConfigValue(config_demo_mode,item);
  57 + accept();
  58 +}
  59 +
  60 +void ConfigDemoModeDlg::on_ctrBtnCancel_clicked()
  61 +{
  62 + reject();
  63 +}
  64 +
  65 +void ConfigDemoModeDlg::onConfigBtnClicked(const int sel){
  66 + m_nCurSel = sel;
  67 +}
  68 +
  69 +void ConfigDemoModeDlg::reloadUi(){
  70 + switch(m_nCurSel){
  71 + case 0:
  72 + ui->pushButton_1->setChecked(true);
  73 + break;
  74 + case 1:
  75 + ui->pushButton_2->setChecked(true);
  76 + break;
  77 + default:
  78 + break;
  79 + }
  80 +}
  81 +
  82 +void ConfigDemoModeDlg::keyPressEvent(QKeyEvent *event){
  83 + int i = 0;
  84 + switch (event->key())
  85 + {
  86 + case 0x01000030: // Turn left
  87 + for(i = 0; i < m_vectorTabOrder.size();i++){
  88 + if(focusWidget() == m_vectorTabOrder[i]) break;
  89 + }
  90 +
  91 + if(i==0){
  92 + i = m_vectorTabOrder.size()-1;
  93 + m_vectorTabOrder[i]->setFocus();
  94 + }
  95 + else if(i < m_vectorTabOrder.size()) {
  96 + i = i - 1;
  97 + m_vectorTabOrder[i]->setFocus();
  98 + }
  99 + else{
  100 + i=0;
  101 + m_vectorTabOrder[i]->setFocus();
  102 + }
  103 + break;
  104 + case 0x01000031: // Push
  105 +
  106 + break;
  107 + case 0x01000032: // Turn right
  108 + for(i = 0; i < m_vectorTabOrder.size();i++){
  109 + if(focusWidget() == m_vectorTabOrder[i]) break;
  110 + }
  111 +
  112 + if(i<m_vectorTabOrder.size()-1){
  113 + i+=1;
  114 + m_vectorTabOrder[i]->setFocus();
  115 + }
  116 + else if(i== (m_vectorTabOrder.size()-1)){
  117 + i=0;
  118 + m_vectorTabOrder[i]->setFocus();
  119 + }
  120 + else{
  121 + i=0;
  122 + m_vectorTabOrder[i]->setFocus();
  123 + }
  124 + break;
  125 + }
  126 +}
  127 +
  128 +void ConfigDemoModeDlg::keyReleaseEvent(QKeyEvent *event){
  129 + int i = 0;
  130 + switch (event->key())
  131 + {
  132 + case 0x01000030: // Turn left
  133 + for(i = 0; i < m_vectorTabOrder.size();i++){
  134 + if(focusWidget() == m_vectorTabOrder[i]) break;
  135 + }
  136 +
  137 + if(i==0){
  138 + i = m_vectorTabOrder.size()-1;
  139 + m_vectorTabOrder[i]->setFocus();
  140 + }
  141 + else if(i < m_vectorTabOrder.size()) {
  142 + i = i - 1;
  143 + m_vectorTabOrder[i]->setFocus();
  144 + }
  145 + else{
  146 + i=0;
  147 + m_vectorTabOrder[i]->setFocus();
  148 + }
  149 + break;
  150 + case 0x01000031: // Push
  151 + {
  152 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  153 + if(btn != NULL){
  154 + btn->click();
  155 + }
  156 + break;
  157 + }
  158 + case 0x01000032: // Turn right
  159 + for(i = 0; i < m_vectorTabOrder.size();i++){
  160 + if(focusWidget() == m_vectorTabOrder[i]) break;
  161 + }
  162 +
  163 + if(i<m_vectorTabOrder.size()-1){
  164 + i+=1;
  165 + m_vectorTabOrder[i]->setFocus();
  166 + }
  167 + else if(i== (m_vectorTabOrder.size()-1)){
  168 + i=0;
  169 + m_vectorTabOrder[i]->setFocus();
  170 + }
  171 + else{
  172 + i=0;
  173 + m_vectorTabOrder[i]->setFocus();
  174 + }
  175 + break;
  176 + }
  177 +}
  178 +
... ...
app/gui/oven_control/configdemomodedlg.h
... ... @@ -0,0 +1,41 @@
  1 +#ifndef CONFIGDEMOMODEDLG_H
  2 +#define CONFIGDEMOMODEDLG_H
  3 +
  4 +#include <QDialog>
  5 +#include <QSignalMapper>
  6 +#include <QKeyEvent>
  7 +#include <QVector>
  8 +
  9 +namespace Ui {
  10 +class ConfigDemoModeDlg;
  11 +}
  12 +
  13 +class ConfigDemoModeDlg : public QDialog
  14 +{
  15 + Q_OBJECT
  16 +
  17 + void reloadUi(void);
  18 +
  19 +public:
  20 + explicit ConfigDemoModeDlg(QWidget *parent = 0);
  21 + ~ConfigDemoModeDlg();
  22 +
  23 +private slots:
  24 + void on_ctrBtnOk_clicked();
  25 +
  26 + void on_ctrBtnCancel_clicked();
  27 +
  28 + void onConfigBtnClicked(const int sel);
  29 +
  30 +private:
  31 + Ui::ConfigDemoModeDlg *ui;
  32 + QSignalMapper *m_pSignalMapper;
  33 + int m_nCurSel;
  34 + QVector<QWidget*> m_vectorTabOrder;
  35 +
  36 +protected:
  37 + void keyReleaseEvent(QKeyEvent* event);
  38 + void keyPressEvent(QKeyEvent* event);
  39 +};
  40 +
  41 +#endif // CONFIGDEMOMODEDLG_H
... ...
app/gui/oven_control/configdemomodedlg.ui
... ... @@ -0,0 +1,222 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>ConfigDemoModeDlg</class>
  4 + <widget class="QDialog" name="ConfigDemoModeDlg">
  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="autoFillBackground">
  14 + <bool>false</bool>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget{
  18 + background-image : url(:/images/background/popup/503.png);
  19 +}
  20 +
  21 +QPushButton{
  22 + border-color : transparent;
  23 + background-color : transparent;
  24 + color : white;
  25 +}
  26 +
  27 +QPushButton::focus{
  28 + color : yellow;
  29 +}
  30 +
  31 +QPushButton::pressed{
  32 + color : green;
  33 +}
  34 +
  35 +QPushButton::checked{
  36 + color : red;
  37 +}
  38 +
  39 +QLabel{
  40 + color : white;
  41 +}</string>
  42 + </property>
  43 + <widget class="QWidget" name="centralwidget" native="true">
  44 + <property name="geometry">
  45 + <rect>
  46 + <x>0</x>
  47 + <y>450</y>
  48 + <width>900</width>
  49 + <height>362</height>
  50 + </rect>
  51 + </property>
  52 + <property name="minimumSize">
  53 + <size>
  54 + <width>900</width>
  55 + <height>0</height>
  56 + </size>
  57 + </property>
  58 + <layout class="QVBoxLayout" name="verticalLayout_3" stretch="92,0,176,88">
  59 + <item>
  60 + <widget class="QLabel" name="label">
  61 + <property name="font">
  62 + <font>
  63 + <pointsize>18</pointsize>
  64 + <weight>75</weight>
  65 + <bold>true</bold>
  66 + </font>
  67 + </property>
  68 + <property name="styleSheet">
  69 + <string notr="true"/>
  70 + </property>
  71 + <property name="text">
  72 + <string>시연모드</string>
  73 + </property>
  74 + <property name="alignment">
  75 + <set>Qt::AlignCenter</set>
  76 + </property>
  77 + </widget>
  78 + </item>
  79 + <item>
  80 + <widget class="Line" name="line">
  81 + <property name="orientation">
  82 + <enum>Qt::Horizontal</enum>
  83 + </property>
  84 + </widget>
  85 + </item>
  86 + <item>
  87 + <layout class="QVBoxLayout" name="verticalLayout">
  88 + <item>
  89 + <widget class="QPushButton" name="pushButton_1">
  90 + <property name="sizePolicy">
  91 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  92 + <horstretch>0</horstretch>
  93 + <verstretch>0</verstretch>
  94 + </sizepolicy>
  95 + </property>
  96 + <property name="font">
  97 + <font>
  98 + <family>나눔고딕</family>
  99 + <pointsize>16</pointsize>
  100 + </font>
  101 + </property>
  102 + <property name="text">
  103 + <string>PushButton</string>
  104 + </property>
  105 + <property name="checkable">
  106 + <bool>true</bool>
  107 + </property>
  108 + <property name="checked">
  109 + <bool>true</bool>
  110 + </property>
  111 + <property name="autoExclusive">
  112 + <bool>true</bool>
  113 + </property>
  114 + <property name="flat">
  115 + <bool>true</bool>
  116 + </property>
  117 + </widget>
  118 + </item>
  119 + <item>
  120 + <widget class="Line" name="line_2">
  121 + <property name="orientation">
  122 + <enum>Qt::Horizontal</enum>
  123 + </property>
  124 + </widget>
  125 + </item>
  126 + <item>
  127 + <widget class="QPushButton" name="pushButton_2">
  128 + <property name="sizePolicy">
  129 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  130 + <horstretch>0</horstretch>
  131 + <verstretch>0</verstretch>
  132 + </sizepolicy>
  133 + </property>
  134 + <property name="font">
  135 + <font>
  136 + <family>나눔고딕</family>
  137 + <pointsize>16</pointsize>
  138 + </font>
  139 + </property>
  140 + <property name="text">
  141 + <string>PushButton</string>
  142 + </property>
  143 + <property name="checkable">
  144 + <bool>true</bool>
  145 + </property>
  146 + <property name="autoExclusive">
  147 + <bool>true</bool>
  148 + </property>
  149 + <property name="flat">
  150 + <bool>true</bool>
  151 + </property>
  152 + </widget>
  153 + </item>
  154 + <item>
  155 + <widget class="Line" name="line_3">
  156 + <property name="orientation">
  157 + <enum>Qt::Horizontal</enum>
  158 + </property>
  159 + </widget>
  160 + </item>
  161 + </layout>
  162 + </item>
  163 + <item>
  164 + <layout class="QGridLayout" name="gridLayout" columnstretch="1,1,1,1,1,1">
  165 + <item row="0" column="5">
  166 + <widget class="QPushButton" name="ctrBtnCancel">
  167 + <property name="sizePolicy">
  168 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  169 + <horstretch>0</horstretch>
  170 + <verstretch>0</verstretch>
  171 + </sizepolicy>
  172 + </property>
  173 + <property name="font">
  174 + <font>
  175 + <family>나눔고딕</family>
  176 + <pointsize>10</pointsize>
  177 + <weight>75</weight>
  178 + <bold>true</bold>
  179 + <underline>true</underline>
  180 + </font>
  181 + </property>
  182 + <property name="text">
  183 + <string>취소</string>
  184 + </property>
  185 + <property name="flat">
  186 + <bool>true</bool>
  187 + </property>
  188 + </widget>
  189 + </item>
  190 + <item row="0" column="4">
  191 + <widget class="QPushButton" name="ctrBtnOk">
  192 + <property name="sizePolicy">
  193 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  194 + <horstretch>0</horstretch>
  195 + <verstretch>0</verstretch>
  196 + </sizepolicy>
  197 + </property>
  198 + <property name="font">
  199 + <font>
  200 + <family>나눔고딕</family>
  201 + <pointsize>10</pointsize>
  202 + <weight>75</weight>
  203 + <bold>true</bold>
  204 + <underline>true</underline>
  205 + </font>
  206 + </property>
  207 + <property name="text">
  208 + <string>확인</string>
  209 + </property>
  210 + <property name="flat">
  211 + <bool>true</bool>
  212 + </property>
  213 + </widget>
  214 + </item>
  215 + </layout>
  216 + </item>
  217 + </layout>
  218 + </widget>
  219 + </widget>
  220 + <resources/>
  221 + <connections/>
  222 +</ui>
... ...
app/gui/oven_control/configwindow.cpp
... ... @@ -14,6 +14,7 @@
14 14 #include "washwindow.h"
15 15 #include "mainwindow.h"
16 16 #include "configdoormonitoring.h"
  17 +#include "servicepassinputdlg.h"
17 18  
18 19 ConfigWindow::ConfigWindow(QWidget *parent) :
19 20 QMainWindow(parent),
... ... @@ -25,12 +26,16 @@ ConfigWindow::ConfigWindow(QWidget *parent) :
25 26 ui->clockContainer->setParent(ui->upperStack);
26 27 setAttribute(Qt::WA_DeleteOnClose);
27 28  
  29 + Config* cfg = Config::getInstance();
  30 +
  31 +
28 32 ui->scrollAreaMenuLayout->setAlignment(Qt::AlignTop);
29 33  
30 34 foreach (QPushButton *button, findChildren<QPushButton *>())
31 35 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
32 36  
33   - Config* cfg = Config::getInstance();
  37 + config_item item;
  38 +
34 39  
35 40 QSetIterator<uint32_t> itr = cfg->getConstBeginFavorite();
36 41 while(itr.hasNext()) itr.next();
... ... @@ -44,8 +49,38 @@ ConfigWindow::ConfigWindow(QWidget *parent) :
44 49  
45 50 reloadUi();
46 51  
  52 +
  53 + item = cfg->getConfigValue(config_demo_mode);
  54 + if(item.d32!=0){
  55 + QDialog* dlg = new ServicePassInputDlg(this, DEMO_SERVICE_PASS_MODE);
  56 + dlg->setModal(true);
  57 + dlg->showFullScreen();
  58 + dlg->raise();
  59 + connect(dlg, SIGNAL(rejected()), SLOT(close()));
  60 + }
47 61 }
48 62  
  63 +void ConfigWindow::onLoadedWindow(){
  64 + QDialog* dlg = new ServicePassInputDlg(this);
  65 + dlg->exec();
  66 + this->show();
  67 +}
  68 +
  69 +void ConfigWindow::showFullScreen(){
  70 + Config* cfg = Config::getInstance();
  71 + config_item item = cfg->getConfigValue(config_demo_mode);
  72 + if(item.d32){
  73 + //QMainWindow::showFullScreen();
  74 +// QDialog* dlg = new ServicePassInputDlg(this->parentWidget());
  75 +// dlg->exec();
  76 + QMainWindow::showFullScreen();
  77 + }
  78 + else{
  79 + QMainWindow::showFullScreen();
  80 + }
  81 +}
  82 +
  83 +
49 84 ConfigWindow::~ConfigWindow()
50 85 {
51 86 delete ui;
... ... @@ -419,3 +454,4 @@ void ConfigWindow::on_helpButton_clicked()
419 454 {
420 455  
421 456 }
  457 +
... ...
app/gui/oven_control/configwindow.h
... ... @@ -32,7 +32,7 @@ class ConfigWindow : public QMainWindow
32 32  
33 33 private:
34 34 const uint16_t m_arrMaxMenuCount[7] ={
35   - 6,8,8,2,3,0,5
  35 + 6,8,8,2,3,0,6
36 36 };
37 37 const Define::ConfigType m_arrConfigListInfos[7][20] = {
38 38 {config_language,config_datetime, config_temptype,config_backlight, config_time_type,config_resttime_format,},
... ... @@ -41,7 +41,7 @@ private:
41 41 {config_set_half_energy,config_set_auto_darkness,},
42 42 {config_duty_wash,config_loading_door_monitoring,config_cooking_door_monitoring},
43 43 {config_invalid,},
44   - {config_software_info,config_hotline_chef,config_hotline_service,config_steam_wash,config_enter_engineer_mode}
  44 + {config_software_info,config_hotline_chef,config_hotline_service,config_steam_wash,config_demo_mode,config_enter_engineer_mode}
45 45 };
46 46  
47 47 void nextFocus();
... ... @@ -79,6 +79,8 @@ public slots:
79 79 void onConfigBtnClicked(uint16_t id);
80 80 void onConfigCheckBtnClicked(uint16_t id, bool checked);
81 81 void onDeleteFavoriteBtnClicked(uint16_t id);
  82 + void onLoadedWindow(void);
  83 + void showFullScreen();
82 84  
83 85 protected:
84 86 void keyReleaseEvent(QKeyEvent* event);
... ...
app/gui/oven_control/errorpopupdlg.cpp
... ... @@ -30,6 +30,7 @@ ErrorPopupDlg::~ErrorPopupDlg()
30 30 void ErrorPopupDlg::on_ctrlOkBtn_clicked()
31 31 {
32 32 //emit closedPopup(m_pParent);
  33 + qApp->setActiveWindow(m_pParent);
33 34 this->hide();
34 35 close();
35 36 }
... ...
app/gui/oven_control/oven_control.pro
... ... @@ -123,6 +123,8 @@ SOURCES += main.cpp\
123 123 autocookcheckwindow.cpp \
124 124 autocookcheckconfigwindow.cpp \
125 125 programmedcookpanelbutton.cpp
  126 + configdemomodedlg.cpp
  127 +
126 128  
127 129 HEADERS += mainwindow.h \
128 130 cook.h \
... ... @@ -235,6 +237,7 @@ HEADERS += mainwindow.h \
235 237 autocookcheckwindow.h \
236 238 autocookcheckconfigwindow.h \
237 239 programmedcookpanelbutton.h
  240 + configdemomodedlg.h
238 241  
239 242 FORMS += mainwindow.ui \
240 243 manualcookwindow.ui \
... ... @@ -313,6 +316,7 @@ FORMS += mainwindow.ui \
313 316 autocookcheckwindow.ui \
314 317 autocookcheckconfigwindow.ui \
315 318 programmedcookpanelbutton.ui
  319 + configdemomodedlg.ui
316 320  
317 321 RESOURCES += \
318 322 resources.qrc
... ...
app/gui/oven_control/servicepassinputdlg.cpp
... ... @@ -5,7 +5,7 @@
5 5 #include "soundplayer.h"
6 6  
7 7  
8   -ServicePassInputDlg::ServicePassInputDlg(QWidget *parent) :
  8 +ServicePassInputDlg::ServicePassInputDlg(QWidget *parent, service_pass_type mode) :
9 9 QDialog(parent),
10 10 ui(new Ui::ServicePassInputDlg)
11 11 {
... ... @@ -28,6 +28,7 @@ ServicePassInputDlg::ServicePassInputDlg(QWidget *parent) :
28 28 connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()),SLOT(keyCancel_clicked()));
29 29 connect(ui->keyboardwidget,SIGNAL(onKeyboardClickSignal(QString)),SLOT(keyboardInputEvent(QString)));
30 30 ui->keyboardwidget->focusInKeyboard();
  31 + m_nMode = mode;
31 32 }
32 33  
33 34 ServicePassInputDlg::~ServicePassInputDlg()
... ... @@ -37,14 +38,19 @@ ServicePassInputDlg::~ServicePassInputDlg()
37 38  
38 39 void ServicePassInputDlg::on_ctrBtnOk_clicked()
39 40 {
40   - if( QString(m_strInputPass) == QString(PASS_WORD)){
  41 +
  42 + if( QString(m_strInputPass) == QString(NORMAL_PASS_WORD) && m_nMode == NORMAL_SERVICE_PASS_MODE){
41 43 qDebug() << this->parentWidget() <<this->parent();
42 44 EngineerMenuWindow *w = new EngineerMenuWindow(this->parentWidget());
43 45 connect(w,SIGNAL(destroyed(QObject*)),this,SLOT(close()));
44 46 w->setWindowModality(Qt::WindowModal);
45   - w->show();
  47 + w->showFullScreen();
  48 + w->raise();
46 49 this->hide();
47 50 }
  51 + else if(QString(m_strInputPass) == QString(DEMO_PASS_WORD) && m_nMode == DEMO_SERVICE_PASS_MODE){
  52 + accept();
  53 + }
48 54 else {
49 55 reject();
50 56 }
... ...
app/gui/oven_control/servicepassinputdlg.h
... ... @@ -5,13 +5,19 @@
5 5 #include <QKeyEvent>
6 6  
7 7  
8   -#define PASS_WORD "00000000"
  8 +#define NORMAL_PASS_WORD "00000000"
  9 +#define DEMO_PASS_WORD "11111111"
9 10 #define MAX_PASSWORD 8
10 11  
11 12 namespace Ui {
12 13 class ServicePassInputDlg;
13 14 }
14 15  
  16 +enum service_pass_type{
  17 + NORMAL_SERVICE_PASS_MODE = 0,
  18 + DEMO_SERVICE_PASS_MODE=1
  19 +};
  20 +
15 21 class ServicePassInputDlg : public QDialog
16 22 {
17 23 Q_OBJECT
... ... @@ -21,7 +27,7 @@ class ServicePassInputDlg : public QDialog
21 27 QChar m_strInputPass[MAX_PASSWORD+1];
22 28  
23 29 public:
24   - explicit ServicePassInputDlg(QWidget *parent = 0);
  30 + explicit ServicePassInputDlg(QWidget *parent = 0, service_pass_type mode = NORMAL_SERVICE_PASS_MODE );
25 31 ~ServicePassInputDlg();
26 32  
27 33 private slots:
... ... @@ -42,6 +48,7 @@ protected:
42 48 private:
43 49 Ui::ServicePassInputDlg *ui;
44 50 int m_nCurInputCount;
  51 + service_pass_type m_nMode;
45 52 };
46 53  
47 54 #endif // SERVICEPASSINPUTDLG_H
... ...