Edit Book: When refreshing the ToC view pick up the unsaved changes, if any, in the ncx file

This commit is contained in:
Kovid Goyal 2014-05-10 19:22:46 +05:30
parent e4024b8b05
commit a480c5c5a0
2 changed files with 7 additions and 1 deletions

View File

@ -106,6 +106,7 @@ class Boss(QObject):
self.gui.check_book.check_requested.connect(self.check_requested) self.gui.check_book.check_requested.connect(self.check_requested)
self.gui.check_book.fix_requested.connect(self.fix_requested) self.gui.check_book.fix_requested.connect(self.fix_requested)
self.gui.toc_view.navigate_requested.connect(self.link_clicked) self.gui.toc_view.navigate_requested.connect(self.link_clicked)
self.gui.toc_view.refresh_requested.connect(self.commit_all_editors_to_container)
self.gui.image_browser.image_activated.connect(self.image_activated) self.gui.image_browser.image_activated.connect(self.image_activated)
self.gui.checkpoints.revert_requested.connect(self.revert_requested) self.gui.checkpoints.revert_requested.connect(self.revert_requested)
self.gui.checkpoints.compare_requested.connect(self.compare_requested) self.gui.checkpoints.compare_requested.connect(self.compare_requested)

View File

@ -110,6 +110,7 @@ class Delegate(QStyledItemDelegate):
class TOCViewer(QWidget): class TOCViewer(QWidget):
navigate_requested = pyqtSignal(object, object) navigate_requested = pyqtSignal(object, object)
refresh_requested = pyqtSignal()
def __init__(self, parent=None): def __init__(self, parent=None):
QWidget.__init__(self, parent) QWidget.__init__(self, parent)
@ -134,7 +135,11 @@ class TOCViewer(QWidget):
l.addWidget(self.view) l.addWidget(self.view)
self.refresh_action = QAction(QIcon(I('view-refresh.png')), _('&Refresh'), self) self.refresh_action = QAction(QIcon(I('view-refresh.png')), _('&Refresh'), self)
self.refresh_action.triggered.connect(self.build) self.refresh_action.triggered.connect(self.refresh)
def refresh(self):
self.refresh_requested.emit() # Give boos a chance to commit dirty editors to the container
self.build()
def item_pressed(self, item): def item_pressed(self, item):
if QApplication.mouseButtons() & Qt.LeftButton: if QApplication.mouseButtons() & Qt.LeftButton: