'Save all items expanded state'

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)
