]> AND Private Git Repository - blast.git/blob - ParametersWindow.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
add clk/rst to groups
[blast.git] / ParametersWindow.cpp
1 #include "ParametersWindow.h"
2 #include "Parameters.h"
3 #include "BlocksToConfigureWidget.h"
4 #include "BlockParameter.h"
5 #include "AbstractBlock.h"
6
7 ParametersWindow::ParametersWindow(AbstractBlock *_block, Parameters *_params, BlocksToConfigureWidget *btcw, QWidget *parent) :
8     QWidget(parent) {
9     block = _block;
10     confWidget = btcw;
11     params = _params;
12
13     layout = new QGridLayout;
14
15     name = new QLabel;
16     value = new QLineEdit;
17     context = new QLabel;
18     type = new QLabel;
19
20     comboBox = new QComboBox;
21
22     cout << "block has " <<block->getParameters().size() << " params" << endl;
23     foreach(BlockParameter *param, block->getParameters()){
24       comboBox->addItem(param->getName());
25     }
26     connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateData()));
27     updateData();
28
29     saveButton = new QPushButton("Save");
30     connect(saveButton, SIGNAL(clicked()), this, SLOT(save()));
31
32     layout->addWidget(new QLabel("Parameters"), 0, 0);
33     layout->addWidget(comboBox, 0, 1);
34
35     layout->addWidget(new QLabel(" "), 1, 0);
36
37     layout->addWidget(new QLabel("Name"), 2, 0);
38     layout->addWidget(name, 2, 1);
39     layout->addWidget(new QLabel("Value"), 3, 0);
40     layout->addWidget(value, 3, 1);
41     layout->addWidget(new QLabel("Context"), 4, 0);
42     layout->addWidget(context, 4, 1);
43     layout->addWidget(new QLabel("Type"), 5, 0);
44     layout->addWidget(type, 5, 1);
45
46     layout->addWidget(saveButton, 6, 0);
47
48     this->setLayout(layout);
49
50     show();
51 }
52
53 void ParametersWindow::updateData() {
54   BlockParameter *param = block->getParameters().at(comboBox->currentIndex());
55   name->setText(param->getName());
56   value->setText(param->getValue().toString());
57   context->setText(param->getContext());
58   type->setText(param->getTypeString());
59 }
60
61 void ParametersWindow::save() {
62   BlockParameter *param = block->getParameters().at(comboBox->currentIndex());
63   param->setValue(value->text());  
64
65   //params->parametersValidation();
66   if(confWidget != NULL){
67     confWidget->updateBlocksList();
68   }
69   close();
70 }