mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge branch 'master' of https://github.com/cbhaley/calibre
Fixes #1828986 [Tag Browser Search Function Not Preserving Changes](https://bugs.launchpad.net/calibre/+bug/1828986)
This commit is contained in:
commit
b114528e3f
@ -114,6 +114,11 @@ class TagListEditor(QDialog, Ui_TagListEditor):
|
||||
pass
|
||||
|
||||
# initialization
|
||||
self.to_rename = {}
|
||||
self.to_delete = set([])
|
||||
self.all_tags = {}
|
||||
self.original_names = {}
|
||||
|
||||
self.ordered_tags = []
|
||||
self.sorter = sorter
|
||||
self.get_book_ids = get_book_ids
|
||||
@ -172,14 +177,11 @@ class TagListEditor(QDialog, Ui_TagListEditor):
|
||||
self.fill_in_table(None, None)
|
||||
|
||||
def fill_in_table(self, tags, tag_to_match):
|
||||
self.to_rename = {}
|
||||
self.to_delete = set([])
|
||||
self.all_tags = {}
|
||||
self.original_names = {}
|
||||
|
||||
data = self.get_book_ids(self.apply_vl_checkbox.isChecked())
|
||||
self.all_tags = {}
|
||||
for k,v,count in data:
|
||||
self.all_tags[v] = {'key': k, 'count': count, 'cur_name': v, 'is_deleted': False}
|
||||
self.all_tags[v] = {'key': k, 'count': count, 'cur_name': v,
|
||||
'is_deleted': k in self.to_delete}
|
||||
self.original_names[k] = v
|
||||
self.ordered_tags = sorted(self.all_tags.keys(), key=self.sorter)
|
||||
if tags is None:
|
||||
@ -204,9 +206,13 @@ class TagListEditor(QDialog, Ui_TagListEditor):
|
||||
for row,tag in enumerate(tags):
|
||||
item = NameTableWidgetItem()
|
||||
item.set_is_deleted(self.all_tags[tag]['is_deleted'])
|
||||
item.setText(self.all_tags[tag]['cur_name'])
|
||||
_id = self.all_tags[tag]['key']
|
||||
item.setData(Qt.UserRole, _id)
|
||||
item.set_initial_text(tag)
|
||||
item.setData(Qt.UserRole, self.all_tags[tag]['key'])
|
||||
if _id in self.to_rename:
|
||||
item.setText(self.to_rename[_id])
|
||||
else:
|
||||
item.setText(tag)
|
||||
item.setFlags(item.flags() | Qt.ItemIsSelectable | Qt.ItemIsEditable)
|
||||
self.table.setItem(row, 0, item)
|
||||
if tag == tag_to_match:
|
||||
@ -219,7 +225,7 @@ class TagListEditor(QDialog, Ui_TagListEditor):
|
||||
|
||||
item = QTableWidgetItem()
|
||||
item.setFlags(item.flags() & ~(Qt.ItemIsSelectable|Qt.ItemIsEditable))
|
||||
if tag != self.all_tags[tag]['cur_name'] or self.all_tags[tag]['is_deleted']:
|
||||
if _id in self.to_rename or _id in self.to_delete:
|
||||
item.setData(Qt.DisplayRole, tag)
|
||||
self.table.setItem(row, 2, item)
|
||||
self.table.blockSignals(False)
|
||||
|
Loading…
x
Reference in New Issue
Block a user