From 7ad388c0026bcd34acc6f259128fbec34552e177 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 1 Feb 2012 23:50:15 +0000
Subject: [PATCH] save open/closed state of tree nodes

---
 Fltk/onelabWindow.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index 8560bc22d8..eee7db129b 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -943,6 +943,10 @@ void onelabWindow::rebuildTree()
 
   int width = (int)(0.5 * _tree->w());
 
+  std::vector<std::string> closed;
+  for (Fl_Tree_Item *n = _tree->first(); n; n = n->next())
+    if(n->is_close()) closed.push_back(getPath(n));
+
   _tree->clear();
   _tree->sortorder(FL_TREE_SORT_ASCENDING);
   _tree->selectmode(FL_TREE_SELECT_NONE);
@@ -1046,6 +1050,9 @@ void onelabWindow::rebuildTree()
     }
   }
 
+  for(unsigned int i = 0; i < closed.size(); i++)
+    _tree->close(closed[i].c_str());
+
   _tree->redraw();
 
   FL_NORMAL_SIZE += _deltaFontSize;
-- 
GitLab