Ignore book details updates from device views when current view is library view

This commit is contained in:
Kovid Goyal 2025-08-13 19:36:52 +05:30
parent 73aa879ffc
commit 09cf21fe19
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 6 additions and 0 deletions

View File

@ -1569,6 +1569,10 @@ class BookDetails(DetailsLayout, DropMixin): # {{{
self.show_book_info.emit()
def show_data(self, data):
from calibre.gui2.ui import get_gui
if getattr(data, 'book_display_info_is_from_device', False) and (gui := get_gui()) and gui.current_view is gui.library_view:
return
try:
self.last_data = {'title':data.title, 'authors':data.authors, 'book_id': getattr(data, 'id', None)}
except Exception:

View File

@ -628,6 +628,7 @@ class BooksModel(QAbstractTableModel): # {{{
def get_book_display_info(self, idx):
mi = self.db.get_metadata(idx)
mi.size = mi._proxy_metadata.book_size
mi.book_display_info_is_from_device = False
mi.cover_data = ('jpg', self.cover(idx))
mi.id = self.db.id(idx)
mi.field_metadata = self.db.field_metadata
@ -1722,6 +1723,7 @@ class DeviceBooksModel(BooksModel): # {{{
mi.device_collections = list(item.device_collections)
mi.tags = list(getattr(item, 'tags', []))
mi.comments = getattr(item, 'comments', None)
mi.book_display_info_is_from_device = True
series = getattr(item, 'series', None)
if series:
sidx = getattr(item, 'series_index', 0)