Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qgraphicsscenelinearindex_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QGRAPHICSSCENELINEARINDEX_H
6
#
define
QGRAPHICSSCENELINEARINDEX_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists for the convenience
13
// of other Qt classes. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtWidgets
/
private
/
qtwidgetsglobal_p
.
h
>
20
21
#
include
<
QtCore
/
qrect
.
h
>
22
#
include
<
QtCore
/
qlist
.
h
>
23
#
include
<
QtWidgets
/
qgraphicsitem
.
h
>
24
#
include
<
private
/
qgraphicssceneindex_p
.
h
>
25
26
QT_REQUIRE_CONFIG
(
graphicsview
);
27
28
QT_BEGIN_NAMESPACE
29
30
class
Q_AUTOTEST_EXPORT
QGraphicsSceneLinearIndex
:
public
QGraphicsSceneIndex
31
{
32
Q_OBJECT
33
34
public
:
35
QGraphicsSceneLinearIndex(QGraphicsScene *scene =
nullptr
) : QGraphicsSceneIndex(scene), m_numSortedElements(0)
36
{ }
37
38
QList<QGraphicsItem *> items(Qt::SortOrder order = Qt::DescendingOrder)
const
override
39
{ Q_UNUSED(order);
return
m_items; }
40
41
virtual
QList<QGraphicsItem *> estimateItems(
const
QRectF &rect, Qt::SortOrder order)
const
override
42
{
43
Q_UNUSED(rect);
44
Q_UNUSED(order);
45
return
m_items;
46
}
47
48
protected
:
49
virtual
void
clear() override
50
{
51
m_items.clear();
52
m_numSortedElements = 0;
53
}
54
55
virtual
void
addItem(QGraphicsItem *item) override
56
{ m_items << item; }
57
58
virtual
void
removeItem(QGraphicsItem *item) override
59
{
60
// Sort m_items if needed
61
if
(m_numSortedElements < m_items.size())
62
{
63
std::sort(m_items.begin() + m_numSortedElements, m_items.end() );
64
std::inplace_merge(m_items.begin(), m_items.begin() + m_numSortedElements, m_items.end());
65
m_numSortedElements = m_items.size();
66
}
67
68
QList<QGraphicsItem*>::iterator element = std::lower_bound(m_items.begin(), m_items.end(), item);
69
if
(element != m_items.end() && *element == item)
70
{
71
m_items.erase(element);
72
--m_numSortedElements;
73
}
74
}
75
76
private
:
77
QList<QGraphicsItem*> m_items;
78
int
m_numSortedElements;
79
};
80
81
QT_END_NAMESPACE
82
83
#
endif
// QGRAPHICSSCENELINEARINDEX_H
QGraphicsSceneLinearIndex
The QGraphicsSceneLinearIndex class provides an implementation of a linear indexing algorithm for dis...
Definition
qgraphicsscenelinearindex_p.h:31
QPaintEngine::QPainter
friend class QPainter
Definition
qpaintengine.h:220
QPainter::QWidget
friend class QWidget
Definition
qpainter.h:432
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(animation)
DEBUG
#define DEBUG
Definition
qfilesystemwatcher_fsevents.mm:24
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(graphicsview)
qt_sendSpontaneousEvent
bool qt_sendSpontaneousEvent(QObject *, QEvent *)
setClip
static void setClip(QPainter *painter, QGraphicsItem *item)
Definition
qgraphicsscene.cpp:4772
_q_hoverFromMouseEvent
static void _q_hoverFromMouseEvent(QGraphicsSceneHoverEvent *hover, const QGraphicsSceneMouseEvent *mouseEvent)
Definition
qgraphicsscene.cpp:232
setWorldTransform
static void setWorldTransform(QPainter *painter, const QTransform *const transformPtr, const QTransform *effectTransform)
Definition
qgraphicsscene.cpp:4783
transformIsSimple
static bool transformIsSimple(const QTransform &transform)
Definition
qgraphicsscene.cpp:4277
ENSURE_TRANSFORM_PTR
#define ENSURE_TRANSFORM_PTR
_q_paintItem
static void _q_paintItem(QGraphicsItem *item, QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget, bool useWindowOpacity, bool painterStateProtection)
Definition
qgraphicsscene.cpp:4188
updateHelper
static bool updateHelper(QGraphicsViewPrivate *view, QGraphicsItemPrivate *item, const QRectF &rect, bool itemIsUntransformable)
Definition
qgraphicsscene.cpp:5016
_q_paintIntoCache
static void _q_paintIntoCache(QPixmap *pix, QGraphicsItem *item, const QRegion &pixmapExposed, const QTransform &itemToPixmap, QPainter::RenderHints renderHints, const QStyleOptionGraphicsItem *option, bool painterStateProtection)
Definition
qgraphicsscene.cpp:4232
qtbase
src
widgets
graphicsview
qgraphicsscenelinearindex_p.h
Generated on
for Qt by
1.18.0