File indexing completed on 2024-04-28 04:21:21

0001 /* SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org>
0002 
0003    SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 #ifndef DELEGATE_H
0006 #define DELEGATE_H
0007 #include "ThumbnailComponent.h"
0008 
0009 #include <DB/ImageInfoPtr.h>
0010 
0011 #include <QStyledItemDelegate>
0012 
0013 namespace ThumbnailView
0014 {
0015 
0016 class Delegate : public QStyledItemDelegate, private ThumbnailComponent
0017 {
0018 public:
0019     explicit Delegate(ThumbnailFactory *factory, QObject *parent);
0020     void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0021     QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0022 
0023 private:
0024     void paintCellBackground(QPainter *painter, const QRect &rect) const;
0025     void paintCellPixmap(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
0026     void paintVideoInfo(QPainter *painter, const QRect &pixmapRect, const QModelIndex &index) const;
0027     void paintCellText(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
0028     void paintBoundingRect(QPainter *painter, const QRect &pixmapRect, const QModelIndex &index) const;
0029     void paintStackedIndicator(QPainter *painter, const QRect &rect, const QModelIndex &index) const;
0030     void paintDropIndicator(QPainter *painter, const QRect &rect, const QModelIndex &index) const;
0031     bool isFirst(int row) const;
0032     bool isLast(int row) const;
0033 
0034     QString videoLengthText(const DB::ImageInfoPtr &imageInfo) const;
0035 };
0036 
0037 }
0038 
0039 #endif /* DELEGATE_H */
0040 
0041 // vi:expandtab:tabstop=4 shiftwidth=4: