From 9274ae697bd4c4a05f473aa498d4f6c30f0ce4f3 Mon Sep 17 00:00:00 2001
From: Anthony <anthony.noir@etu.utc.fr>
Date: Sat, 5 Jun 2021 16:59:45 +0200
Subject: [PATCH] =?UTF-8?q?taille=20Historique=20param=C3=A9trable?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 forms/interface.ui     | 30 ++++++------------------------
 include/interface.hpp  |  2 ++
 include/simulation.hpp |  7 +++++++
 src/interface.cpp      |  4 ++++
 src/simulation.cpp     |  2 +-
 5 files changed, 20 insertions(+), 25 deletions(-)

diff --git a/forms/interface.ui b/forms/interface.ui
index 7c54e79..9dfb890 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 ab4e52f..fbfe06f 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 8627f50..03122c8 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 f43b5bc..37fd4df 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 540d545..87916a7 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;
     }
-- 
GitLab