parametragemodele.cpp 15 KB
Newer Older
1
#include"parametragemodele.h"
Maxime Goret's avatar
Maxime Goret committed
2
#include <autocell.h>
3
#include <Automate.h>
Maxime Goret's avatar
merge  
Maxime Goret committed
4
#include <autosql.h>
Maxime Goret's avatar
Merge  
Maxime Goret committed
5

6
7
8

NouveauModele::NouveauModele(QWidget* parent) : QWidget() {
    this->setWindowTitle("Paramétrage d'un nouveau modèle");
Maxime Goret's avatar
Maxime Goret committed
9
    this->setMinimumSize(850, 650);
10

11
12
13
14
15
    general = new QGridLayout;
    this->setLayout(general);

    //définition de la frame paramétrage du modèle

16
    fenetre_init = new QWidget;
17
    fenetre_init->setStyleSheet("background-color: rgb(204, 209, 209)");
Maxime Goret's avatar
Maxime Goret committed
18
    fenetre_init->setFixedWidth(410);
19
    label_init = new QLabel("Configuration du modèle :");
20
21
22

    form_init = new QGridLayout(fenetre_init);

23
    form_choix = new QFormLayout;
24
25

    form_init->addWidget(label_init, 0, 0, 1, 2);
26
    form_init->addLayout(form_choix, 1, 0, 8, 2);
27

28
29
    // infos sur l'automate
    QString nomDefaut = "Nouvel automate";
Leon Do Castelo's avatar
Leon Do Castelo committed
30
    nom_automate = new QLineEdit(nomDefaut);
31
    QString auteurDefaut = "Anonym";
Leon Do Castelo's avatar
Leon Do Castelo committed
32
    auteur = new QLineEdit(auteurDefaut);
33
    QString anneeDefaut = "2000";
Leon Do Castelo's avatar
Leon Do Castelo committed
34
    annee = new QLineEdit(anneeDefaut);
35
    QString descDefaut = "Nouvel automate créé par l'utilisateur";
Leon Do Castelo's avatar
Leon Do Castelo committed
36
    description = new QLineEdit(descDefaut);
37
    // nb d'états
Leon Do Castelo's avatar
Leon Do Castelo committed
38
    nb_etats = new QSpinBox;
Leon Do Castelo's avatar
Leon Do Castelo committed
39
    nb_etats->setRange(2, 8);
Maxime Goret's avatar
Maxime Goret committed
40
    nom_modele = new QLineEdit("Nouveau modèle");
Maxime Goret's avatar
Merge  
Maxime Goret committed
41
    etat = new QLabel("Nombre d'états :");
42

43
    //choisir un voisinage
44
    liste_voisinage = new QComboBox;
45

46

Maxime Goret's avatar
Maxime Goret committed
47
48

    liste_voisinage->setPlaceholderText("--- select ---");
49
    liste_voisinage->setCurrentIndex(-1);
Maxime Goret's avatar
Maxime Goret committed
50

51

52
53
54
    connect(liste_voisinage, SIGNAL(currentTextChanged(const QString&)), this, SLOT(paramVoisinage(const QString&)));

    //choisir une règle de transition
Maxime Goret's avatar
Maxime Goret committed
55

56
    //connect(liste_regle_transition, SIGNAL(currentIndexChanged(int)), liste_voisinage, SLOT(setCurrentIndex(int)));
Maxime Goret's avatar
Merge  
Maxime Goret committed
57

58
59

    bouton_valide = new QPushButton("Valider");
Maxime Goret's avatar
Maxime Goret committed
60

Maxime Goret's avatar
Maxime Goret committed
61
62
63
64
    layoutvalid = new QHBoxLayout;

    boutonEtat = new QPushButton("Etats");

Maxime Goret's avatar
Merge  
Maxime Goret committed
65
66
67
68
    layoutEtat = new QHBoxLayout;
    layoutEtat->addWidget(etat);
    layoutEtat->addWidget(nb_etats);

Maxime Goret's avatar
Merge  
Maxime Goret committed
69

Maxime Goret's avatar
merge  
Maxime Goret committed
70
71
72
73
74
75


    valider_Etat = new QPushButton("Valider le nombre d'états");



Maxime Goret's avatar
Merge  
Maxime Goret committed
76

Maxime Goret's avatar
Maxime Goret committed
77
    connect(boutonEtat, SIGNAL(clicked()), this, SLOT(parametrerEtats()));
Maxime Goret's avatar
Merge  
Maxime Goret committed
78

Maxime Goret's avatar
Maxime Goret committed
79
    connect(bouton_valide, SIGNAL(clicked()), this, SLOT(validerParametrage()));
Maxime Goret's avatar
merge  
Maxime Goret committed
80
81
    connect(valider_Etat, SIGNAL(clicked()), this, SLOT(changerEtatDefault()));

82

Maxime Goret's avatar
Maxime Goret committed
83
    //ajout regle :
Maxime Goret's avatar
Maxime Goret committed
84
    form_choix->addRow("Nom du modèle : ", nom_modele);
85
86
87
88
    form_choix->addRow("Nom automate :", nom_automate);
    form_choix->addRow("Auteur :", auteur);
    form_choix->addRow("Année :", annee);
    form_choix->addRow("Description :", description);
Maxime Goret's avatar
Merge  
Maxime Goret committed
89
    form_choix->addRow(layoutEtat);
Maxime Goret's avatar
merge  
Maxime Goret committed
90
91
92
93
94
95
96
    form_choix->addRow(valider_Etat);



    //form_choix->addRow("Etat défaut :", etat_default);


Maxime Goret's avatar
Maxime Goret committed
97

98
    general->addWidget(fenetre_init, 0, 0, 9, 1);
99
100

    //définition de la frame contenant la grille de sélection du voisinage
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
    fenetre_param = new QWidget;
    fenetre_param->setFixedWidth(500);
    label_param = new QLabel("Paramétrer votre choix :");

    form_param = new QGridLayout(fenetre_param);
    form_rayon = new QFormLayout;
    rayon = new QSpinBox;

    general->addWidget(label_param, 0, 1, 1, 1);
    general->addWidget(fenetre_param, 1, 1, 8, 1);

    /*
    form_param->addWidget(label_param, 0, 0, 1, 1);
    form_param->addLayout(form_rayon, 1, 0, 8, 1);

    general->addWidget(fenetre_param, 0, 1, 9, 1);
    */
118

Maxime Goret's avatar
Maxime Goret committed
119

120
121
}

Romain De Laage De Bellefaye's avatar
Romain De Laage De Bellefaye committed
122
void NouveauModele::parametrerEtats() {
Luning Yang's avatar
Luning Yang committed
123
    paramAlpha.reset(new ParamAlpha(nb_etats->value(), this));
Romain De Laage De Bellefaye's avatar
Romain De Laage De Bellefaye committed
124
125
126
	paramAlpha->show();
}

127
128
void NouveauModele::paramVoisinage(const QString& choix_voisinage){
    if(choix_voisinage == "Voisinage de von Neumann" || choix_voisinage == "Voisinage de Moore"){
Maxime Goret's avatar
Maxime Goret committed
129
        if (form_rayon != nullptr) delete form_rayon;
Maxime Goret's avatar
Maxime Goret committed
130
131
        if (grid != nullptr) delete grid;

Maxime Goret's avatar
Maxime Goret committed
132
133
134
        grid = new QTableWidget;
        grid = nullptr;

135
136
137
138
139
140
141
142
143
144
        form_rayon = new QFormLayout;
        rayon = new QSpinBox;

        form_rayon->addRow("Rayon du voisinage :", rayon);
        form_param->addLayout(form_rayon, 0, 0, 1, 1);
        //form_param->addLayout(form_rayon, 1, 0, 8, 1);
    }
    else if(choix_voisinage == "Voisinage arbitraire") {
        this->affGrille();
    }
145
    //else if(choix_voisinage == "--- select ---"){
146
147
        //delete form_rayon;
        //delete grid;
148
    //}
149
150

}
Maxime Goret's avatar
Maxime Goret committed
151

Maxime Goret's avatar
Maxime Goret committed
152
153


154
void NouveauModele::affGrille() {
Maxime Goret's avatar
Maxime Goret committed
155
    if (grid != nullptr) delete grid;
Maxime Goret's avatar
Maxime Goret committed
156
    grid = new QTableWidget(5,5);
Maxime Goret's avatar
Maxime Goret committed
157
    form_param->addWidget(grid, 0, 0, 7, 3);
158
159
160
161
162
163
164
165
166

    grid->horizontalHeader()->setVisible(false); //Pas de nom pour les colonnes.
    grid->verticalHeader()->setVisible(false);
    grid->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //Pas de barre pour scroller.
    grid->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    for(unsigned int i=0; i<5; i++){
        for(unsigned int j=0; j<5; j++)
        {
Maxime Goret's avatar
Maxime Goret committed
167
168
            grid->setRowHeight(j,80);
            grid->setColumnWidth(j,80);
169
170
171
172
173
174
175
176
177
178
179
180
181

            /*
            int x = i-3;
            int y = -1*(j-2);
            std::string co = "(";
            co += x;
            co += ",";
            co += y;
            co += ")";
            QString coordonnees = co;
            */

            grid->setItem(i, j, new QTableWidgetItem);
Maxime Goret's avatar
Maxime Goret committed
182
183
                grid->item(i, j)->setFlags(Qt::ItemIsEnabled);
                grid->item(i,j)->setBackground(Qt::white);
184

Maxime Goret's avatar
Maxime Goret committed
185
            }
186
        }
Maxime Goret's avatar
Maxime Goret committed
187
188
    QColor noir = Qt::black;
    grid->item(2,2)->setBackground(noir);
Maxime Goret's avatar
Maxime Goret committed
189

190
191
192
    connect(grid, SIGNAL(clicked(const QModelIndex&)), this, SLOT(modifGrille(const QModelIndex&)));
}

Maxime Goret's avatar
Maxime Goret committed
193
194


195
196
197
void NouveauModele::modifGrille(const QModelIndex& index){
    unsigned int i = index.row();
    unsigned int j = index.column();
198

199
    QColor rouge = Qt::red;
Maxime Goret's avatar
Maxime Goret committed
200
201
    QColor blanc = Qt::white;

Maxime Goret's avatar
Maxime Goret committed
202
    if (i == 2 && j == 2){
Maxime Goret's avatar
Maxime Goret committed
203
204
205
206
207
208
       return;
    }else if (grid->item(i,j)->background() == blanc){
         grid->item(i,j)->setBackground(rouge);
    }else if(grid->item(i,j)->background() == rouge){
         grid->item(i,j)->setBackground(blanc);
    }
Maxime Goret's avatar
Maxime Goret committed
209

210
211
}

Maxime Goret's avatar
Maxime Goret committed
212
void NouveauModele::changerVoisinage(){
213

Leon Do Castelo's avatar
Leon Do Castelo committed
214
    Fonction* automateFonction = new Fonction(Automate::getInstance().getEnsemble().getEtat(static_cast<unsigned int>(etat_default->value())));
Leon Do Castelo's avatar
Leon Do Castelo committed
215
    Automate::getInstance().setFonction(automateFonction);
Leon Do Castelo's avatar
Leon Do Castelo committed
216

Maxime Goret's avatar
Maxime Goret committed
217
    //delete liste_voisinage;
Maxime Goret's avatar
Maxime Goret committed
218
    form_choix->removeRow(7);
219
    liste_voisinage = new QComboBox();
Maxime Goret's avatar
Maxime Goret committed
220
    layoutvalid = new QHBoxLayout;
221

Maxime Goret's avatar
Maxime Goret committed
222
223
224
225
226
227
228
229
    liste_voisinage->addItem("Voisinage de Moore");
    liste_voisinage->addItem("Voisinage de von Neumann");
    liste_voisinage->addItem("Voisinage arbitraire");
    liste_voisinage->setCurrentIndex(-1);


    form_choix->insertRow(7, "Voisinage :", liste_voisinage);

230
231
    connect(liste_voisinage, SIGNAL(currentTextChanged(const QString&)), this, SLOT(paramVoisinage(const QString&)));
}
Maxime Goret's avatar
Maxime Goret committed
232

Maxime Goret's avatar
Maxime Goret committed
233
234
235
236
237
238
239
240
241
242
243
244
245

void NouveauModele::choisirEtatCourant(const QString& validEtat){

    if (validEtat == "Oui"){

        if (fin != nullptr) delete fin;
        if (next != nullptr) delete next;
        if (layouth5 != nullptr) delete layouth5;
        if (layouth6 != nullptr) delete layouth6;
        if (layoutv2 != nullptr) delete layoutv2;
        if (etatCourant2 != nullptr) delete etatCourant2;
        if (numEtatCourant != nullptr) delete numEtatCourant;

Maxime Goret's avatar
Maxime Goret committed
246

Maxime Goret's avatar
Maxime Goret committed
247
248
249
250
251
252
253
254
        layouth6 = new QHBoxLayout;
        layouth5 = new QHBoxLayout;
        layoutv2 = new QVBoxLayout;


        fin = new QPushButton("Terminer");
        next = new QPushButton("Règle suivante");

Maxime Goret's avatar
Maxime Goret committed
255
        form_choix->insertRow(9,layoutv2);
Maxime Goret's avatar
Maxime Goret committed
256
257
258
259
260
261
        layoutv2->addLayout(layouth5);
        layoutv2->addLayout(layouth6);

        etatCourant2 = new QLabel("Etat Courant : ");

        numEtatCourant = new QSpinBox;
Maxime Goret's avatar
Maxime Goret committed
262
        numEtatCourant->setRange(0,nb_etats->value()-1);
Maxime Goret's avatar
Maxime Goret committed
263
264
265
266
267
268

        layouth5->addWidget(etatCourant2);
        layouth5->addWidget(numEtatCourant);

        layouth6->addWidget(fin);
        layouth6->addWidget(next);
Maxime Goret's avatar
Maxime Goret committed
269
270


Maxime Goret's avatar
Maxime Goret committed
271
        connect(next, SIGNAL(clicked()), this, SLOT(addRegle()));
Maxime Goret's avatar
Maxime Goret committed
272
273
        connect(fin, SIGNAL(clicked()), this, SLOT(validation()));

Maxime Goret's avatar
Maxime Goret committed
274
275
276
277
278
279
280
281
282
283
284
285

    }else{


       if (fin != nullptr) delete fin;
       if (next != nullptr) delete next;
       if (layouth5 != nullptr) delete layouth5;
       if (layouth6 != nullptr) delete layouth6;
       if (layoutv2 != nullptr) delete layoutv2;
       if (etatCourant2 != nullptr) delete etatCourant2;
       if (numEtatCourant != nullptr) delete numEtatCourant;

Maxime Goret's avatar
Maxime Goret committed
286

Maxime Goret's avatar
Maxime Goret committed
287
288
289
290
291
292
293
294
295
296
297
298
299
       numEtatCourant = new QSpinBox;
       numEtatCourant = nullptr;

       layouth6 = new QHBoxLayout;
       layouth5 = new QHBoxLayout;
       layoutv2 = new QVBoxLayout;


       etatCourant2 = new QLabel("Etat Courant non pris en compte ");

       fin = new QPushButton("Terminer");
       next = new QPushButton("Règle suivante");

Maxime Goret's avatar
Maxime Goret committed
300
       form_choix->insertRow(9,layoutv2);
Maxime Goret's avatar
Maxime Goret committed
301
302
       layoutv2->addLayout(layouth5);
       layoutv2->addLayout(layouth6);
Maxime Goret's avatar
Maxime Goret committed
303
304


Maxime Goret's avatar
Maxime Goret committed
305
       layouth5->addWidget(etatCourant2);
Maxime Goret's avatar
Maxime Goret committed
306

Maxime Goret's avatar
Maxime Goret committed
307
308
309
       layouth6->addWidget(fin);
       layouth6->addWidget(next);

Maxime Goret's avatar
Maxime Goret committed
310

Maxime Goret's avatar
Maxime Goret committed
311
       connect(next, SIGNAL(clicked()), this, SLOT(addRegle()));
Maxime Goret's avatar
Maxime Goret committed
312
313
       connect(fin, SIGNAL(clicked()), this, SLOT(validation()));

Maxime Goret's avatar
Maxime Goret committed
314
315
316
317
318
319

    }


}

Maxime Goret's avatar
Maxime Goret committed
320
void NouveauModele::paramRegle() {
Maxime Goret's avatar
merge  
Maxime Goret committed
321

Maxime Goret's avatar
Maxime Goret committed
322
323
324
325
326
    seuilMax = new QLabel("Seuil Max : ");
    seuilMin = new QLabel("Seuil Min : ");
    destination = new QLabel("Destination : ");
    etatCourant = new QLabel("Etat Courant : ");

Maxime Goret's avatar
merge  
Maxime Goret committed
327
    etatDest = new QSpinBox;
Leon Do Castelo's avatar
Leon Do Castelo committed
328
    etatDest->setRange(0, nb_etats->value()-1);
Maxime Goret's avatar
Maxime Goret committed
329
330
331
332
333
334

    valid_Etat = new QComboBox;
    valid_Etat->addItem("Oui");
    valid_Etat->addItem("Non");
    valid_Etat->setCurrentIndex(-1);

Maxime Goret's avatar
merge  
Maxime Goret committed
335

Maxime Goret's avatar
Maxime Goret committed
336
337
338
339
340
341
342
343
344
345
346
        seuilValidator=new QIntValidator;

        if(layouth1 != nullptr) delete layouth1;
        if(layouth2 != nullptr) delete layouth2;
        if(layouth3 != nullptr) delete layouth3;
        if(layouth4 != nullptr) delete layouth4;
        if(layoutv != nullptr) delete layoutv;
        if(layouth5 != nullptr) delete layouth5;
        if(layouth6 != nullptr) delete layouth6;
        if(layoutv2 != nullptr) delete layoutv2;

Maxime Goret's avatar
Maxime Goret committed
347

Maxime Goret's avatar
Merge  
Maxime Goret committed
348
        layoutv = new QVBoxLayout;
Maxime Goret's avatar
Maxime Goret committed
349
350
351
352
353
        layouth1 = new QHBoxLayout;
        layouth2 = new QHBoxLayout;
        layouth3 = new QHBoxLayout;
        layouth4 = new QHBoxLayout;

Maxime Goret's avatar
Maxime Goret committed
354
355
356
        layouth6 = new QHBoxLayout;
        layouth5 = new QHBoxLayout;
        layoutv2 = new QVBoxLayout;
Maxime Goret's avatar
Merge  
Maxime Goret committed
357

Maxime Goret's avatar
Maxime Goret committed
358

Maxime Goret's avatar
Maxime Goret committed
359
        form_choix->insertRow(8,layoutv);
Maxime Goret's avatar
Maxime Goret committed
360
361
362
        layoutv->addLayout(layouth1);
        layoutv->addLayout(layouth2);
        layoutv->addLayout(layouth3);
Maxime Goret's avatar
Maxime Goret committed
363
        layoutv->addLayout(layouth4);
Maxime Goret's avatar
Maxime Goret committed
364
365
366
367
368
369



        seuilValidator->setRange(0,1);

        layouth1->addWidget(seuilMin);
370
        for(int i=0; i<8; i++) {
Maxime Goret's avatar
Maxime Goret committed
371
372
373
374
375
376
377
378
379
380
381
382
            numSeuilMin[i]=new QLineEdit;
            numSeuilMin[i]->setFixedWidth(22);
            numSeuilMin[i]->setMaxLength(2);
            numSeuilMin[i]->setText("-1");
            numSeuilMin[i]->setValidator(seuilValidator);
            if (i<nb_etats->value()){
            layouth1->addWidget(numSeuilMin[i]);
            }
         }


         layouth2->addWidget(seuilMax);
383
         for(int i=0; i<8; i++) {
Maxime Goret's avatar
Maxime Goret committed
384
385
386
387
388
389
390
391
392
393
394
395
396
397
             numSeuilMax[i]=new QLineEdit;
             numSeuilMax[i]->setFixedWidth(22);
             numSeuilMax[i]->setMaxLength(2);
             numSeuilMax[i]->setText("-1");
             numSeuilMax[i]->setValidator(seuilValidator);
             if (i<nb_etats->value()){
             layouth2->addWidget(numSeuilMax[i]);
             }
         }
         layouth3->addWidget(destination);
         layouth3->addWidget(etatDest);

         layouth4->addWidget(etatCourant);
         layouth4->addWidget(valid_Etat);
Maxime Goret's avatar
Merge  
Maxime Goret committed
398

Maxime Goret's avatar
Maxime Goret committed
399
         connect(valid_Etat, SIGNAL(currentTextChanged(const QString&)), this, SLOT(choisirEtatCourant(const QString&)));
Maxime Goret's avatar
Maxime Goret committed
400

Maxime Goret's avatar
Maxime Goret committed
401
402
403
404
405
}



void NouveauModele::addRegle(){
Leon Do Castelo's avatar
Leon Do Castelo committed
406
407
408
409
410
411
412
413
414
415
    if(valid_Etat->currentIndex()==(-1));
    else
    {
        int min[8], max[8];

        for(int i = 0; i<8; i++)
        {
            min[i] = numSeuilMin[i]->text().toInt();
            max[i] = numSeuilMax[i]->text().toInt();
        }
Maxime Goret's avatar
Maxime Goret committed
416

Leon Do Castelo's avatar
Leon Do Castelo committed
417
418
419
420
421
422
423
424
        if(valid_Etat->currentIndex()==1)
            Automate::getInstance().getFonction().ajouterRegle(Automate::getInstance().getEnsemble().getEtat(etatDest->value()), min, max);

        else
            Automate::getInstance().getFonction().ajouterRegle(Automate::getInstance().getEnsemble().getEtat(etatDest->value()), min, max, numEtatCourant->value());

        paramRegle();
    }
Maxime Goret's avatar
Maxime Goret committed
425
426
}

Leon Do Castelo's avatar
Leon Do Castelo committed
427
428
429
430
431
432
433
void NouveauModele::validerParametrage(){

    Automate::getInstance().setTitle(nom_automate->text().toStdString());
    Automate::getInstance().setAuthor(auteur->text().toStdString());
    Automate::getInstance().setDesc(description->text().toStdString());
    Automate::getInstance().setYear(annee->text().toInt());

Leon Do Castelo's avatar
Leon Do Castelo committed
434
    Automate::getInstance().getFonction().setEtatDefaut(Automate::getInstance().getEnsemble().getEtat(etat_default->value()));
Leon Do Castelo's avatar
Leon Do Castelo committed
435

Leon Do Castelo's avatar
Leon Do Castelo committed
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
    if(liste_voisinage->currentIndex()==-1);
    else
        if(liste_voisinage->currentIndex()==0) //moore
        {
            RegleVoisinageMoore *regle_voisins = new RegleVoisinageMoore;
            regle_voisins->setr(rayon->value());
            Automate::getInstance().setRegleVoisinage(regle_voisins);
            Database::getInstance().saveAutomaton(Automate::getInstance());
            this->close();
        }
    else
        if(liste_voisinage->currentIndex()==1) //von neumann
        {
            RegleVoisinageNeumann *regle_voisins = new RegleVoisinageNeumann;
            regle_voisins->setr(rayon->value());
            Automate::getInstance().setRegleVoisinage(regle_voisins);
            Database::getInstance().saveAutomaton(Automate::getInstance());
            this->close();
        }
    else //arbitraire
        {
            RegleVoisinageArbitraire *regle_voisins = new RegleVoisinageArbitraire;
            Coordonnees c;
            for(unsigned int i=0; i<5; i++){
                for(unsigned int j=0; j<5; j++)
                {
                    if(grid->item(i,j)->background().color()==Qt::red)
                    {
                        c.x = i;
                        c.y = j;
                        regle_voisins->coordonnees.push_back(c);
                    }
                }
            }
            Automate::getInstance().setRegleVoisinage(regle_voisins);
            Database::getInstance().saveAutomaton(Automate::getInstance());
            this->close();
        }
Leon Do Castelo's avatar
Leon Do Castelo committed
474
}
Maxime Goret's avatar
Maxime Goret committed
475

Maxime Goret's avatar
Merge  
Maxime Goret committed
476

Maxime Goret's avatar
merge  
Maxime Goret committed
477
478
479
480
481
482
483
484
485
486
487
488
489


void NouveauModele::changerEtatDefault(){
    etat_default = new QSpinBox;
    etat_default->setRange(0,(nb_etats->value())-1);

    valider_EtatDefault = new QPushButton("Valider l'état de défaut");

    form_choix->removeRow(6);
    form_choix->addRow("Etat défaut : ",etat_default);
    form_choix->addRow(valider_EtatDefault);
    connect(valider_EtatDefault, SIGNAL(clicked()), this, SLOT(parametrerEtats()));
}
Maxime Goret's avatar
Maxime Goret committed
490
491

void NouveauModele::validation(){
Leon Do Castelo's avatar
Leon Do Castelo committed
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
    if(valid_Etat->currentIndex()==(-1));
    else
    {
        int min[8], max[8];

        for(int i = 0; i<8; i++)
        {
            min[i] = numSeuilMin[i]->text().toInt();
            max[i] = numSeuilMax[i]->text().toInt();
        }

        if(valid_Etat->currentIndex()==1)
            Automate::getInstance().getFonction().ajouterRegle(Automate::getInstance().getEnsemble().getEtat(etatDest->value()), min, max);

        else
            Automate::getInstance().getFonction().ajouterRegle(Automate::getInstance().getEnsemble().getEtat(etatDest->value()), min, max, numEtatCourant->value());
    }

    //bouton_valide = new QPushButton("Valider");
Maxime Goret's avatar
Maxime Goret committed
511
512
    form_choix->addRow(bouton_valide);
}