diff --git a/src/calibre/gui2/cover_flow.py b/src/calibre/gui2/cover_flow.py index 5dca2c8e72..c72f53201f 100644 --- a/src/calibre/gui2/cover_flow.py +++ b/src/calibre/gui2/cover_flow.py @@ -67,6 +67,13 @@ if pictureflow is not None: ans = '' return ans + def subtitle(self, index): + try: + return u'\u2605'*self.model.rating(index) + except: + pass + return '' + def reset(self): self.dataChanged.emit() diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 7ffbc42f02..3bbab52b33 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -492,6 +492,11 @@ class BooksModel(QAbstractTableModel): # {{{ def title(self, row_number): return self.db.title(row_number) + def rating(self, row_number): + ans = self.db.rating(row_number) + ans = ans/2 if ans else 0 + return int(ans) + def cover(self, row_number): data = None try: diff --git a/src/calibre/gui2/pictureflow/pictureflow.cpp b/src/calibre/gui2/pictureflow/pictureflow.cpp index 450608cf6b..1c63ec410c 100644 --- a/src/calibre/gui2/pictureflow/pictureflow.cpp +++ b/src/calibre/gui2/pictureflow/pictureflow.cpp @@ -706,9 +706,12 @@ void PictureFlowPrivate::render() painter.setPen(Qt::white); //painter.setPen(QColor(255,255,255,127)); - if (centerIndex < slideCount() && centerIndex > -1) - painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2-fontSize*3), + if (centerIndex < slideCount() && centerIndex > -1) { + painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2-fontSize*4), Qt::AlignCenter, slideImages->caption(centerIndex)); + painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2-fontSize*2), + Qt::AlignCenter, slideImages->subtitle(centerIndex)); + } painter.end(); @@ -759,15 +762,22 @@ void PictureFlowPrivate::render() int sc = slideCount(); painter.setPen(QColor(255,255,255, (255-fade) )); - if (leftTextIndex < sc && leftTextIndex > -1) - painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2 - fontSize*3), + if (leftTextIndex < sc && leftTextIndex > -1) { + painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2 - fontSize*4), Qt::AlignCenter, slideImages->caption(leftTextIndex)); + painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2 - fontSize*2), + Qt::AlignCenter, slideImages->subtitle(leftTextIndex)); + + } painter.setPen(QColor(255,255,255, fade)); - if (leftTextIndex+1 < sc && leftTextIndex > -2) - painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2 - fontSize*3), + if (leftTextIndex+1 < sc && leftTextIndex > -2) { + painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2 - fontSize*4), Qt::AlignCenter, slideImages->caption(leftTextIndex+1)); + painter.drawText( QRect(0,0, buffer.width(), buffer.height()*2 - fontSize*2), + Qt::AlignCenter, slideImages->subtitle(leftTextIndex+1)); + } painter.end(); } @@ -1372,5 +1382,6 @@ void PictureFlow::emitcurrentChanged(int index) { emit currentChanged(index); } int FlowImages::count() { return 0; } QImage FlowImages::image(int index) { index=0; return QImage(); } QString FlowImages::caption(int index) {index=0; return QString(); } +QString FlowImages::subtitle(int index) {index=0; return QString(); } // }}} diff --git a/src/calibre/gui2/pictureflow/pictureflow.h b/src/calibre/gui2/pictureflow/pictureflow.h index 13477a8771..f2c2c947e6 100644 --- a/src/calibre/gui2/pictureflow/pictureflow.h +++ b/src/calibre/gui2/pictureflow/pictureflow.h @@ -67,6 +67,7 @@ public: virtual int count(); virtual QImage image(int index); virtual QString caption(int index); + virtual QString subtitle(int index); signals: void dataChanged(); diff --git a/src/calibre/gui2/pictureflow/pictureflow.sip b/src/calibre/gui2/pictureflow/pictureflow.sip index f7ba12cee7..f05f0ee3d1 100644 --- a/src/calibre/gui2/pictureflow/pictureflow.sip +++ b/src/calibre/gui2/pictureflow/pictureflow.sip @@ -16,6 +16,7 @@ public: virtual int count(); virtual QImage image(int index); virtual QString caption(int index); + virtual QString subtitle(int index); signals: void dataChanged();