Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:24:18

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
0004 
0005 #ifndef QITEMDELEGATE_H
0006 #define QITEMDELEGATE_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qabstractitemdelegate.h>
0010 #include <QtCore/qstring.h>
0011 #include <QtGui/qpixmap.h>
0012 #include <QtCore/qvariant.h>
0013 
0014 QT_REQUIRE_CONFIG(itemviews);
0015 
0016 QT_BEGIN_NAMESPACE
0017 
0018 class QItemDelegatePrivate;
0019 class QItemEditorFactory;
0020 
0021 class Q_WIDGETS_EXPORT QItemDelegate : public QAbstractItemDelegate
0022 {
0023     Q_OBJECT
0024     Q_PROPERTY(bool clipping READ hasClipping WRITE setClipping)
0025 
0026 public:
0027     explicit QItemDelegate(QObject *parent = nullptr);
0028     ~QItemDelegate();
0029 
0030     bool hasClipping() const;
0031     void setClipping(bool clip);
0032 
0033     // painting
0034     void paint(QPainter *painter,
0035                const QStyleOptionViewItem &option,
0036                const QModelIndex &index) const override;
0037     QSize sizeHint(const QStyleOptionViewItem &option,
0038                    const QModelIndex &index) const override;
0039 
0040     // editing
0041     QWidget *createEditor(QWidget *parent,
0042                           const QStyleOptionViewItem &option,
0043                           const QModelIndex &index) const override;
0044 
0045     void setEditorData(QWidget *editor, const QModelIndex &index) const override;
0046     void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
0047 
0048     void updateEditorGeometry(QWidget *editor,
0049                               const QStyleOptionViewItem &option,
0050                               const QModelIndex &index) const override;
0051 
0052     // editor factory
0053     QItemEditorFactory *itemEditorFactory() const;
0054     void setItemEditorFactory(QItemEditorFactory *factory);
0055 
0056 protected:
0057     virtual void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option,
0058                              const QRect &rect, const QString &text) const;
0059     virtual void drawDecoration(QPainter *painter, const QStyleOptionViewItem &option,
0060                                 const QRect &rect, const QPixmap &pixmap) const;
0061     virtual void drawFocus(QPainter *painter, const QStyleOptionViewItem &option,
0062                            const QRect &rect) const;
0063     virtual void drawCheck(QPainter *painter, const QStyleOptionViewItem &option,
0064                            const QRect &rect, Qt::CheckState state) const;
0065     void drawBackground(QPainter *painter, const QStyleOptionViewItem &option,
0066                         const QModelIndex &index) const;
0067 
0068     void doLayout(const QStyleOptionViewItem &option,
0069                   QRect *checkRect, QRect *iconRect, QRect *textRect, bool hint) const;
0070 
0071     QRect rect(const QStyleOptionViewItem &option, const QModelIndex &index, int role) const;
0072 
0073     bool eventFilter(QObject *object, QEvent *event) override;
0074     bool editorEvent(QEvent *event, QAbstractItemModel *model,
0075                      const QStyleOptionViewItem &option, const QModelIndex &index) override;
0076 
0077     QStyleOptionViewItem setOptions(const QModelIndex &index,
0078                                     const QStyleOptionViewItem &option) const;
0079 
0080     QPixmap decoration(const QStyleOptionViewItem &option, const QVariant &variant) const;
0081 
0082     static QPixmap selectedPixmap(const QPixmap &pixmap, const QPalette &palette, bool enabled);
0083 
0084     QRect doCheck(const QStyleOptionViewItem &option, const QRect &bounding,
0085                 const QVariant &variant) const;
0086     QRect textRectangle(QPainter *painter, const QRect &rect,
0087                         const QFont &font, const QString &text) const;
0088 
0089 private:
0090     Q_DECLARE_PRIVATE(QItemDelegate)
0091     Q_DISABLE_COPY(QItemDelegate)
0092 };
0093 
0094 QT_END_NAMESPACE
0095 
0096 #endif // QITEMDELEGATE_H