Qt 4.8
qabstractitemdelegate.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QABSTRACTITEMDELEGATE_H
43 #define QABSTRACTITEMDELEGATE_H
44 
45 #include <QtCore/qobject.h>
46 #include <QtGui/qstyleoption.h>
47 
49 
51 
52 QT_MODULE(Gui)
53 
54 #ifndef QT_NO_ITEMVIEWS
55 
56 class QPainter;
57 class QModelIndex;
58 class QAbstractItemModel;
59 class QAbstractItemView;
60 class QHelpEvent;
61 
63 {
64  Q_OBJECT
65 
66 public:
67 
68  enum EndEditHint {
73  RevertModelCache
74  };
75 
76  explicit QAbstractItemDelegate(QObject *parent = 0);
77  virtual ~QAbstractItemDelegate();
78 
79  // painting
80  virtual void paint(QPainter *painter,
81  const QStyleOptionViewItem &option,
82  const QModelIndex &index) const = 0;
83 
84  virtual QSize sizeHint(const QStyleOptionViewItem &option,
85  const QModelIndex &index) const = 0;
86 
87  // editing
88  virtual QWidget *createEditor(QWidget *parent,
89  const QStyleOptionViewItem &option,
90  const QModelIndex &index) const;
91 
92  virtual void setEditorData(QWidget *editor, const QModelIndex &index) const;
93 
94  virtual void setModelData(QWidget *editor,
95  QAbstractItemModel *model,
96  const QModelIndex &index) const;
97 
98  virtual void updateEditorGeometry(QWidget *editor,
99  const QStyleOptionViewItem &option,
100  const QModelIndex &index) const;
101 
102  // for non-widget editors
103  virtual bool editorEvent(QEvent *event,
104  QAbstractItemModel *model,
105  const QStyleOptionViewItem &option,
106  const QModelIndex &index);
107 
108  static QString elidedText(const QFontMetrics &fontMetrics, int width,
109  Qt::TextElideMode mode, const QString &text);
110 
111 public Q_SLOTS:
112  bool helpEvent(QHelpEvent *event,
113  QAbstractItemView *view,
114  const QStyleOptionViewItem &option,
115  const QModelIndex &index);
116 
117 Q_SIGNALS:
118  void commitData(QWidget *editor);
119  void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint = NoHint);
120  void sizeHintChanged(const QModelIndex &);
121 
122 protected:
124 private:
126 };
127 
128 #endif // QT_NO_ITEMVIEWS
129 
131 
133 
134 #endif // QABSTRACTITEMDELEGATE_H
The QPainter class performs low-level painting on widgets and other paint devices.
Definition: qpainter.h:86
The QAbstractItemDelegate class is used to display and edit data items from a model.
The QFontMetrics class provides font metrics information.
Definition: qfontmetrics.h:65
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
EventRef event
#define QT_MODULE(x)
Definition: qglobal.h:2783
#define QT_BEGIN_HEADER
Definition: qglobal.h:136
#define Q_GUI_EXPORT
Definition: qglobal.h:1450
TextElideMode
Definition: qnamespace.h:263
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
#define Q_DISABLE_COPY(Class)
Disables the use of copy constructors and assignment operators for the given Class.
Definition: qglobal.h:2523
#define Q_SLOTS
Definition: qobjectdefs.h:71
The QString class provides a Unicode character string.
Definition: qstring.h:83
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
#define Q_SIGNALS
Definition: qobjectdefs.h:72
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
#define Q_OBJECT
Definition: qobjectdefs.h:157
The QAbstractItemModel class provides the abstract interface for item model classes.
The QAbstractItemView class provides the basic functionality for item view classes.
The QModelIndex class is used to locate data in a data model.
quint16 index
EndEditHint
This enum describes the different hints that the delegate can give to the model and view components t...
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53
The QStyleOptionViewItem class is used to describe the parameters used to draw an item in a view widg...
Definition: qstyleoption.h:539
The QEvent class is the base class of all event classes.
Definition: qcoreevent.h:56
#define QT_END_HEADER
Definition: qglobal.h:137
#define text
Definition: qobjectdefs.h:80
The QHelpEvent class provides an event that is used to request helpful information about a particular...
Definition: qevent.h:586