Marlin  01.17.01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dialog.cpp
Go to the documentation of this file.
1 #include <QtGui>
2 
3 #include "marlin/CCProcessor.h"
4 #include "marlin/CMProcessor.h"
5 #include "marlin/CCCollection.h"
6 
7 #include "dialog.h"
8 #include "nparamvecset.h"
9 #include "paramdelegate.h"
10 #include "icoldelegate.h"
11 #include "icoltdelegate.h"
12 #include "ocoldelegate.h"
13 #include "guihelp.h"
14 
15 #include "flowlayout.h"
16 
17 using namespace std;
18 
19 Dialog::Dialog( CCProcessor *p, MarlinSteerCheck* msc, QWidget *parent, Qt::WFlags f) : QDialog(parent,f), _p(p), _msc(msc)
20 {
21  QShortcut *helpF1 = new QShortcut(Qt::Key_F1, this);
22  connect(helpF1, SIGNAL(activated()), this, SLOT(help()));
23 
24  mainLayout = new QVBoxLayout;
25 
26  setupViews();
27 
28  setLayout(mainLayout);
29 
30  QString title;
31  title+=tr("Edit Processor - Name: ");
32  title+=p->getName().c_str();
33  title+=tr(" - Type: ");
34  title+=p->getType().c_str();
35  setWindowTitle(title);
36 }
37 
38 void Dialog::help(){
39  QWidget *help= new GUIHelp("/gui/help/html/editprocessor.html",this, Qt::Dialog );
40  help->show();
41 }
42 
44 {
45  //PROCESSOR DESCRIPTION
46  QLabel *desc = new QLabel(_p->getDescription().c_str());
47  desc->setFont( QFont("Helvetica", 10, QFont::Bold) );
48 
49  QPalette pal = desc->palette();
50  pal.setColor(QPalette::WindowText, QColor(32,64,140,220) );
51  desc->setPalette(pal);
52 
53  desc->setWordWrap(true);
54 
55  QVBoxLayout *descLO = new QVBoxLayout;
56  descLO->addWidget( desc );
57 
58  QGroupBox *descGB = new QGroupBox(tr("Processor Description "), this);
59  descGB->setMaximumHeight( 80 );
60  descGB->setLayout( descLO );
61 
62  mainLayout->addWidget(descGB, Qt::AlignTop );
63 
65  //INTPUT COLLECTIONS TABLE
67  ssMap colHeaders = _p->getColHeaders( INPUT );
68 
69  if( colHeaders.size() != 0 ){
70 
71  QTableWidget *colTable = new QTableWidget;
72 
73  QStringList labels;
74  labels << tr("Name") << tr("Type") << tr("Value");
75  colTable->setColumnCount(3);
76  colTable->verticalHeader()->hide();
77  colTable->setHorizontalHeaderLabels(labels);
78  colTable->horizontalHeader()->resizeSection(0, 300);
79  colTable->horizontalHeader()->resizeSection(1, 300);
80  colTable->horizontalHeader()->resizeSection(2, 300);
81  colTable->setSelectionMode(QAbstractItemView::NoSelection);
82  colTable->setEditTriggers(QAbstractItemView::AllEditTriggers);
83 
84  bool found=false;
85 
86  for( ssMap::const_iterator p=colHeaders.begin(); p!=colHeaders.end(); p++ ){
87  //initialize table
88  ColVec cols = _p->getCols( INPUT , (*p).first );
89  for( unsigned int i=0; i<cols.size(); i++ ){
90  if( !_msc->getMProcs()->isParamVec( _p->getType(), (*p).first )){
91 
92  found=true;
93 
94  int row = colTable->rowCount();
95  colTable->setRowCount(row + 1);
96 
97  QTableWidgetItem *item0 = new QTableWidgetItem( (*p).first.c_str() );
98  QTableWidgetItem *item1 = new QTableWidgetItem( (*p).second.c_str() );
99  QTableWidgetItem *item2 = new QTableWidgetItem( cols[i]->getValue().c_str() );
100 
101  item0->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
102  item1->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
103  item2->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
104 
105  item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
106  item1->setFlags(item1->flags() & ~Qt::ItemIsEditable);
107 
108  if( _p->isActive() ){
109  item2->setBackgroundColor( _p->isErrorCol( p->second.c_str(), cols[i]->getValue().c_str() ) ?
110  QColor(184,16,0,180) : QColor(32,140,64,180) );
111  }
112 
113  colTable->setItem(row, 0, item0);
114  colTable->setItem(row, 1, item1);
115  colTable->setItem(row, 2, item2);
116  }
117  }
118  }
119  if(found){
120  //delegate
121  QItemDelegate *delegate = new IColTDelegate(_p, _msc, colTable);
122  colTable->setItemDelegate(delegate);
123 
124  //Layout
125  QVBoxLayout *colsTLayout = new QVBoxLayout;
126  colsTLayout->addWidget(colTable);
127 
128  //create group box for all collections
129  QGroupBox *colsTGroupBox = new QGroupBox(tr("INPUT COLLECTIONS - SINGLE VALUE"));
130  colsTGroupBox->setLayout(colsTLayout);
131  colsTGroupBox->setMaximumHeight(220);
132 
133  //add group box to main layout
134  mainLayout->addWidget(colsTGroupBox, Qt::AlignTop);
135  }
136  }
137 
139  //INPUT COLLECTIONS GROUPS
141 
142  colHeaders = _p->getColHeaders( INPUT );
143 
144  if( colHeaders.size() != 0 ){
145 
146  FlowLayout *fLayout = new FlowLayout;
147 
148  bool found = false;
149 
150  for( ssMap::const_iterator p=colHeaders.begin(); p!=colHeaders.end(); p++ ){
151 
152  if( _msc->getMProcs()->isParamVec( _p->getType(), (*p).first )){
153 
154  found = true;
155 
156  QTableWidget *colTable = new QTableWidget;
157 
158  colTable->setColumnCount(1);
159  colTable->horizontalHeader()->resizeSection(0, 240);
160  colTable->horizontalHeader()->hide();
161  colTable->verticalHeader()->hide();
162  colTable->setSelectionMode(QAbstractItemView::NoSelection);
163  colTable->setEditTriggers(QAbstractItemView::AllEditTriggers);
164 
165  //initialize table
166  ColVec cols = _p->getCols( INPUT , (*p).first );
167 
168  for( unsigned int i=0; i<cols.size(); i++ ){
169  int row = colTable->rowCount();
170  colTable->setRowCount(row + 1);
171 
172  QTableWidgetItem *item0 = new QTableWidgetItem( cols[i]->getValue().c_str() );
173 
174  item0->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
175 
176  if( _p->isActive() ){
177  item0->setBackgroundColor( _p->isErrorCol( p->second.c_str(), cols[i]->getValue().c_str() ) ?
178  QColor(184,16,0,180) : QColor(32,140,64,180) );
179  }
180 
181  //item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
182  colTable->setItem(row, 0, item0);
183  //colTable->openPersistentEditor(item0);
184  }
185 
186  //delegate
187  QItemDelegate *delegate = new IColDelegate(_p, _msc, (*p).first.c_str(), (*p).second.c_str(), colTable);
188  colTable->setItemDelegate(delegate);
189 
191  //COLLECTIONS BUTTONS
193 
194  QPushButton *addColButton = new QPushButton(tr("Add"));
195  QPushButton *remColButton = new QPushButton(tr("Rem"));
196 
197  addColButton->setToolTip(tr("Add New Collection"));
198  remColButton->setToolTip(tr("Remove Selected Collection"));
199 
200  connect(addColButton, SIGNAL(clicked()), delegate, SLOT(addCollection()));
201  connect(remColButton, SIGNAL(clicked()), delegate, SLOT(remCollection()));
202  addColButton->setAutoDefault( false );
203  remColButton->setAutoDefault( false );
204 
205  //Buttons Layout
206  QVBoxLayout *colButtonsLayout = new QVBoxLayout;
207  colButtonsLayout->addWidget(addColButton);
208  colButtonsLayout->addWidget(remColButton);
209 
210  //GroupBox
211  QWidget *colButtons = new QWidget;
212  colButtons->setFixedWidth(55);
213  colButtons->setLayout(colButtonsLayout);
214 
215  //Layout
216  QGridLayout *colLayout = new QGridLayout;
217  colLayout->addWidget(colTable,0,0);
218  colLayout->addWidget(colButtons,0,1);
219 
220  //set the title for this collection group
221  QString colTitle("Name: [");
222  colTitle+= (*p).first.c_str();
223  colTitle+= "] - Type: [";
224  colTitle+= (*p).second.c_str();
225  colTitle+= "]";
226 
227  QGroupBox *colGroupBox = new QGroupBox( colTitle );
228  colGroupBox->setLayout( colLayout );
229  colGroupBox->setMinimumWidth(350);
230  colGroupBox->setMaximumHeight(180);
231 
232  //add this collection to the group
233  fLayout->addWidget(colGroupBox);
234  }
235  }
236  if(found){
237  //create group box for all collections
238  QGroupBox *colsGroupBox = new QGroupBox(tr("INPUT COLLECTIONS - MULTIPLE VALUES"));
239  colsGroupBox->setLayout(fLayout);
240  colsGroupBox->setMinimumWidth(1300);
241  //colsGroupBox->setMaximumHeight(400);
242 
243  //add group box to main layout
244  QScrollArea *scroll = new QScrollArea;
245  scroll->setWidget(colsGroupBox);
246 
247  mainLayout->addWidget(scroll, Qt::AlignTop);
248  }
249  }
250 
251 
253  //OUTPUT COLLECTIONS TABLE
255  colHeaders = _p->getColHeaders( OUTPUT );
256 
257  if( colHeaders.size() != 0 ){
258 
259  QTableWidget *colTable = new QTableWidget;
260 
261  QStringList labels;
262  labels << tr("Name") << tr("Type") << tr("Value");
263  colTable->setColumnCount(3);
264  colTable->verticalHeader()->hide();
265  colTable->setHorizontalHeaderLabels(labels);
266  colTable->horizontalHeader()->resizeSection(0, 300);
267  colTable->horizontalHeader()->resizeSection(1, 300);
268  colTable->horizontalHeader()->resizeSection(2, 300);
269  colTable->setSelectionMode(QAbstractItemView::NoSelection);
270  colTable->setEditTriggers(QAbstractItemView::AllEditTriggers);
271 
272  bool found = false;
273 
274  for( ssMap::const_iterator p=colHeaders.begin(); p!=colHeaders.end(); p++ ){
275  found=true;
276 
277  //initialize table
278  ColVec cols = _p->getCols( OUTPUT , (*p).first );
279  for( unsigned int i=0; i<cols.size(); i++ ){
280  int row = colTable->rowCount();
281  colTable->setRowCount(row + 1);
282 
283  QTableWidgetItem *item0 = new QTableWidgetItem( (*p).first.c_str() );
284  QTableWidgetItem *item1 = new QTableWidgetItem( (*p).second.c_str() );
285  QTableWidgetItem *item2 = new QTableWidgetItem( cols[i]->getValue().c_str() );
286 
287  item0->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
288  item1->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
289  item2->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), (*p).first ).c_str() ) );
290 
291  if( _p->isActive() ){
292  item2->setBackgroundColor( _p->isErrorCol( p->second.c_str(), cols[i]->getValue().c_str() ) ?
293  QColor(184,16,0,180) : QColor(32,140,64,180) );
294  }
295 
296  item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
297  item1->setFlags(item1->flags() & ~Qt::ItemIsEditable);
298 
299  colTable->setItem(row, 0, item0);
300  colTable->setItem(row, 1, item1);
301  colTable->setItem(row, 2, item2);
302  }
303  }
304  if(found){
305  //delegate
306  QItemDelegate *delegate = new OColDelegate(_p, _msc, colTable);
307  colTable->setItemDelegate(delegate);
308 
309  //Layout
310  QVBoxLayout *colsLayout = new QVBoxLayout;
311  colsLayout->addWidget(colTable);
312 
313  //create group box for all collections
314  QGroupBox *colsGroupBox = new QGroupBox(tr("OUTPUT COLLECTIONS"));
315  colsGroupBox->setLayout(colsLayout);
316  colsGroupBox->setMaximumHeight(240);
317 
318  //add group box to main layout
319  mainLayout->addWidget(colsGroupBox, Qt::AlignTop);
320  }
321  }
322 
323 
325  //PARAMETERS TABLE
327  if(_p->hasParameters()){
328  paramTable = new QTableWidget;
329 
330  QStringList labels;
331  labels << tr("Parameter Name") << tr("Parameter Value");
332  paramTable->setColumnCount(2);
333  paramTable->verticalHeader()->hide();
334  paramTable->setHorizontalHeaderLabels(labels);
335  paramTable->horizontalHeader()->resizeSection(0, 300);
336  paramTable->horizontalHeader()->resizeSection(1, 300);
337  paramTable->setSelectionMode(QAbstractItemView::SingleSelection);
338  paramTable->setSelectionBehavior(QAbstractItemView::SelectRows);
339  paramTable->setEditTriggers(QAbstractItemView::AllEditTriggers);
340 
341 
342  //initialize table
343  StringVec paramKeys;
344  _p->getParameters()->getStringKeys(paramKeys);
345 
346  bool found=false;
347 
348  for( unsigned int i=0; i<paramKeys.size(); i++ ){
349 
350  if( !_msc->getMProcs()->isParamOpt( _p->getType(), paramKeys[i] )){
351  found = true;
352  updateParam();
353  }
354  }
355  if(found){
356  //Delegate
357  ParamDelegate *pDelegate = new ParamDelegate( _p, paramTable);
358  paramTable->setItemDelegate( pDelegate );
359 
360  QWidget *nparamvecset = new NParamVecSet( _msc, _p, paramTable, this );
361  connect(paramTable, SIGNAL(cellClicked(int,int)), nparamvecset, SLOT(updateTable()));
362 
363  //Layout
364  QGridLayout *paramLayout = new QGridLayout;
365  paramLayout->addWidget(paramTable,0,0);
366  paramLayout->addWidget(nparamvecset,0,1, Qt::AlignTop | Qt::AlignRight);
367 
368  //GroupBox
369  QGroupBox *paramGroupBox = new QGroupBox(tr("Processor Parameters"));
370  paramGroupBox->setLayout(paramLayout);
371 
372  mainLayout->addWidget(paramGroupBox, Qt::AlignTop);
373  }
374  }
375 
377  //PARAMETERS TABLE (Optional)
379  if(_p->hasParameters()){
380  optParamTable = new QTableWidget;
381 
382  QStringList labels;
383  labels << tr("Parameter Name") << tr("Parameter Value") << tr("Active");
384  optParamTable->setColumnCount(3);
385  optParamTable->verticalHeader()->hide();
386  optParamTable->setHorizontalHeaderLabels(labels);
387  optParamTable->horizontalHeader()->resizeSection(0, 300);
388  optParamTable->horizontalHeader()->resizeSection(1, 300);
389  optParamTable->horizontalHeader()->resizeSection(2, 50);
390  optParamTable->setSelectionMode(QAbstractItemView::SingleSelection);
391  optParamTable->setSelectionBehavior(QAbstractItemView::SelectRows);
392  optParamTable->setEditTriggers(QAbstractItemView::AllEditTriggers);
393 
394 
395  bool found = false;
396  //initialize table
397  StringVec paramKeys;
398  _p->getParameters()->getStringKeys(paramKeys);
399  for( unsigned int i=0; i<paramKeys.size(); i++ ){
400 
401  if( _msc->getMProcs()->isParamOpt( _p->getType(), paramKeys[i] )){
402  found = true;
403 
404  int row = optParamTable->rowCount();
405  optParamTable->setRowCount(row + 1);
406 
407  StringVec paramValues;
408  _p->getParameters()->getStringVals(paramKeys[i], paramValues);
409 
410  QString str;
411 
412  for( unsigned int j=0; j<paramValues.size(); j++ ){
413  str+=paramValues[j].c_str();
414  str+=" ";
415  }
416 
417  QTableWidgetItem *item0 = new QTableWidgetItem( paramKeys[i].c_str() );
418  QTableWidgetItem *item1 = new QTableWidgetItem( str );
419  QTableWidgetItem *item2 = new QTableWidgetItem;
420 
421  item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
422  item2->setFlags(item0->flags() & ~Qt::ItemIsEditable);
423 
424  if( _msc->getMProcs()->getParamSetSize( _p->getType(), paramKeys[i] ) > 1 ){
425  item1->setFlags(item1->flags() & ~Qt::ItemIsEditable);
426  }
427 
428  item0->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), paramKeys[i] ).c_str() ));
429  item1->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), paramKeys[i] ).c_str() ));
430  item2->setToolTip( QString(
431  tr( "Activate this checkbox to write the parameter as a normal parameter in the xml file.\n"
432  "Please note that if you don't want to use this parameter and leave this option unchecked\n"
433  "the value of the parameter will still be written as a comment in the xml file but\n"
434  "the next time you open the xml file in the GUI the value will get lost."
435  )));
436  optParamTable->setItem(row, 0, item0);
437  optParamTable->setItem(row, 1, item1);
438  optParamTable->setItem(row, 2, item2);
439 
440  item2->setCheckState( _p->isParamOptional( paramKeys[i] ) ? Qt::Unchecked : Qt::Checked );
441  }
442  }
443  if(found){
444 
445  //Delegate
446  ParamDelegate *pDelegate = new ParamDelegate(_p, optParamTable);
447  optParamTable->setItemDelegate( pDelegate );
448 
449  QWidget *nparamvecset = new NParamVecSet( _msc, _p, optParamTable, this );
450  connect(optParamTable, SIGNAL(cellClicked(int,int)), nparamvecset, SLOT(updateTable()));
451 
452  //Layout
453  QGridLayout *paramLayout = new QGridLayout;
454  paramLayout->addWidget(optParamTable,0,0);
455  paramLayout->addWidget(nparamvecset,0,1, Qt::AlignTop | Qt::AlignRight);
456 
457  //GroupBox
458  QGroupBox *paramGroupBox = new QGroupBox(tr("Optional Processor Parameters"));
459  paramGroupBox->setLayout(paramLayout);
460 
461  mainLayout->addWidget(paramGroupBox, Qt::AlignTop);
462 
463  connect(optParamTable, SIGNAL(cellClicked(int, int)), this, SLOT(optParamChanged()));
464  }
465  }
466 
467 
469  // APPLY, CANCEL BUTTONS
471 
472  QPushButton *applyButton = new QPushButton(tr("&Apply Changes"));
473  QPushButton *cancelButton = new QPushButton(tr("&Cancel"));
474 
475  connect(applyButton, SIGNAL(clicked()), this, SLOT(accept()));
476  connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
477 
478  applyButton->setAutoDefault( false );
479  cancelButton->setAutoDefault( false );
480  applyButton->setFixedHeight( 40 );
481  cancelButton->setFixedHeight( 40 );
482  applyButton->setFixedWidth( 150 );
483  cancelButton->setFixedWidth( 150 );
484 
485  //Buttons Layout
486  QGridLayout *mainButtonsLayout = new QGridLayout;
487  mainButtonsLayout->addWidget(cancelButton, 0, 1, 0, 1, Qt::AlignLeft | Qt::AlignTop);
488  mainButtonsLayout->addWidget(applyButton, 0, 2, 0, 2, Qt::AlignRight | Qt::AlignTop);
489 
490  //GroupBox
491  QWidget *mainButtons = new QWidget;
492  mainButtons->setFixedHeight( 50 );
493  mainButtons->setLayout(mainButtonsLayout);
494 
495  mainLayout->addWidget(mainButtons, Qt::AlignTop);
496 }
497 
499  //initialize table
500  StringVec paramKeys;
501  _p->getParameters()->getStringKeys(paramKeys);
502 
503  paramTable->setRowCount(0);
504  for( unsigned int i=0; i<paramKeys.size(); i++ ){
505 
506  if( !_msc->getMProcs()->isParamOpt( _p->getType(), paramKeys[i] )){
507 
508  int row = paramTable->rowCount();
509  paramTable->setRowCount(row + 1);
510 
511  StringVec paramValues;
512  _p->getParameters()->getStringVals(paramKeys[i], paramValues);
513 
514  QString str;
515 
516  for( unsigned int j=0; j<paramValues.size(); j++ ){
517  str+=paramValues[j].c_str();
518  str+=" ";
519  }
520 
521  QTableWidgetItem *item0 = new QTableWidgetItem( paramKeys[i].c_str() );
522  QTableWidgetItem *item1 = new QTableWidgetItem( str );
523 
524  item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
525 
526  if( _msc->getMProcs()->getParamSetSize( _p->getType(), paramKeys[i] ) > 1 ){
527  item1->setFlags(item1->flags() & ~Qt::ItemIsEditable);
528  }
529 
530  item0->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), paramKeys[i] ).c_str() ) );
531  item1->setToolTip( QString( _msc->getMProcs()->getParamD( _p->getType(), paramKeys[i] ).c_str() ) );
532 
533  paramTable->setItem(row, 0, item0);
534  paramTable->setItem(row, 1, item1);
535  }
536  }
537 }
538 
540  for( int row = 0; row < optParamTable->rowCount(); row++ ){
541  QTableWidgetItem *item0 = optParamTable->item(row, 0);
542  QTableWidgetItem *item2 = optParamTable->item(row, 2);
543 
544  if(item2->checkState() == Qt::Checked){
545  _p->setOptionalParam( item0->text().toStdString(), false );
546  }
547  else{
548  _p->setOptionalParam( item0->text().toStdString() );
549  }
550  }
551 }
552 
void setupViews()
Definition: dialog.cpp:43
QVBoxLayout * mainLayout
Definition: dialog.h:42
this class is a Marlin Steering File consistency check Tool.
bool isErrorCol(const std::string &type, const std::string &value)
Returns true if the given collection is in the unavailable or duplicate list of this processor...
Definition: CCProcessor.cc:381
Dialog(const Dialog &)=default
QTableWidget * paramTable
Definition: dialog.h:43
void help()
Definition: dialog.cpp:38
T end(T...args)
handles information about marlin processors and their collections needed by MarlinSteerCheck ...
Definition: CCProcessor.h:39
const std::string getParamD(const std::string &type, const std::string &key)
returns the description of the parameter with the given key for the processor with the given type ...
Definition: CMProcessor.cc:165
bool isParamOptional(const std::string &key)
Returns true if a parameter is optional (optional means the parameter will be written out as a commen...
Definition: CCProcessor.cc:437
void setOptionalParam(const std::string &key, bool optional=true)
Sets a parameter as optional (if optional=true parameter is written out as a comment) ...
Definition: CCProcessor.cc:446
CCProcessor * _p
Definition: dialog.h:46
MarlinSteerCheck * _msc
Definition: dialog.h:47
void updateParam()
Definition: dialog.cpp:498
const std::string & getType()
Returns the Type of the processor.
Definition: CCProcessor.h:77
const std::string & getName()
Returns the Name of the processor.
Definition: CCProcessor.h:74
ColVec & getCols(const std::string &iotype, const std::string &type_name="ALL_COLLECTIONS")
Returns collections of a given iotype ( INPUT, OUTPUT, UNAVAILABLE, DUPLICATE ) for a given name or t...
Definition: CCProcessor.cc:352
CMProcessor * getMProcs()
Returns the Marlin Processors.
T size(T...args)
STL class.
const ssMap & getColHeaders(const std::string &iotype)
Returns a map with collection names and their respective types for INPUT/OUTPUT collections of this p...
Definition: CCProcessor.h:106
void optParamChanged()
Definition: dialog.cpp:539
T begin(T...args)
T c_str(T...args)
bool hasParameters()
Returns true if the processor has parameters.
Definition: CCProcessor.h:59
int getParamSetSize(const std::string &type, const std::string &key)
returns the set_size of the parameter with the given key for the processor with the given type ...
Definition: CMProcessor.cc:181
QTableWidget * optParamTable
Definition: dialog.h:44
bool isParamOpt(const std::string &type, const std::string &key)
returns true if the parameter with the given key for the processor with the given type is optional ...
Definition: CMProcessor.cc:189
bool isParamVec(const std::string &type, const std::string &key)
returns true if the parameter with the given key for the processor with the given type is a vector ...
Definition: CMProcessor.cc:198
#define INPUT
Definition: CCProcessor.h:15
bool isActive()
Returns true if the processor is active.
Definition: CCProcessor.h:68
#define OUTPUT
Definition: CCProcessor.h:16
const std::string getDescription()
Returns the Description of the processor.
Definition: CCProcessor.h:83
std::shared_ptr< StringParameters > getParameters()
Returns the string parameters for this processor.
Definition: CCProcessor.h:103