stifui/qt/src/dlgoutput.cpp
branchGCC_SURGE
changeset 37 c20154ccf3c0
parent 35 98924d2efce9
equal deleted inserted replaced
20:ba8a586c45f1 37:c20154ccf3c0
    18 #include <QtGui>
    18 #include <QtGui>
    19 
    19 
    20 DlgOutput::DlgOutput(IStfQtUIController* ctl, QWidget *parent) :
    20 DlgOutput::DlgOutput(IStfQtUIController* ctl, QWidget *parent) :
    21     QDialog(parent), controller(ctl)
    21     QDialog(parent), controller(ctl)
    22     {
    22     {
    23     QSize btnSize(100,30);
       
    24     QGridLayout *mainLayout = new QGridLayout(this);
    23     QGridLayout *mainLayout = new QGridLayout(this);
    25     this->setLayout(mainLayout);
    24     this->setLayout(mainLayout);
    26     this->setContextMenuPolicy(Qt::NoContextMenu);
    25     this->setContextMenuPolicy(Qt::NoContextMenu);
    27 
    26 
    28     tabMain = new QTabWidget();
    27     tabMain = new QTabWidget(this);
    29     tabMain->setContextMenuPolicy(Qt::NoContextMenu);
    28     tabMain->setContextMenuPolicy(Qt::NoContextMenu);
    30 
    29 
    31     QWidget *toolWidget = new QWidget(this);
    30     QWidget *toolWidget = new QWidget(this);
    32     toolWidget->setContextMenuPolicy(Qt::NoContextMenu);
    31     toolWidget->setContextMenuPolicy(Qt::NoContextMenu);
    33     QGridLayout *toolLayout = new QGridLayout();
    32     QGridLayout *toolLayout = new QGridLayout(this);
    34     toolWidget->setLayout(toolLayout);
    33     toolWidget->setLayout(toolLayout);
    35     btnPause = new QPushButton(tr("Pause"), toolWidget);
    34     btnPause = new QPushButton(tr("Pause"), toolWidget);
    36     btnPause->setContextMenuPolicy(Qt::NoContextMenu);
    35     btnPause->setContextMenuPolicy(Qt::NoContextMenu);
    37     btnPause->setFixedSize(btnSize);
       
    38     QObject::connect(btnPause, SIGNAL(clicked()), this,
    36     QObject::connect(btnPause, SIGNAL(clicked()), this,
    39             SLOT(on_btnPause_clicked()));
    37             SLOT(on_btnPause_clicked()));
    40     btnAbort = new QPushButton(tr("Abort"), toolWidget);
    38     btnAbort = new QPushButton(tr("Abort"), toolWidget);
    41     btnAbort->setContextMenuPolicy(Qt::NoContextMenu);
    39     btnAbort->setContextMenuPolicy(Qt::NoContextMenu);
    42     btnAbort->setFixedSize(btnSize);
       
    43     QObject::connect(btnAbort, SIGNAL(clicked()), this,
    40     QObject::connect(btnAbort, SIGNAL(clicked()), this,
    44             SLOT(on_btnAbort_clicked()));
    41             SLOT(on_btnAbort_clicked()));
       
    42     
       
    43     btnClose = new QPushButton(tr("Hide"), toolWidget);
       
    44     btnClose->setContextMenuPolicy(Qt::NoContextMenu);
       
    45     QObject::connect(btnClose, SIGNAL(clicked()), this,
       
    46             SLOT(on_btnClose_clicked()));
    45     toolLayout->addWidget(btnPause, 0, 0);
    47     toolLayout->addWidget(btnPause, 0, 0);
    46     toolLayout->addWidget(btnAbort, 0, 1);
    48     toolLayout->addWidget(btnAbort, 0, 1);
       
    49     toolLayout->addWidget(btnClose, 0, 2);
       
    50         
    47 
    51 
    48     mainLayout->addWidget(toolWidget, 0, 0);
    52     mainLayout->addWidget(toolWidget, 0, 0);
    49     mainLayout->addWidget(tabMain, 1, 0);
    53     mainLayout->addWidget(tabMain, 1, 0);
    50     controller->AddStfEventListener(this);
    54     controller->AddStfEventListener(this);
    51     }
    55     }
    63     tabList.insert(index, edit);
    67     tabList.insert(index, edit);
    64     }
    68     }
    65 
    69 
    66 void DlgOutput::CloseItem(QString index)
    70 void DlgOutput::CloseItem(QString index)
    67     {
    71     {
    68     int u = tabList.keys().indexOf(index);
    72     delete tabList.value(index);
    69     tabList.remove(index);
    73     tabList.remove(index);
    70     tabMain->removeTab(u);
       
    71     if (tabMain->count() == 0)
    74     if (tabMain->count() == 0)
    72         {
    75         {
    73         this->close();
    76         this->close();
    74         }
    77         }
    75     }
    78     }
    77 void DlgOutput::ShowMessage(QString index, QString msg)
    80 void DlgOutput::ShowMessage(QString index, QString msg)
    78     {
    81     {
    79     if(tabList.contains(index))
    82     if(tabList.contains(index))
    80         {
    83         {
    81         tabList.value(index)->setPlainText(msg);    
    84         tabList.value(index)->setPlainText(msg);    
       
    85         }
       
    86     else
       
    87         {
       
    88 //        bool ok;
       
    89 //        CSTFCase acase = controller->GetRunningCase(index.toInt(&ok, 10));
       
    90 //        CreateItem(index, acase.Name());
       
    91 //        ShowMessage(index, msg);
    82         }
    92         }
    83     }
    93     }
    84 
    94 
    85 void DlgOutput::on_btnPause_clicked()
    95 void DlgOutput::on_btnPause_clicked()
    86     {
    96     {
    99 void DlgOutput::on_btnAbort_clicked()
   109 void DlgOutput::on_btnAbort_clicked()
   100     {
   110     {
   101     controller->AbortCase();
   111     controller->AbortCase();
   102     }
   112     }
   103 
   113 
       
   114 void DlgOutput::on_btnClose_clicked()
       
   115     {
       
   116     controller->SetShowOutput(false);
       
   117     this->close();
       
   118     }
       
   119 
   104 void DlgOutput::OnCaseOutputChanged(const IStfEventListener::CaseOutputCommand& cmd,
   120 void DlgOutput::OnCaseOutputChanged(const IStfEventListener::CaseOutputCommand& cmd,
   105         const QString& index, const QString& msg)
   121         const QString& index, const QString& msg)
   106     {
   122     {
   107     this->showMaximized();
   123     if(controller->ShowOutput() && this->isVisible() == false)
       
   124         {
       
   125         this->showMaximized();
       
   126         }
   108     switch (cmd)
   127     switch (cmd)
   109         {
   128         {
   110         case IStfEventListener::ECreate:
   129         case IStfEventListener::ECreate:
   111             CreateItem(index, msg);
   130             CreateItem(index, msg);
   112             break;
   131             break;
   118             break;
   137             break;
   119         }
   138         }
   120 
   139 
   121     }
   140     }
   122 
   141 
       
   142 // End of File