mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Fix #4412 (slow coverflow)
This commit is contained in:
parent
c32b3ed1c9
commit
d08aaac9f9
@ -66,7 +66,6 @@ if pictureflow is not None:
|
|||||||
return self.model.cover(index)
|
return self.model.cover(index)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CoverFlow(pictureflow.PictureFlow):
|
class CoverFlow(pictureflow.PictureFlow):
|
||||||
|
|
||||||
def __init__(self, height=300, parent=None, text_height=25):
|
def __init__(self, height=300, parent=None, text_height=25):
|
||||||
|
@ -528,17 +528,17 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.cover_flow.setVisible(False)
|
self.cover_flow.setVisible(False)
|
||||||
if not config['separate_cover_flow']:
|
if not config['separate_cover_flow']:
|
||||||
self.library.layout().addWidget(self.cover_flow)
|
self.library.layout().addWidget(self.cover_flow)
|
||||||
self.connect(self.cover_flow, SIGNAL('currentChanged(int)'),
|
#self.connect(self.cover_flow, SIGNAL('currentChanged(int)'),
|
||||||
self.sync_cf_to_listview)
|
# self.sync_cf_to_listview)
|
||||||
self.connect(self.cover_flow, SIGNAL('itemActivated(int)'),
|
#self.connect(self.cover_flow, SIGNAL('itemActivated(int)'),
|
||||||
self.show_book_info)
|
# self.show_book_info)
|
||||||
self.connect(self.status_bar.cover_flow_button,
|
self.connect(self.status_bar.cover_flow_button,
|
||||||
SIGNAL('toggled(bool)'), self.toggle_cover_flow)
|
SIGNAL('toggled(bool)'), self.toggle_cover_flow)
|
||||||
self.connect(self.cover_flow, SIGNAL('stop()'),
|
self.connect(self.cover_flow, SIGNAL('stop()'),
|
||||||
self.status_bar.cover_flow_button.toggle)
|
self.status_bar.cover_flow_button.toggle)
|
||||||
QObject.connect(self.library_view.selectionModel(),
|
#QObject.connect(self.library_view.selectionModel(),
|
||||||
SIGNAL('currentRowChanged(QModelIndex, QModelIndex)'),
|
# SIGNAL('currentRowChanged(QModelIndex, QModelIndex)'),
|
||||||
self.sync_cf_to_listview)
|
# self.sync_cf_to_listview)
|
||||||
self.db_images = DatabaseImages(self.library_view.model())
|
self.db_images = DatabaseImages(self.library_view.model())
|
||||||
self.cover_flow.setImages(self.db_images)
|
self.cover_flow.setImages(self.db_images)
|
||||||
else:
|
else:
|
||||||
@ -669,6 +669,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
def toggle_cover_flow(self, show):
|
def toggle_cover_flow(self, show):
|
||||||
if config['separate_cover_flow']:
|
if config['separate_cover_flow']:
|
||||||
if show:
|
if show:
|
||||||
|
self.cover_flow.setCurrentSlide(self.library_view.currentIndex().row())
|
||||||
d = QDialog(self)
|
d = QDialog(self)
|
||||||
ah, aw = available_height(), available_width()
|
ah, aw = available_height(), available_width()
|
||||||
d.resize(int(aw/2.), ah-60)
|
d.resize(int(aw/2.), ah-60)
|
||||||
@ -684,6 +685,11 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.uncheck_cover_button)
|
self.uncheck_cover_button)
|
||||||
self.cf_dialog = d
|
self.cf_dialog = d
|
||||||
else:
|
else:
|
||||||
|
idx = self.library_view.model().index(self.cover_flow.currentSlide(), 0)
|
||||||
|
if idx.isValid():
|
||||||
|
sm = self.library_view.selectionModel()
|
||||||
|
sm.select(idx, sm.ClearAndSelect|sm.Rows)
|
||||||
|
self.library_view.setCurrentIndex(idx)
|
||||||
cfd = getattr(self, 'cf_dialog', None)
|
cfd = getattr(self, 'cf_dialog', None)
|
||||||
if cfd is not None:
|
if cfd is not None:
|
||||||
self.cover_flow.setVisible(False)
|
self.cover_flow.setVisible(False)
|
||||||
@ -691,6 +697,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.cf_dialog = None
|
self.cf_dialog = None
|
||||||
else:
|
else:
|
||||||
if show:
|
if show:
|
||||||
|
self.cover_flow.setCurrentSlide(self.library_view.currentIndex().row())
|
||||||
self.library_view.setCurrentIndex(
|
self.library_view.setCurrentIndex(
|
||||||
self.library_view.currentIndex())
|
self.library_view.currentIndex())
|
||||||
self.cover_flow.setVisible(True)
|
self.cover_flow.setVisible(True)
|
||||||
@ -700,8 +707,13 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.library_view.scrollTo(self.library_view.currentIndex())
|
self.library_view.scrollTo(self.library_view.currentIndex())
|
||||||
else:
|
else:
|
||||||
self.cover_flow.setVisible(False)
|
self.cover_flow.setVisible(False)
|
||||||
|
idx = self.library_view.model().index(self.cover_flow.currentSlide(), 0)
|
||||||
|
if idx.isValid():
|
||||||
|
sm = self.library_view.selectionModel()
|
||||||
|
sm.select(idx, sm.ClearAndSelect|sm.Rows)
|
||||||
|
self.library_view.setCurrentIndex(idx)
|
||||||
#self.status_bar.book_info.book_data.setMaximumHeight(1000)
|
#self.status_bar.book_info.book_data.setMaximumHeight(1000)
|
||||||
self.resize(self.width(), self._calculated_available_height)
|
#self.resize(self.width(), self._calculated_available_height)
|
||||||
#self.setMaximumHeight(available_height())
|
#self.setMaximumHeight(available_height())
|
||||||
|
|
||||||
def toggle_tags_view(self, show):
|
def toggle_tags_view(self, show):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user