Prepare for device_collection editor

This commit is contained in:
Charles Haley 2010-06-23 15:44:59 +01:00
parent 42c7734f72
commit 62210eb8ff
2 changed files with 23 additions and 2 deletions

View File

@ -11,7 +11,7 @@ from calibre.ebooks.metadata import title_sort
class TagListEditor(QDialog, Ui_TagListEditor):
def __init__(self, window, db, tag_to_match, category):
def __init__(self, window, db, tag_to_match, category, data, compare):
QDialog.__init__(self, window)
Ui_TagListEditor.__init__(self)
self.setupUi(self)

View File

@ -15,6 +15,7 @@ from PyQt4.Qt import Qt, QTreeView, QApplication, pyqtSignal, \
QAbstractItemModel, QVariant, QModelIndex, QMenu, \
QPushButton, QWidget, QItemDelegate
from calibre.ebooks.metadata import title_sort
from calibre.gui2 import config, NONE
from calibre.utils.config import prefs
from calibre.library.field_metadata import TagsIcons
@ -680,7 +681,27 @@ class TagBrowserMixin(object): # {{{
self.tags_view.recount()
def do_tags_list_edit(self, tag, category):
d = TagListEditor(self, self.library_view.model().db, tag, category)
db=self.library_view.model().db
if category == 'tags':
result = db.get_tags_with_ids()
compare = (lambda x,y:cmp(x.lower(), y.lower()))
elif category == 'series':
result = db.get_series_with_ids()
compare = (lambda x,y:cmp(title_sort(x).lower(), title_sort(y).lower()))
elif category == 'publisher':
result = db.get_publishers_with_ids()
compare = (lambda x,y:cmp(x.lower(), y.lower()))
else: # should be a custom field
self.cc_label = None
if category in db.field_metadata:
self.cc_label = db.field_metadata[category]['label']
result = self.db.get_custom_items_with_ids(label=self.cc_label)
else:
result = []
compare = (lambda x,y:cmp(x.lower(), y.lower()))
d = TagListEditor(self, db=db, tag_to_match=tag, category=category,
data=result, compare=compare)
d.exec_()
if d.result() == d.Accepted:
# Clean up everything, as information could have changed for many books.