@@ -281,6 +281,7 @@ def __init__(self, parent=None, database_name=None):
281281 super ().__init__ (parent )
282282 self .database_name = database_name
283283 self .db_read_only = project_settings .db_is_readonly (self .database_name )
284+ self .expand_state = []
284285 self .HEADERS = AB_metadata .get_existing_fields (self .HEADERS )
285286
286287 # set drag ability
@@ -511,14 +512,25 @@ def find_levels(self, level=None) -> list:
511512 parent = parent .parent ()
512513 return levels [::- 1 ]
513514
514- def expanded_list (self ):
515+ def get_expand_state (self ) -> None :
516+ """Store the expanded state of the tree.
517+
518+ Does not return anything but stores the expanded items in a self.expand_state."""
515519 it = self .model .iterator (None )
516520 expanded_items = []
517521 while it != None :
518522 if self .isExpanded (self .model .createIndex (it .row (), 0 , it )):
519523 expanded_items .append (self .build_path (it ))
520524 it = self .model .iterator (it )
521- return expanded_items
525+ self .expand_state = expanded_items
526+
527+ def set_expand_state (self ) -> None :
528+ """Sets any items in self.expand_state in the tree to expanded."""
529+ it = self .model .iterator (None )
530+ while it != None :
531+ if self .build_path (it ) in self .expand_state :
532+ self .setExpanded (self .model .createIndex (it .row (), 0 , it ), True )
533+ it = self .model .iterator (it )
522534
523535 def build_path (self , iter ):
524536 """Given an iterator of the TreeItem type build the path back to the
0 commit comments