From a36729be1ca11c7369c725e6ce4b2ee1bf37fd1b Mon Sep 17 00:00:00 2001 From: John Schember Date: Wed, 24 Mar 2010 19:56:20 -0400 Subject: [PATCH 1/2] PRS505 driver: Tags within [] do not translate into a category. --- src/calibre/devices/prs505/books.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/calibre/devices/prs505/books.py b/src/calibre/devices/prs505/books.py index 623f6c19ad..9d943bd8e6 100644 --- a/src/calibre/devices/prs505/books.py +++ b/src/calibre/devices/prs505/books.py @@ -226,11 +226,19 @@ class BookList(_BookList): for item in collections: item = item.strip() mitem = getattr(mi, item, None) + titems = [] if mitem: if isinstance(mitem, list): - tags.extend(mitem) + titems = mitem else: - tags.append(mitem) + titems = [mitem] + if item == 'tags' and titems: + litems = [] + for i in titems: + if not i.strip().startswith('[') and not i.strip().endswith(']'): + litems.append(i) + titems = litems + tags.extend(titems) if tags: tags = list(set(tags)) if hasattr(mi, 'tag_order'): From d62e9ed908e69a9166640cf231601ee711afcada Mon Sep 17 00:00:00 2001 From: John Schember Date: Sat, 27 Mar 2010 21:36:00 -0400 Subject: [PATCH 2/2] Implement ticket #5172: Use test button in Regex Builder instead of updating as the user types. --- src/calibre/gui2/convert/regex_builder.py | 20 ++++++++++++++------ src/calibre/gui2/convert/regex_builder.ui | 19 +++++++++++++++---- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/calibre/gui2/convert/regex_builder.py b/src/calibre/gui2/convert/regex_builder.py index b1d8fbcbd5..83e548f81d 100644 --- a/src/calibre/gui2/convert/regex_builder.py +++ b/src/calibre/gui2/convert/regex_builder.py @@ -25,7 +25,7 @@ class RegexHighlighter(QSyntaxHighlighter): self.regex = u'' def update_regex(self, regex): - self.regex = qstring_to_unicode(regex) + self.regex = regex self.rehighlight() def highlightBlock(self, text): @@ -59,14 +59,22 @@ class RegexBuilder(QDialog, Ui_RegexBuilder): self.select_format(db, book_id) self.connect(self.button_box, SIGNAL('clicked(QAbstractButton*)'), self.button_clicked) - self.connect(self.regex, SIGNAL('textChanged(QString)'), self.highlighter.update_regex) - self.connect(self.highlighter, SIGNAL('regex_valid(PyQt_PyObject)'), self.regex_valid) + self.connect(self.regex, SIGNAL('textChanged(QString)'), self.regex_valid) + self.connect(self.test, SIGNAL('clicked()'), self.do_test) def regex_valid(self, valid): - if valid: - self.regex.setStyleSheet('QLineEdit { color: black; background-color: white; }') + regex = qstring_to_unicode(self.regex.text()) + if regex: + try: + re.compile(regex) + self.regex.setStyleSheet('QLineEdit { color: black; background-color: rgba(0,255,0,20%); }') + except: + self.regex.setStyleSheet('QLineEdit { color: black; background-color: rgb(255,0,0,20%); }') else: - self.regex.setStyleSheet('QLineEdit { color: black; background-color: rgb(255,0,0,20%); }') + self.regex.setStyleSheet('QLineEdit { color: black; background-color: white; }') + + def do_test(self): + self.highlighter.update_regex(qstring_to_unicode(self.regex.text())) def select_format(self, db, book_id): format = None diff --git a/src/calibre/gui2/convert/regex_builder.ui b/src/calibre/gui2/convert/regex_builder.ui index 3448c4dded..af17917676 100644 --- a/src/calibre/gui2/convert/regex_builder.ui +++ b/src/calibre/gui2/convert/regex_builder.ui @@ -14,7 +14,7 @@ Regex Builder - + Preview @@ -36,7 +36,7 @@ - + Qt::Horizontal @@ -53,8 +53,19 @@ - - + + + + + + + + + Test + + + +