code: def save_expanded_state(self):
          
          self.__expanded_state = {}
          def add_to_state(item):
              user_text = get_item_user_text(item)
              self.__expanded_state[hash(user_text)] = item.isExpanded()
          def browse_children(item):
              add_to_state(item)
              for index in range(item.childCount()):
                  citem = item.child(index)
                  user_text = get_item_user_text(citem)
                  self.__expanded_state[hash(user_text)] = citem.isExpanded()
                  browse_children(citem)
          for tlitem in self.get_top_level_items():
              browse_children(tlitem)
docs: Save all items expanded state