File indexing completed on 2025-12-07 04:08:27
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2009-04-19 0007 * Description : Qt item view for items - the delegate (private container) 0008 * 0009 * SPDX-FileCopyrightText: 2002-2005 by Renchi Raju <renchi dot raju at gmail dot com> 0010 * SPDX-FileCopyrightText: 2009 by Andi Clemens <andi dot clemens at gmail dot com> 0011 * SPDX-FileCopyrightText: 2002-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0012 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de> 0013 * 0014 * SPDX-License-Identifier: GPL-2.0-or-later 0015 * 0016 * ============================================================ */ 0017 0018 #ifndef DIGIKAM_ITEM_VIEW_DELEGATE_P_H 0019 #define DIGIKAM_ITEM_VIEW_DELEGATE_P_H 0020 0021 #include "itemviewdelegate.h" 0022 0023 // Qt includes 0024 0025 #include <QCache> 0026 #include <QFont> 0027 #include <QWidget> 0028 #include <QPainter> 0029 #include <QPolygon> 0030 0031 // Local includes 0032 0033 #include "digikam_debug.h" 0034 #include "digikam_export.h" 0035 0036 namespace Digikam 0037 { 0038 0039 class ItemViewDelegate; 0040 0041 class DIGIKAM_EXPORT ItemViewDelegatePrivate 0042 { 0043 public: 0044 0045 explicit ItemViewDelegatePrivate(); 0046 virtual ~ItemViewDelegatePrivate() = default; 0047 0048 void init(ItemViewDelegate* const _q, QWidget* const _widget); 0049 0050 void makeStarPolygon(); 0051 0052 /** 0053 * Resets cached rects. Remember to reimplement in subclass for added rects. 0054 */ 0055 virtual void clearRects(); 0056 0057 public: 0058 0059 int spacing; 0060 QSize gridSize; 0061 0062 QRect rect; 0063 QRect ratingRect; 0064 0065 QPixmap regPixmap; 0066 QPixmap selPixmap; 0067 QVector<QPixmap> ratingPixmaps; 0068 0069 QFont font; 0070 QFont fontReg; 0071 QFont fontCom; 0072 QFont fontXtra; 0073 0074 QPolygon starPolygon; 0075 QSize starPolygonSize; 0076 0077 ThumbnailSize thumbSize; 0078 0079 QPersistentModelIndex editingRating; 0080 0081 ItemViewDelegate* q; 0082 0083 QWidget* displayWidget; 0084 0085 QRect oneRowRegRect; 0086 QRect oneRowComRect; 0087 QRect oneRowXtraRect; 0088 0089 /// constant values for drawing 0090 int radius; 0091 int margin; 0092 0093 private: 0094 0095 Q_DISABLE_COPY(ItemViewDelegatePrivate) 0096 }; 0097 0098 } // namespace Digikam 0099 0100 #endif // DIGIKAM_ITEM_VIEW_DELEGATE_P_H