diff --git a/forms/interface.ui b/forms/interface.ui index 7c54e79f3349d6ac43b200bda134e9f9d1a75221..9dfb8906e964cb16c0764e114bdf1d42489938af 100644 --- a/forms/interface.ui +++ b/forms/interface.ui @@ -186,35 +186,17 @@ <string>Number of previous pattern recorded :</string> </property> - <property name="buddy"> - <cstring>recordLineEdit</cstring> - </property> </widget> </item> <item> - <widget class="QLineEdit" name="recordLineEdit"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> + <widget class="QSpinBox" name="recordSpinBox"> + <property name="minimum"> + <number>0</number> </property> - <property name="maximumSize"> - <size> - <width>40</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string>10</string> + <property name="maximum"> + <number>100</number> </property> - <property name="maxLength"> + <property name="value"> <number>10</number> </property> </widget> diff --git a/include/interface.hpp b/include/interface.hpp index ab4e52f7197ac73d2756b988b275a844439b3098..fbfe06f0f03d92cb86770cc008aabe38af72d280 100644 --- a/include/interface.hpp +++ b/include/interface.hpp @@ -81,6 +81,8 @@ private slots: void on_resetButton_clicked(); + void on_recordSpinBox_valueChanged(int arg1); + private: //! \brief Initialiser la liste des transitions et voisinages disponibles void init_transition_neighborhood_list(); diff --git a/include/simulation.hpp b/include/simulation.hpp index 8627f507b29960217a8d8cc7236923c0e395ed9e..03122c82adfcce548be040ea9a3e06cfb26e13d6 100644 --- a/include/simulation.hpp +++ b/include/simulation.hpp @@ -52,6 +52,13 @@ public: + //! \brief Modificateur de la taille de l'historique + //! + //! Vide également l'historique + void setHistorySize(unsigned int size) {hist = History(size);} + + + //! \brief Définit la grille //! //! Si la simulation est lancée, cela ne modifie pas la grille de départ. Cela définit la grille de départ dans le cas contraire. diff --git a/src/interface.cpp b/src/interface.cpp index f43b5bc3eadd8a4baf328e345684fa2e83850da3..37fd4df5f1d751242fd26fe1595dae11f0126c6a 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -654,3 +654,7 @@ void MainWindow::on_resetButton_clicked() { simulation.reset(); ui->grid_view->copy_grid(simulation.getGrid()); } + +void MainWindow::on_recordSpinBox_valueChanged(int newSize) { + simulation.setHistorySize(newSize); +} diff --git a/src/simulation.cpp b/src/simulation.cpp index 540d5455186f7d4070b32e4b15b6c21114b7549f..87916a7fa5f4b3cf324e9efbc79496e273a72149 100644 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -31,7 +31,7 @@ void Simulation::setGrid(const Grid & grid) { if(!time) { startGrid = grid; time = 0; - hist = History(10); + hist = History(hist.get_nbMax()); } else if((grid.get_col() != automaton.getGrid().get_col())&&(grid.get_rows() != automaton.getGrid().get_rows())) { return; }