mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Commit dirty editors to container before creating a checkpoint so that you dont lose any WIP when reverting to that checkpoint later. Fixes #1275097 [Edit Book: Create Checkpoint possibly lacks a self.commit_all_editors_to_container](https://bugs.launchpad.net/calibre/+bug/1275097)
This commit is contained in:
parent
3b1d24a907
commit
806b927deb
@ -256,7 +256,6 @@ class Boss(QObject):
|
|||||||
|
|
||||||
@in_thread_job
|
@in_thread_job
|
||||||
def delete_requested(self, spine_items, other_items):
|
def delete_requested(self, spine_items, other_items):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Delete files'))
|
self.add_savepoint(_('Delete files'))
|
||||||
c = current_container()
|
c = current_container()
|
||||||
c.remove_from_spine(spine_items)
|
c.remove_from_spine(spine_items)
|
||||||
@ -282,7 +281,6 @@ class Boss(QObject):
|
|||||||
self.commit_editor_to_container(c.opf_name)
|
self.commit_editor_to_container(c.opf_name)
|
||||||
|
|
||||||
def reorder_spine(self, items):
|
def reorder_spine(self, items):
|
||||||
self.commit_dirty_opf()
|
|
||||||
self.add_savepoint(_('Re-order text'))
|
self.add_savepoint(_('Re-order text'))
|
||||||
c = current_container()
|
c = current_container()
|
||||||
c.set_spine(items)
|
c.set_spine(items)
|
||||||
@ -335,7 +333,6 @@ class Boss(QObject):
|
|||||||
folder_map = get_recommended_folders(current_container(), files)
|
folder_map = get_recommended_folders(current_container(), files)
|
||||||
files = {x:('/'.join((folder, os.path.basename(x))) if folder else os.path.basename(x))
|
files = {x:('/'.join((folder, os.path.basename(x))) if folder else os.path.basename(x))
|
||||||
for x, folder in folder_map.iteritems()}
|
for x, folder in folder_map.iteritems()}
|
||||||
self.commit_dirty_opf()
|
|
||||||
self.add_savepoint(_('Add files'))
|
self.add_savepoint(_('Add files'))
|
||||||
c = current_container()
|
c = current_container()
|
||||||
for path, name in files.iteritems():
|
for path, name in files.iteritems():
|
||||||
@ -356,7 +353,6 @@ class Boss(QObject):
|
|||||||
self.set_modified()
|
self.set_modified()
|
||||||
|
|
||||||
def edit_toc(self):
|
def edit_toc(self):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Edit Table of Contents'))
|
self.add_savepoint(_('Edit Table of Contents'))
|
||||||
d = TOCEditor(title=self.current_metadata.title, parent=self.gui)
|
d = TOCEditor(title=self.current_metadata.title, parent=self.gui)
|
||||||
if d.exec_() != d.Accepted:
|
if d.exec_() != d.Accepted:
|
||||||
@ -368,7 +364,6 @@ class Boss(QObject):
|
|||||||
self.gui.toc_view.update_if_visible()
|
self.gui.toc_view.update_if_visible()
|
||||||
|
|
||||||
def polish(self, action, name):
|
def polish(self, action, name):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
with BusyCursor():
|
with BusyCursor():
|
||||||
self.add_savepoint(name)
|
self.add_savepoint(name)
|
||||||
try:
|
try:
|
||||||
@ -443,7 +438,6 @@ class Boss(QObject):
|
|||||||
rename_files, current_container(), name_map)
|
rename_files, current_container(), name_map)
|
||||||
|
|
||||||
def bulk_rename_requested(self, name_map):
|
def bulk_rename_requested(self, name_map):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Bulk rename'))
|
self.add_savepoint(_('Bulk rename'))
|
||||||
self.gui.blocking_job(
|
self.gui.blocking_job(
|
||||||
'bulk_rename_files', _('Renaming and updating links...'), partial(self.rename_done, name_map),
|
'bulk_rename_files', _('Renaming and updating links...'), partial(self.rename_done, name_map),
|
||||||
@ -486,6 +480,7 @@ class Boss(QObject):
|
|||||||
ac.setText(text + ' ' + (getattr(gu, x + '_msg') or '...'))
|
ac.setText(text + ' ' + (getattr(gu, x + '_msg') or '...'))
|
||||||
|
|
||||||
def add_savepoint(self, msg):
|
def add_savepoint(self, msg):
|
||||||
|
self.commit_all_editors_to_container()
|
||||||
nc = clone_container(current_container(), self.mkdtemp())
|
nc = clone_container(current_container(), self.mkdtemp())
|
||||||
self.global_undo.add_savepoint(nc, msg)
|
self.global_undo.add_savepoint(nc, msg)
|
||||||
set_current_container(nc)
|
set_current_container(nc)
|
||||||
@ -556,7 +551,6 @@ class Boss(QObject):
|
|||||||
if hasattr(ed, 'fix_html'):
|
if hasattr(ed, 'fix_html'):
|
||||||
ed.fix_html()
|
ed.fix_html()
|
||||||
else:
|
else:
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
with BusyCursor():
|
with BusyCursor():
|
||||||
self.add_savepoint(_('Fix HTML'))
|
self.add_savepoint(_('Fix HTML'))
|
||||||
fix_all_html(current_container())
|
fix_all_html(current_container())
|
||||||
@ -571,7 +565,6 @@ class Boss(QObject):
|
|||||||
break
|
break
|
||||||
ed.pretty_print(name)
|
ed.pretty_print(name)
|
||||||
else:
|
else:
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
with BusyCursor():
|
with BusyCursor():
|
||||||
self.add_savepoint(_('Beautify files'))
|
self.add_savepoint(_('Beautify files'))
|
||||||
pretty_all(current_container())
|
pretty_all(current_container())
|
||||||
@ -866,7 +859,6 @@ class Boss(QObject):
|
|||||||
|
|
||||||
@in_thread_job
|
@in_thread_job
|
||||||
def split_requested(self, name, loc):
|
def split_requested(self, name, loc):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Split %s') % self.gui.elided_text(name))
|
self.add_savepoint(_('Split %s') % self.gui.elided_text(name))
|
||||||
try:
|
try:
|
||||||
bottom_name = split(current_container(), name, loc)
|
bottom_name = split(current_container(), name, loc)
|
||||||
@ -890,7 +882,6 @@ class Boss(QObject):
|
|||||||
d = MultiSplit(self.gui)
|
d = MultiSplit(self.gui)
|
||||||
if d.exec_() == d.Accepted:
|
if d.exec_() == d.Accepted:
|
||||||
with BusyCursor():
|
with BusyCursor():
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Split %s') % self.gui.elided_text(name))
|
self.add_savepoint(_('Split %s') % self.gui.elided_text(name))
|
||||||
try:
|
try:
|
||||||
multisplit(current_container(), name, d.xpath)
|
multisplit(current_container(), name, d.xpath)
|
||||||
@ -947,7 +938,6 @@ class Boss(QObject):
|
|||||||
|
|
||||||
@in_thread_job
|
@in_thread_job
|
||||||
def fix_requested(self, errors):
|
def fix_requested(self, errors):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Auto-fix errors'))
|
self.add_savepoint(_('Auto-fix errors'))
|
||||||
c = self.gui.check_book
|
c = self.gui.check_book
|
||||||
c.parent().show()
|
c.parent().show()
|
||||||
@ -961,7 +951,6 @@ class Boss(QObject):
|
|||||||
|
|
||||||
@in_thread_job
|
@in_thread_job
|
||||||
def merge_requested(self, category, names, master):
|
def merge_requested(self, category, names, master):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Merge files into %s') % self.gui.elided_text(master))
|
self.add_savepoint(_('Merge files into %s') % self.gui.elided_text(master))
|
||||||
try:
|
try:
|
||||||
merge(current_container(), category, names, master)
|
merge(current_container(), category, names, master)
|
||||||
@ -974,7 +963,6 @@ class Boss(QObject):
|
|||||||
|
|
||||||
@in_thread_job
|
@in_thread_job
|
||||||
def link_stylesheets_requested(self, names, sheets, remove):
|
def link_stylesheets_requested(self, names, sheets, remove):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Link stylesheets'))
|
self.add_savepoint(_('Link stylesheets'))
|
||||||
changed_names = link_stylesheets(current_container(), names, sheets, remove)
|
changed_names = link_stylesheets(current_container(), names, sheets, remove)
|
||||||
if changed_names:
|
if changed_names:
|
||||||
@ -990,7 +978,6 @@ class Boss(QObject):
|
|||||||
|
|
||||||
@in_thread_job
|
@in_thread_job
|
||||||
def replace_requested(self, name, path, basename, force_mt):
|
def replace_requested(self, name, path, basename, force_mt):
|
||||||
self.commit_all_editors_to_container()
|
|
||||||
self.add_savepoint(_('Replace %s') % name)
|
self.add_savepoint(_('Replace %s') % name)
|
||||||
replace_file(current_container(), name, path, basename, force_mt)
|
replace_file(current_container(), name, path, basename, force_mt)
|
||||||
self.apply_container_update_to_gui()
|
self.apply_container_update_to_gui()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user