diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index 7d3f8c5742..fca324fe4c 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -1128,6 +1128,7 @@ class SearchBox(QLineEdit): self.home(False) self.initial_state = True self.setStyleSheet("background-color: white") + self.emit(SIGNAL('cleared()')) def clear(self): self.clear_to_help() diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 3daa659f73..2241c5bf07 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -456,6 +456,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): SIGNAL('count_changed(int)'), self.location_view.count_changed) self.connect(self.library_view.model(), SIGNAL('count_changed(int)'), self.tags_view.recount) + self.connect(self.search, SIGNAL('cleared()'), self.tags_view.clear) self.library_view.model().count_changed() ########################### Cover Flow ################################ self.cover_flow = None diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 7d9f435fa9..2e8bf3c910 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -36,6 +36,9 @@ class TagsView(QTreeView): self.emit(SIGNAL('tags_marked(PyQt_PyObject, PyQt_PyObject)'), self._model.tokens(), self.match_all.isChecked()) + def clear(self): + self.model().clear_state() + def recount(self, *args): ci = self.currentIndex() if not ci.isValid(): @@ -119,6 +122,11 @@ class TagsModel(QStandardItemModel): self._data[category], self.cmap[r], self.bold_font, self.icon_map)) #self.reset() + def clear_state(self): + for category in self._data.values(): + for tag in category: + tag.state = 0 + self.refresh() def reinit(self, *args, **kwargs): if not self.ignore_next_search: