00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #include "qvblockinterfacesmall.h"
00026
00027 #ifndef DOXYGEN_IGNORE_THIS
00028 QVProcessingBlockInterfaceSmall::QVProcessingBlockInterfaceSmall(QVProcessingBlock *block, QWidget *parent): QWidget(parent), cpuPlot(0)
00029 {
00030 qDebug() << "QVProcessingBlockInterfaceSmall::QVProcessingBlockInterfaceSmall("<< block->getName() << ")";
00031 form.setupUi(this);
00032
00033 setWindowTitle(block->getName());
00034
00035 this->block = block;
00036 isGroupMaster = block->isSequentialGroupMaster();
00037
00038 if (block->isStatsEnabled()) {
00039 this->cpuPlot = new QVCPUPlot("CPU performance plot of: " + block->getName(), true, false);
00040 block->linkProperty("cpu stats", this->cpuPlot);
00041 this->cpuPlot->init();
00042 connect(form.stat_button,SIGNAL(toggled(bool)),cpuPlot,SLOT(setVisible(bool)));
00043 connect(cpuPlot,SIGNAL(closed()),form.stat_button,SLOT(toggle()));
00044 }
00045 else
00046 form.stat_button->setEnabled(false);
00047
00048
00049
00050
00051
00052
00053
00054 connect(form.pause_button,SIGNAL(pressed()),block,SLOT(pause()),Qt::QueuedConnection);
00055 connect(form.play_button,SIGNAL(pressed()),block,SLOT(unPause()),Qt::QueuedConnection);
00056 connect(form.next_button,SIGNAL(pressed()),block,SLOT(step()),Qt::QueuedConnection);
00057 connect(form.stop_button, SIGNAL(pressed()),block,SLOT(stop()),Qt::QueuedConnection);
00058 connect(form.finish_button, SIGNAL(pressed()),this,SLOT(finishBlock()),Qt::QueuedConnection);
00059
00060
00061 connect(block,SIGNAL(endIteration(uint, int)),this,SLOT(newIterationSlot()),Qt::QueuedConnection);
00062 connect(block,SIGNAL(statusUpdate(QVProcessingBlock::TBlockStatus)),
00063 this,SLOT(statusUpdate(QVProcessingBlock::TBlockStatus)),Qt::QueuedConnection);
00064
00065 statusUpdate(block->getStatus());
00066
00067 show();
00068 qDebug() << "QVProcessingBlockInterfaceSmall::QVProcessingBlockInterfaceSmall(" << block->getName() << ") <- return";
00069 }
00070
00071 QVProcessingBlockInterfaceSmall::~QVProcessingBlockInterfaceSmall()
00072 {
00073 if (this->cpuPlot) delete this->cpuPlot;
00074 }
00075
00076 void QVProcessingBlockInterfaceSmall::finishBlock()
00077 {
00078 qvApp->quitBlock(block);
00079 }
00080
00081 void QVProcessingBlockInterfaceSmall::newIterationSlot()
00082 { form.iterationsLabel->setText(QString("Iteration: ")+QString().setNum(block->getIteration())); }
00083
00084 void QVProcessingBlockInterfaceSmall::statusUpdate(QVProcessingBlock::TBlockStatus status)
00085 {
00086 isGroupMaster = block->isSequentialGroupMaster();
00087 if (!isGroupMaster) {
00088 form.finish_button->setEnabled(FALSE);
00089 form.stop_button->setEnabled(FALSE);
00090 form.pause_button->setEnabled(FALSE);
00091 form.play_button->setEnabled(FALSE);
00092 form.next_button->setEnabled(FALSE);
00093 }
00094 else {
00095 switch(status)
00096 {
00097 case QVProcessingBlock::Finished:
00098 form.finish_button->setEnabled(FALSE);
00099 form.stop_button->setEnabled(FALSE);
00100 form.pause_button->setEnabled(FALSE);
00101 form.play_button->setEnabled(FALSE);
00102 form.next_button->setEnabled(FALSE);
00103 break;
00104
00105 case QVProcessingBlock::Stopped:
00106 form.finish_button->setEnabled(TRUE);
00107 form.stop_button->setEnabled(FALSE);
00108 form.pause_button->setEnabled(FALSE);
00109 form.play_button->setEnabled(FALSE);
00110 form.next_button->setEnabled(FALSE);
00111 break;
00112
00113 case QVProcessingBlock::Running:
00114 form.finish_button->setEnabled(TRUE);
00115 form.stop_button->setEnabled(TRUE);
00116 form.pause_button->setEnabled(TRUE);
00117 form.play_button->setEnabled(FALSE);
00118 form.next_button->setEnabled(FALSE);
00119 break;
00120
00121 case QVProcessingBlock::RunningOneStep:
00122 case QVProcessingBlock::Paused:
00123 form.finish_button->setEnabled(TRUE);
00124 form.stop_button->setEnabled(TRUE);
00125 form.pause_button->setEnabled(FALSE);
00126 form.play_button->setEnabled(TRUE);
00127 form.next_button->setEnabled(TRUE);
00128 break;
00129
00130 default:
00131 break;
00132 }
00133 }
00134 }
00135 #endif
00136