mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-02-10 23:05:27 +01:00
Avoid initial cover image loading when calibre starts up with cover browser hidden
This commit is contained in:
parent
9a3f901ca4
commit
ba1d07f73d
1 changed files with 11 additions and 1 deletions
|
|
@ -83,6 +83,7 @@ def __init__(self, model, is_cover_browser_visible):
|
|||
self.model = model
|
||||
self.is_cover_browser_visible = is_cover_browser_visible
|
||||
self.model.modelReset.connect(self.reset, type=Qt.QueuedConnection)
|
||||
self.ignore_image_requests = True
|
||||
|
||||
def count(self):
|
||||
return self.model.count()
|
||||
|
|
@ -116,6 +117,8 @@ def endResetModel(self):
|
|||
pass
|
||||
|
||||
def image(self, index):
|
||||
if self.ignore_image_requests:
|
||||
return QImage()
|
||||
return self.model.cover(index)
|
||||
|
||||
class CoverFlow(pictureflow.PictureFlow):
|
||||
|
|
@ -163,6 +166,9 @@ def dataChanged(self):
|
|||
def _data_changed(self):
|
||||
pictureflow.PictureFlow.dataChanged(self)
|
||||
|
||||
def setCurrentSlide(self, num):
|
||||
pictureflow.PictureFlow.setCurrentSlide(self, num)
|
||||
|
||||
|
||||
else:
|
||||
CoverFlow = None
|
||||
|
|
@ -267,7 +273,7 @@ def init_cover_flow_mixin(self):
|
|||
self.cb_splitter.insertWidget(self.cb_splitter.side_index, self.cover_flow)
|
||||
if CoverFlow is not None:
|
||||
self.cover_flow.stop.connect(self.cb_splitter.hide_side_pane)
|
||||
self.cb_splitter.button.toggled.connect(self.cover_browser_toggled)
|
||||
self.cb_splitter.button.toggled.connect(self.cover_browser_toggled, type=Qt.QueuedConnection)
|
||||
|
||||
def toggle_cover_browser(self, *args):
|
||||
cbd = getattr(self, 'cb_dialog', None)
|
||||
|
|
@ -285,6 +291,9 @@ def cover_browser_toggled(self, *args):
|
|||
def cover_browser_shown(self):
|
||||
self.cover_flow.setFocus(Qt.OtherFocusReason)
|
||||
if CoverFlow is not None:
|
||||
if self.db_images.ignore_image_requests:
|
||||
self.db_images.ignore_image_requests = False
|
||||
self.db_images.dataChanged.emit()
|
||||
self.cover_flow.setCurrentSlide(self.library_view.currentIndex().row())
|
||||
self.cover_flow_syncing_enabled = True
|
||||
QTimer.singleShot(500, self.cover_flow_do_sync)
|
||||
|
|
@ -335,6 +344,7 @@ def is_cover_browser_visible(self):
|
|||
def refresh_cover_browser(self):
|
||||
try:
|
||||
if self.is_cover_browser_visible() and not isinstance(self.cover_flow, QLabel):
|
||||
self.db_images.ignore_image_requests = False
|
||||
self.cover_flow.dataChanged()
|
||||
except AttributeError:
|
||||
pass # called before init_cover_flow_mixin
|
||||
|
|
|
|||
Loading…
Reference in a new issue