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: