mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Adding books: Dont refresh the Tag Browser while adding multiple books. Should speed up the adding of large numbers of books.
This commit is contained in:
parent
6e43796c9d
commit
e20d092ba0
@ -61,6 +61,7 @@ class AddAction(InterfaceAction):
|
|||||||
self._adder = Adder(self.gui,
|
self._adder = Adder(self.gui,
|
||||||
self.gui.library_view.model().db,
|
self.gui.library_view.model().db,
|
||||||
self.Dispatcher(self._files_added), spare_server=self.gui.spare_server)
|
self.Dispatcher(self._files_added), spare_server=self.gui.spare_server)
|
||||||
|
self.gui.tags_view.disable_recounting = True
|
||||||
self._adder.add_recursive(root, single)
|
self._adder.add_recursive(root, single)
|
||||||
|
|
||||||
def add_recursive_single(self, *args):
|
def add_recursive_single(self, *args):
|
||||||
@ -201,9 +202,11 @@ class AddAction(InterfaceAction):
|
|||||||
self._adder = Adder(self.gui,
|
self._adder = Adder(self.gui,
|
||||||
None if to_device else self.gui.library_view.model().db,
|
None if to_device else self.gui.library_view.model().db,
|
||||||
self.Dispatcher(self.__adder_func), spare_server=self.gui.spare_server)
|
self.Dispatcher(self.__adder_func), spare_server=self.gui.spare_server)
|
||||||
|
self.gui.tags_view.disable_recounting = True
|
||||||
self._adder.add(paths)
|
self._adder.add(paths)
|
||||||
|
|
||||||
def _files_added(self, paths=[], names=[], infos=[], on_card=None):
|
def _files_added(self, paths=[], names=[], infos=[], on_card=None):
|
||||||
|
self.gui.tags_view.disable_recounting = False
|
||||||
if paths:
|
if paths:
|
||||||
self.gui.upload_books(paths,
|
self.gui.upload_books(paths,
|
||||||
list(map(ascii_filename, names)),
|
list(map(ascii_filename, names)),
|
||||||
@ -214,6 +217,7 @@ class AddAction(InterfaceAction):
|
|||||||
self.gui.library_view.model().books_added(self._adder.number_of_books_added)
|
self.gui.library_view.model().books_added(self._adder.number_of_books_added)
|
||||||
if hasattr(self.gui, 'db_images'):
|
if hasattr(self.gui, 'db_images'):
|
||||||
self.gui.db_images.reset()
|
self.gui.db_images.reset()
|
||||||
|
self.gui.tags_view.recount()
|
||||||
if getattr(self._adder, 'merged_books', False):
|
if getattr(self._adder, 'merged_books', False):
|
||||||
books = u'\n'.join([x if isinstance(x, unicode) else
|
books = u'\n'.join([x if isinstance(x, unicode) else
|
||||||
x.decode(preferred_encoding, 'replace') for x in
|
x.decode(preferred_encoding, 'replace') for x in
|
||||||
|
@ -73,6 +73,7 @@ class TagsView(QTreeView): # {{{
|
|||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
QTreeView.__init__(self, parent=None)
|
QTreeView.__init__(self, parent=None)
|
||||||
self.tag_match = None
|
self.tag_match = None
|
||||||
|
self.disable_recounting = False
|
||||||
self.setUniformRowHeights(True)
|
self.setUniformRowHeights(True)
|
||||||
self.setCursor(Qt.PointingHandCursor)
|
self.setCursor(Qt.PointingHandCursor)
|
||||||
self.setIconSize(QSize(30, 30))
|
self.setIconSize(QSize(30, 30))
|
||||||
@ -299,6 +300,8 @@ class TagsView(QTreeView): # {{{
|
|||||||
return self.isExpanded(idx)
|
return self.isExpanded(idx)
|
||||||
|
|
||||||
def recount(self, *args):
|
def recount(self, *args):
|
||||||
|
if self.disable_recounting:
|
||||||
|
return
|
||||||
self.refresh_signal_processed = True
|
self.refresh_signal_processed = True
|
||||||
ci = self.currentIndex()
|
ci = self.currentIndex()
|
||||||
if not ci.isValid():
|
if not ci.isValid():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user