18#include <QtWidgets/private/qtwidgetsglobal_p.h>
20#include "private/qabstractitemview_p.h"
37 :
x(-1),
y(-1),
w(0),
h(0), indexHint(-1), visited(0xffff) {}
40 indexHint(
i), visited(0xffff) {}
43 indexHint ==
other.indexHint); }
45 {
return !(*
this ==
other); }
47 {
return rect().isValid() && (indexHint > -1); }
49 {
x = -1;
y = -1;
w = 0;
h = 0; }
54 constexpr int width()
const {
return w; }
55 constexpr int height()
const {
return h; }
61 mutable int indexHint;
111#if QT_CONFIG(draganddrop)
113 virtual bool filterDragMoveEvent(QDragMoveEvent *) {
return false; }
114 virtual bool filterDragLeaveEvent(QDragLeaveEvent *) {
return false; }
115 virtual bool filterDropEvent(QDropEvent *) {
return false; }
116 virtual bool filterStartDrag(Qt::DropActions) {
return false; }
130 inline int column()
const;
179 void clear()
override;
196#if QT_CONFIG(draganddrop)
200 void dragMoveEvent(QDragMoveEvent *
e);
210 int perItemScrollingPageSteps(
int length,
int bounds,
bool wrap)
const;
232 void clear()
override;
242#if QT_CONFIG(draganddrop)
243 bool filterDragMoveEvent(QDragMoveEvent *)
override;
244 bool filterDragLeaveEvent(QDragLeaveEvent *)
override;
245 bool filterDropEvent(QDropEvent *
e)
override;
246 bool filterStartDrag(Qt::DropActions)
override;
255 QRect draggedItemsRect()
const;
257 void updateContentsSize();
258 QPoint draggedItemsDelta()
const;
272 void prepareItemsLayout();
274 bool doItemsLayout(
int num);
279 QRect a = (q_func()->isRightToLeft() ? flipX(
area.normalized()) :
area.normalized());
280 return commonListView->intersectingSet(
a);
291 {
return QPoint(flipX(
p.x()),
p.y()); }
293 {
return QRect(flipX(
r.x()) -
r.width(),
r.y(),
r.width(),
r.height()); }
295 {
if (q_func()->isRightToLeft())
return flipX(
item.rect());
return item.rect(); }
308 if (!hasRectForIndex(
index))
311 return viewItemRect(indexToListViewItem(
index));
316 if (!hasRectForIndex(
index))
319 auto oldItemAlignment = itemAlignment;
320 itemAlignment = Qt::Alignment();
322 itemAlignment = oldItemAlignment;
341 void selectAll(QItemSelectionModel::SelectionFlags command)
override;
343#if QT_CONFIG(draganddrop)
366 rowIds.
reserve(hiddenRows.size());
367 for (
const auto &idx : hiddenRows)
375 void scrollElasticBandBy(
int dx,
int dy);
405 SelectionRectVisible = 64
The QAbstractItemDelegate class is used to display and edit data items from a model.
virtual Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of rows under the given parent.
virtual Q_INVOKABLE QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const =0
Returns the index of the item in the model specified by the given row, column and parent index.
virtual QItemViewPaintPairs draggablePaintPairs(const QModelIndexList &indexes, QRect *r) const
bool isPersistent(const QModelIndex &index) const
QPersistentModelIndex root
QAbstractItemModel * model
bool isIndexValid(const QModelIndex &index) const
void executePostedLayout() const
virtual void selectAll(QItemSelectionModel::SelectionFlags command)
bool isIndexEnabled(const QModelIndex &index) const
The QAbstractItemView class provides the basic functionality for item view classes.
ScrollMode verticalScrollMode
how the view scrolls its contents in the vertical direction
virtual QAbstractItemDelegate * itemDelegateForIndex(const QModelIndex &index) const
ScrollMode horizontalScrollMode
how the view scrolls its contents in the horizontal direction
ScrollHint
\value EnsureVisible Scroll to ensure that the item is visible.
int value
the slider's current value
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Returns the index of the data in row and column with parent.
virtual void setPositionForIndex(const QPoint &, const QModelIndex &)
virtual void dataChanged(const QModelIndex &, const QModelIndex &)=0
virtual ~QCommonListViewBase()
virtual int horizontalScrollToValue(int index, QListView::ScrollHint hint, bool leftOf, bool rightOf, const QRect &area, const QRect &rect) const
virtual QList< QModelIndex > intersectingSet(const QRect &area) const =0
QAbstractItemDelegate * delegate(const QModelIndex &idx) const
QListView::Movement movement() const
QRect viewItemRect(const QListViewItem &item) const
QListView::ScrollMode horizontalScrollMode() const
QListView::ScrollMode verticalScrollMode() const
virtual void updateHorizontalScrollBar(const QSize &step)
virtual int horizontalOffset() const
virtual int itemIndex(const QListViewItem &item) const =0
QWidget * viewport() const
void initViewItemOption(QStyleOptionViewItem *option) const
virtual bool doBatchedItemLayout(const QListViewLayoutInfo &info, int max)=0
virtual void appendHiddenRow(int row)
virtual void updateVerticalScrollBar(const QSize &step)
virtual QListViewItem indexToListViewItem(const QModelIndex &index) const =0
virtual void removeHiddenRow(int row)
bool uniformItemSizes() const
QSize cachedItemSize() const
virtual void scrollContentsBy(int dx, int dy, bool scrollElasticBand)
virtual int verticalOffset() const
bool isHidden(int row) const
QScrollBar * verticalScrollBar() const
QSize itemSize(const QStyleOptionViewItem &opt, const QModelIndex &idx) const
QListView::Flow flow() const
virtual void setRowCount(int)=0
virtual QRect mapToViewport(const QRect &rect) const
QScrollBar * horizontalScrollBar() const
bool isRightToLeft() const
QModelIndex modelIndex(int row) const
virtual int verticalScrollToValue(int index, QListView::ScrollHint hint, bool above, bool below, const QRect &area, const QRect &rect) const
QPoint pressedPosition() const
QCommonListViewBase(QListView *q, QListViewPrivate *d)
QList< QListViewItem > items
int itemIndex(const QListViewItem &item) const override
QList< QModelIndex > draggedItems
QListViewItem indexToListViewItem(const QModelIndex &index) const override
void setPositionForIndex(const QPoint &position, const QModelIndex &index) override
void setRowCount(int rowCount) override
void scrollContentsBy(int dx, int dy, bool scrollElasticBand) override
QList< QModelIndex > intersectingSet(const QRect &area) const override
QIconModeViewBase(QListView *q, QListViewPrivate *d)
void appendHiddenRow(int row) override
QList< QModelIndex > * interSectingVector
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) override
void removeHiddenRow(int row) override
bool doBatchedItemLayout(const QListViewLayoutInfo &info, int max) override
void updateHorizontalScrollBar(const QSize &step) override
bool doBatchedItemLayout(const QListViewLayoutInfo &info, int max) override
QList< int > segmentExtents
int itemIndex(const QListViewItem &item) const override
QList< int > segmentPositions
QList< int > flowPositions
void updateVerticalScrollBar(const QSize &step) override
void scrollContentsBy(int dx, int dy, bool scrollElasticBand) override
QList< QModelIndex > intersectingSet(const QRect &area) const override
int horizontalOffset() const override
QRect mapToViewport(const QRect &rect) const override
int verticalOffset() const override
QListViewItem indexToListViewItem(const QModelIndex &index) const override
void setRowCount(int rowCount) override
int verticalScrollToValue(int index, QListView::ScrollHint hint, bool above, bool below, const QRect &area, const QRect &rect) const override
int horizontalScrollToValue(int index, QListView::ScrollHint hint, bool leftOf, bool rightOf, const QRect &area, const QRect &rect) const override
static QSize viewportSize(const QAbstractItemView *v)
void dataChanged(const QModelIndex &, const QModelIndex &) override
QList< int > segmentStartRows
QList< int > scrollValueMap
constexpr void resize(QSize size)
constexpr int height() const
constexpr bool operator!=(const QListViewItem &other) const
constexpr void move(QPoint position)
constexpr int width() const
constexpr bool operator==(const QListViewItem &other) const
constexpr QListViewItem()
constexpr void invalidate()
constexpr bool isValid() const
constexpr QListViewItem(QRect r, int i)
QRect cellRectForIndex(const QModelIndex &index)
bool selectionAllowed(const QModelIndex &index) const override
void setGridSize(const QSize &size)
QListView::ViewMode viewMode
QSet< QPersistentModelIndex > hiddenRows
void resetBatchStartRow()
bool isHiddenOrDisabled(int row) const
QListView::Movement movement
bool hasRectForIndex(const QModelIndex &index) const
int batchStartRow() const
bool isSelectionRectVisible() const
void setSelectionRectVisible(bool visible)
QPoint flipX(const QPoint &p) const
void setContentsSize(int w, int h)
Qt::Alignment itemAlignment
QRect rectForIndex(const QModelIndex &index) const
QListView::ResizeMode resizeMode
QSize itemSize(const QStyleOptionViewItem &option, const QModelIndex &index) const
QModelIndex modelIndex(int row) const
QListView::LayoutMode layoutMode
QRect viewItemRect(const QListViewItem &item) const
QModelIndex listViewItemToIndex(const QListViewItem &item) const
QCommonListViewBase * commonListView
QRect flipX(const QRect &r) const
void emitIndexesMoved(const QModelIndexList &indexes)
QList< QModelIndex > intersectingSet(const QRect &area, bool doLayout=true) const
void viewUpdateGeometries()
bool isHidden(int row) const
QSize contentsSize() const
QList< int > hiddenRowIds() const
QBasicTimer batchLayoutTimer
The QListView class provides a list or icon view onto a model.
void initViewItemOption(QStyleOptionViewItem *option) const override
\reimp
ViewMode
\value ListMode The items are laid out using TopToBottom flow, with Small size and Static movement \v...
ResizeMode
\value Fixed The items will only be laid out the first time the view is shown.
Movement
\value Static The items cannot be moved by the user.
Flow
\value LeftToRight The items are laid out in the view from the left to the right.
LayoutMode
\value SinglePass The items are laid out all at once.
void reserve(qsizetype size)
void resize(qsizetype size)
The QPainter class performs low-level painting on widgets and other paint devices.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static int area(const QSize &s)
constexpr const T & qMin(const T &a, const T &b)
constexpr const T & qMax(const T &a, const T &b)
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * v
[13]
GLint GLint GLint GLint GLint x
[0]
GLfloat GLfloat GLfloat w
[0]
GLint GLsizei GLsizei height
GLboolean GLboolean GLboolean GLboolean a
[7]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLuint GLenum GLsizei length
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfloat GLfloat GLfloat GLfloat h
GLenum GLenum GLsizei void GLsizei void * column
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLsizei void * row
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
static QT_BEGIN_NAMESPACE QAsn1Element wrap(quint8 type, const QAsn1Element &child)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
#define Q_AUTOTEST_EXPORT
#define QT_REQUIRE_CONFIG(feature)
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
QSqlQueryModel * model
[16]
QFileInfo info(fileName)
[8]
view viewport() -> scroll(dx, dy, deviceRect)
QItemSelection * selection
[0]