~ubuntu-branches/debian/sid/calibre/sid

« back to all changes in this revision

Viewing changes to src/calibre/gui2/library/alternate_views.py

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-02-02 10:46:11 UTC
  • mfrom: (1.5.7)
  • Revision ID: package-import@ubuntu.com-20140202104611-c2tlt43ldklc28k4
Tags: 1.22.0+dfsg-1
* New upstream release.
* debian/copyright: Update to 1.0 copyright standard. Thanks Felix Gruber!
  (LP: #737343)

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
    QTimer, QPalette, QColor, QItemSelection, QPixmap, QMenu, QApplication,
19
19
    QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent,
20
20
    QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView,
21
 
    QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush)
 
21
    QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen, qBlue)
22
22
 
23
23
from calibre import fit_image, prints, prepare_string_for_xml, human_readable
24
24
from calibre.constants import DEBUG
379
379
                mi = db.get_proxy_metadata(book_id)
380
380
                display_name, ans, val, fm = mi.format_field_extended(field)
381
381
                if fm and fm['datatype'] == 'rating':
382
 
                    ans = u'\u2605' * int(val/2.0)
383
 
            return unicode(ans)
 
382
                    ans = u'\u2605' * int(val/2.0) if val is not None else ''
 
383
            return '' if ans is None else unicode(ans)
384
384
        except Exception:
385
385
            if DEBUG:
386
386
                import traceback
438
438
                    painter.setRenderHint(QPainter.TextAntialiasing, True)
439
439
                    title = self.render_field(db, book_id)
440
440
                    metrics = painter.fontMetrics()
 
441
                    painter.setPen(self.highlight_color)
441
442
                    painter.drawText(rect, Qt.AlignCenter|Qt.TextSingleLine,
442
443
                                     metrics.elidedText(title, Qt.ElideRight, rect.width()))
443
444
            if marked:
598
599
            from calibre.gui2.preferences.texture_chooser import texture_path
599
600
            path = texture_path(tex)
600
601
            if path:
601
 
                pal.setBrush(pal.Base, QBrush(QPixmap(path)))
 
602
                pm = QPixmap(path)
 
603
                if not pm.isNull():
 
604
                    val = pm.scaled(1, 1).toImage().pixel(0, 0)
 
605
                    r, g, b = qRed(val), qGreen(val), qBlue(val)
 
606
                    pal.setBrush(pal.Base, QBrush(pm))
602
607
        dark = (r + g + b)/3.0 < 128
603
608
        pal.setColor(pal.Text, QColor(Qt.white if dark else Qt.black))
604
609
        self.setPalette(pal)