mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-03 19:17:02 -05: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