diff --git a/src/calibre/ebooks/oeb/polish/container.py b/src/calibre/ebooks/oeb/polish/container.py index 652a7c5fd1..ef0f7a0474 100644 --- a/src/calibre/ebooks/oeb/polish/container.py +++ b/src/calibre/ebooks/oeb/polish/container.py @@ -253,6 +253,10 @@ class Container(ContainerBase): # {{{ SUPPORTS_TITLEPAGES = True SUPPORTS_FILENAMES = True + @property + def book_type_for_display(self): + return self.book_type.upper() + def __init__(self, rootpath, opfpath, log, clone_data=None): ContainerBase.__init__(self, log) self.root = clone_data['root'] if clone_data is not None else os.path.abspath(rootpath) @@ -1118,6 +1122,26 @@ class EpubContainer(Container): book_type = 'epub' + @property + def book_type_for_display(self): + ans = self.book_type.upper() + try: + v = self.opf_version_parsed + except Exception: + pass + else: + try: + if v.major == 2: + ans += ' 2' + else: + if not v.minor: + ans += ' {}'.format(v.major) + else: + ans += ' {}.{}'.format(v.major, v.minor) + except Exception: + pass + return ans + META_INF = { 'container.xml': True, 'manifest.xml': False, diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index b933e6542c..8c334db8b2 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -456,6 +456,7 @@ class Boss(QObject): c = current_container() if c.opf_name in editors and not editors[c.opf_name].is_synced_to_container: self.commit_editor_to_container(c.opf_name) + self.gui.update_window_title() def reorder_spine(self, items): self.add_savepoint(_('Before: Re-order text')) @@ -603,6 +604,7 @@ class Boss(QObject): raise if changed: self.apply_container_update_to_gui() + self.gui.update_window_title() if not changed: self.rewind_savepoint() show_report(changed, self.current_metadata.title, report, parent or self.gui, self.show_current_diff) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index fb6ee00b7d..e995e58ce4 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -776,8 +776,12 @@ class Main(MainWindow): return super(Main, self).resizeEvent(ev) def update_window_title(self): - fname = os.path.basename(current_container().path_to_ebook) - self.setWindowTitle(self.current_metadata.title + ' [%s] :: %s :: %s' %(current_container().book_type.upper(), fname, self.APP_NAME)) + cc = current_container() + if cc is not None: + fname = os.path.basename(cc.path_to_ebook) + self.setWindowTitle(self.current_metadata.title + ' [%s] :: %s :: %s' %(cc.book_type_for_display, fname, self.APP_NAME)) + else: + self.setWindowTitle(self.APP_NAME) def closeEvent(self, e): if self.boss.quit():