]> git.sur5r.net Git - minitube/blobdiff - src/playlistitemdelegate.h
Upload 3.9.3-2 to unstable
[minitube] / src / playlistitemdelegate.h
index 5a7b2b326123c6b96de8ef5dfcb2a1c3116b1cb9..1e4cebe25757a985a3582d71c719fda839758bd2 100644 (file)
@@ -1,47 +1,70 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
 #ifndef PLAYLISTITEMDELEGATE_H
 #define PLAYLISTITEMDELEGATE_H
 
-#include <QtGui>
+#include <QtWidgets>
 
-class PlaylistItemDelegate : public QStyledItemDelegate {
+class PlaylistView;
 
+class PlaylistItemDelegate : public QStyledItemDelegate {
     Q_OBJECT
 
 public:
-    PlaylistItemDelegate(QObjectparent, bool downloadInfo = false);
+    PlaylistItemDelegate(QObject *parent, bool downloadInfo = false);
     ~PlaylistItemDelegate();
 
-    QSize sizeHint( const QStyleOptionViewItem&, const QModelIndex& ) const;
-    void paint( QPainter*, const QStyleOptionViewItem&, const QModelIndex& ) const;
-    QRect downloadButtonRect(QRect line) const;
-    QRect authorRect(const QModelIndex& index) const;
+    QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const;
+    void
+    paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+    QRect downloadButtonRect(const QRect &line) const;
+    QRect authorRect(const QModelIndex &index) const;
+
+    static const int thumbWidth;
+    static const int thumbHeight;
 
 private:
     void createPlayIcon();
-    void paintBody( QPainter*, const QStyleOptionViewItem&, const QModelIndex& ) const;
-    void paintDownloadInfo( QPainter* painter,
-                                        const QStyleOptionViewItem& option,
-                                        const QModelIndex& index ) const;
+    void paintBody(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const;
+    void paintDownloadInfo(QPainter *painter,
+                           const QStyleOptionViewItem &option,
+                           const QModelIndex &index) const;
+    void paintActiveOverlay(QPainter *painter,
+                            const QStyleOptionViewItem &option,
+                            const QRect &line) const;
+    void drawTime(QPainter *painter, const QString &time, const QRect &line) const;
 
-    // active track painting
-    void paintActiveOverlay( QPainter *painter, qreal x, qreal y, qreal w, qreal h ) const;
-    void paintPlayIcon(QPainter *painter) const;
-
-    //  Paints the video duration
-    void drawTime(QPainter *painter, QString time, QRectF line) const;
-
-    static const qreal THUMB_WIDTH;
-    static const qreal THUMB_HEIGHT;
-    static const qreal PADDING;
+    static const int padding;
 
     QPixmap playIcon;
-    QFont boldFont;
     QFont smallerFont;
     QFont smallerBoldFont;
 
     bool downloadInfo;
     QProgressBar *progressBar;
 
+    mutable QRect lastAuthorRect;
+    mutable QHash<int, QRect> authorRects;
+
+    PlaylistView *listView;
 };
 
 #endif