From 1b2ca817edc9350e572b76d667fcce49e3b4d285 Mon Sep 17 00:00:00 2001
From: Thibault Soucarre <thibault.soucarre@inria.fr>
Date: Thu, 28 Aug 2014 12:23:42 +0000
Subject: [PATCH] correct a bug when changing color/visible many times before
 using apply button

---
 src/interface/Settings_window.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/interface/Settings_window.cpp b/src/interface/Settings_window.cpp
index 3cf9e5e2..df8ff893 100644
--- a/src/interface/Settings_window.cpp
+++ b/src/interface/Settings_window.cpp
@@ -208,8 +208,12 @@ void Settings_window::color_changed(string name, QTableWidget *table, const QCol
     S.add_state_to_palette(name, palette_name, state_name, color, checked );
     p->add_state(state_name, color, checked );
     //_c->change_entity_color(state_name, color.get_red(), color.get_green(), color.get_blue());
-    std::pair<std::string, Color> change(state_name, color);
-    _states_changes.insert(change);
+    if(_states_changes.count(state_name)>0)
+        _states_changes[state_name] = color;
+    else{
+        std::pair<std::string, Color> change(state_name, color);
+        _states_changes.insert(change);
+    }
     return;
 }
 
@@ -234,9 +238,14 @@ void Settings_window::visible_changed(string name, QTableWidget *table, const bo
     Color color(qc.red()/255, qc.green()/255, qc.blue()/255);
     S.add_state_to_palette(name, palette_name, state_name, color, checked );
     p->add_state(state_name, color, checked );
+    if(_states_visible_changes.count(state_name)>0)
+        _states_visible_changes[state_name] = checked;
+    else{
     std::pair<std::string, bool> change(state_name, checked);
     _states_visible_changes.insert(change);
+    }
     return;
+
 }
 void Settings_window::add_table_line(QTableWidget *table,
                                      const char *color_slot,
-- 
GitLab