diff --git a/src/calibre/gui2/viewer/bookmarks.py b/src/calibre/gui2/viewer/bookmarks.py index 66a73916eb..d0592f9469 100644 --- a/src/calibre/gui2/viewer/bookmarks.py +++ b/src/calibre/gui2/viewer/bookmarks.py @@ -92,6 +92,7 @@ class BookmarkManager(QWidget): self.l = l = QGridLayout(self) l.setContentsMargins(0, 0, 0, 0) self.setLayout(l) + self.toc = parent.toc self.bookmarks_list = bl = BookmarksList(self) bl.itemChanged.connect(self.item_changed) @@ -340,7 +341,7 @@ class BookmarkManager(QWidget): import_current_bookmarks(imported) def create_new_bookmark(self, pos_data): - base_default_title = _('Bookmark') + base_default_title = self.toc.model().title_for_current_node or _('Bookmark') all_titles = {bm['title'] for bm in self.get_bookmarks()} c = 0 while True: diff --git a/src/calibre/gui2/viewer/toc.py b/src/calibre/gui2/viewer/toc.py index 633ad0105a..453579439e 100644 --- a/src/calibre/gui2/viewer/toc.py +++ b/src/calibre/gui2/viewer/toc.py @@ -227,7 +227,6 @@ class TOC(QStandardItemModel): for t in toc['children']: self.appendRow(TOCItem(t, 0, depth_first, normal_font, emphasis_font)) self.node_id_map = {x.node_id: x for x in self.all_items} - self.currently_viewed_entry = None def find_items(self, query): for item in self.all_items: @@ -284,6 +283,12 @@ class TOC(QStandardItemModel): def viewed_nodes(self): return tuple(node for node in self.all_items if node.is_being_viewed) + @property + def title_for_current_node(self): + for node in reversed(self.all_items): + if node.is_being_viewed: + return node.title + @property def as_plain_text(self): lines = []