Hook up global undo/redo

This commit is contained in:
Kovid Goyal 2013-10-15 16:23:13 +05:30
parent b49417adfd
commit d1f35bebdf
2 changed files with 16 additions and 4 deletions

View File

@ -87,11 +87,23 @@ class Boss(QObject):
set_current_container(nc) set_current_container(nc)
self.update_global_history_actions() self.update_global_history_actions()
def apply_container_update_to_gui(self):
container = current_container()
self.gui.file_list.build(container)
self.update_global_history_actions()
# TODO: Apply to other GUI elements
def do_global_undo(self): def do_global_undo(self):
pass container = self.global_undo.undo()
if container is not None:
set_current_container(container)
self.apply_container_update_to_gui()
def do_global_redo(self): def do_global_redo(self):
pass container = self.global_undo.redo()
if container is not None:
set_current_container(container)
self.apply_container_update_to_gui()
def delete_requested(self, spine_items, other_items): def delete_requested(self, spine_items, other_items):
if not self.check_dirtied(): if not self.check_dirtied():

View File

@ -96,11 +96,11 @@ class FileList(QTreeWidget):
return s return s
def set_state(self, state): def set_state(self, state):
for category, item in self.categories: for category, item in self.categories.iteritems():
item.setExpanded(category in state['expanded']) item.setExpanded(category in state['expanded'])
self.verticalScrollBar().setValue(state['pos']) self.verticalScrollBar().setValue(state['pos'])
for parent in self.categories.itervalues(): for parent in self.categories.itervalues():
for c in (parent.child(i) for i in parent.childCount()): for c in (parent.child(i) for i in xrange(parent.childCount())):
name = unicode(c.data(0, NAME_ROLE).toString()) name = unicode(c.data(0, NAME_ROLE).toString())
if name in state['selected']: if name in state['selected']:
c.setSelected(True) c.setSelected(True)