Commit 003971acb6ccd8d9bc2b05eccf006ef8c9aa15ed

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

에러 발생시 패스워드 인풋 윈도우 및 엔지니어링 윈도우 중복 실행 방지

app/gui/oven_control/configwindow.cpp
... ... @@ -47,7 +47,7 @@ ConfigWindow::ConfigWindow(QWidget *parent) :
47 47 dlg->setModal(true);
48 48 dlg->showFullScreen();
49 49 dlg->raise();
50   - connect(dlg, SIGNAL(rejected()), SLOT(close()));
  50 + connect(dlg, SIGNAL(rejected()), SLOT(deleteLater()));
51 51 }
52 52 }
53 53  
... ...
app/gui/oven_control/ovenstatics.cpp
... ... @@ -47,6 +47,7 @@ OvenStatistics::OvenStatistics(QObject* parent) :QObject(parent)
47 47 realdata.d32 = 0;
48 48 m_bPopupShow = false;
49 49 m_nLastPopupidx = MAX_ERROR_TYPE_CNT;
  50 + m_wndSrvpassdlg = NULL;
50 51  
51 52 for(i=0;i<MAX_LOG_SENSOR;i++){
52 53 curSensorValue[i].utemp = 0;
... ... @@ -675,9 +676,11 @@ void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype,
675 676 m_mapPopupList.insert(erridx,dlg);
676 677 dlg->showFullScreen();
677 678  
678   - ServicePassInputDlg *w = new ServicePassInputDlg(pParent, NORMAL_SERVICE_PASS_MODE, (errtype > error_type_clrsplit));
679   - //w->exec();
680   - connect(dlg, SIGNAL(destroyed(QObject*)), w, SLOT(showFullScreen()));
  679 + if(m_wndSrvpassdlg == NULL){
  680 + m_wndSrvpassdlg = new ServicePassInputDlg(pParent, NORMAL_SERVICE_PASS_MODE, (errtype > error_type_clrsplit));
  681 + connect(dlg, SIGNAL(destroyed(QObject*)), m_wndSrvpassdlg, SLOT(showFullScreen()));
  682 + connect(m_wndSrvpassdlg, SIGNAL(destroyed(QObject*)), SLOT(setWndPassInputNull()));
  683 + }
681 684 }
682 685 break;
683 686 }
... ...
app/gui/oven_control/ovenstatics.h
... ... @@ -9,6 +9,7 @@
9 9 #include "oven.h"
10 10 #include "servicedata.h"
11 11 #include "config.h"
  12 +#include "servicepassinputdlg.h"
12 13  
13 14  
14 15 #define MAX_MODEL_COUNT 12
... ... @@ -486,6 +487,7 @@ private:
486 487 bool bNeedErrorClear;
487 488 bool bDataRefreshed;
488 489 realtime_data realdata;
  490 + ServicePassInputDlg *m_wndSrvpassdlg;
489 491  
490 492 explicit OvenStatistics(QObject* parent);
491 493 ~OvenStatistics();
... ... @@ -509,6 +511,7 @@ public slots:
509 511 void onDataChanged();
510 512 void oneSecTimerFired(void);
511 513 void onErrorPopupClosed(int erridx);
  514 + void setWndPassInputNull(void){m_wndSrvpassdlg = NULL;}
512 515  
513 516 signals:
514 517 void onErrorFired(int erridx);
... ...
app/gui/oven_control/servicepassinputdlg.cpp
... ... @@ -4,6 +4,7 @@
4 4 #include <QDebug>
5 5 #include "soundplayer.h"
6 6 #include "udphandler.h"
  7 +#include "mainwindow.h"
7 8  
8 9  
9 10 ServicePassInputDlg::ServicePassInputDlg(QWidget *parent, service_pass_type mode, bool sendClrCmd) :
... ... @@ -33,10 +34,12 @@ ServicePassInputDlg::ServicePassInputDlg(QWidget *parent, service_pass_type mode
33 34 ui->keyboardwidget->focusInKeyboard();
34 35 m_nMode = mode;
35 36 m_bSendClrCmd = sendClrCmd;
  37 + qDebug() << __func__;
36 38 }
37 39  
38 40 ServicePassInputDlg::~ServicePassInputDlg()
39 41 {
  42 + qDebug() << __func__;
40 43 delete ui;
41 44 }
42 45  
... ... @@ -46,12 +49,23 @@ void ServicePassInputDlg::on_ctrBtnOk_clicked()
46 49 if( QString(m_strInputPass) == QString(NORMAL_PASS_WORD) && m_nMode == NORMAL_SERVICE_PASS_MODE){
47 50 qDebug() << this->parentWidget() <<this->parent();
48 51 if(m_bSendClrCmd) UdpHandler::getInstance()->set(TG_ERROR_CLEAR,0xCECE);
49   - EngineerMenuWindow *w = new EngineerMenuWindow(this->parentWidget());
50   - connect(w,SIGNAL(destroyed(QObject*)),this,SLOT(close()));
51   - w->setWindowModality(Qt::WindowModal);
52   - w->showFullScreen();
53   - w->raise();
54   - this->hide();
  52 + if(MainWindow::getEngineerMenuWindow()==NULL){
  53 + EngineerMenuWindow *w = new EngineerMenuWindow(this->parentWidget());
  54 + w->setWindowModality(Qt::WindowModal);
  55 + w->showFullScreen();
  56 + w->raise();
  57 + hide();
  58 + deleteLater();
  59 + }
  60 + else{
  61 + EngineerMenuWindow *w = MainWindow::getEngineerMenuWindow();
  62 + w->killChild();
  63 + w->raise();
  64 + hide();
  65 + deleteLater();
  66 + }
  67 + //connect(w,SIGNAL(destroyed(QObject*)),this,SLOT(close()));
  68 +
55 69 }
56 70 else if(QString(m_strInputPass) == QString(DEMO_PASS_WORD) && m_nMode == DEMO_SERVICE_PASS_MODE){
57 71 accept();
... ...