Treeview can now highlight last opened subprojects
diff --git a/common/treeviewchoice.py b/common/treeviewchoice.py
index b709eba..4bf76ea 100755
--- a/common/treeviewchoice.py
+++ b/common/treeviewchoice.py
@@ -187,10 +187,19 @@
                        
         if self.initSelected and self.treeView.exists(self.initSelected):
             if 'subcells' in self.initSelected:
-                parent_path = os.path.split(os.path.split(self.initSelected)[0])[0]               
-                self.setselect(parent_path)
+                # ancestor projects must be expanded before setting current
+                item_path = self.initSelected
+                ancestors = []
+                while 'subcells' in item_path:
+                    item_path = os.path.split(os.path.split(item_path)[0])[0]
+                    ancestors.insert(0,item_path)
+                for a in ancestors:
+                    self.treeView.item(a, open=True)       
+                self.setselect(self.initSelected)
             elif self.initSelected[0]=='.':
-                self.setselect(self.initSelected[1:])
+                parent_path = self.initSelected[1:]
+                self.treeView.item(parent_path, open=True) 
+                self.setselect(self.initSelected)
             else:
                 self.setselect(self.initSelected)
             self.initSelected = None
@@ -242,11 +251,11 @@
                 i+=1
                 descendants=self.treeView.get_children(item=g)
                 add_ids(descendants)
-            i+=1
         
         for c in list(self.getlist()):
             grandchildren=self.treeView.get_children(item=c)
             add_ids(grandchildren)
+            i+=1
         
         n = 0
         for item in valuelist:
@@ -260,7 +269,6 @@
                 valuelist.insert(n,item)
             n += 1
         
-        
     def func_callback(self, callback, event=None):
         callback(self.treeView.item(self.treeView.selection()))
 
@@ -269,7 +277,7 @@
 
     def setselect(self, value):
         self.treeView.selection_set(value)
-
+        
     def selected(self):
         value = self.treeView.item(self.treeView.selection())
         if value['values']: