11#include <private/qtreewidget_p.h>
12#include <private/qwidgetitemdata_p.h>
13#include <private/qtreewidgetitemiterator_p.h>
15#include <QtCore/private/qduplicatetracker_p.h>
111 headerItem->view =
nullptr;
113 rootItem->view =
nullptr;
130 item->view =
nullptr;
133 rootItem->children.
clear();
134 sortPendingTimer.
stop();
151 headerItem->view =
view();
154 if (
count == columns)
157 if (columns <
count) {
159 headerItem->values.
resize(columns);
163 headerItem->values.
resize(columns);
164 for (
int i =
count;
i < columns; ++
i) {
182 if (!
index.isValid())
196 executePendingSort();
205 int guess =
item->d->rowGuess;
207 && par->children.
size() > guess
208 && par->children.
at(guess) == itm) {
227 executePendingSort();
230 if (
row < 0 || column < 0 || column >=
c)
234 if (parentItem && row < parentItem->childCount()) {
257 if (!
child.isValid())
260 if (!itm || itm == rootItem)
329 if (!
index.isValid())
349 if (!
index.isValid())
366 const auto beginIter = itm->values.
at(
index.column()).
cbegin();
367 const auto endIter = itm->values.
at(
index.column()).
cend();
384 if (column < itm->
values.size()) {
444 for (
int i = oldCount;
i < oldCount +
count; ++
i) {
456 if (
child->children.size())
480 child->view =
nullptr;
502 return headerItem->
data(section, role);
521 if (section < 0 || orientation != Qt::Horizontal || !headerItem || section >=
columnCount())
537 if (!
index.isValid())
538 return rootItem->
flags();
554 sortPendingTimer.
stop();
572 sortPendingTimer.
stop();
597 bool changed =
false;
600 int oldRow = sorting.
at(
i).second;
602 int tmpitepos = lit - lst.
begin();
604 if (tmpitepos > lst.
size())
606 lit = lst.
begin() + tmpitepos;
609 int newRow = qMax<qsizetype>(lit - lst.
begin(), 0);
611 if ((newRow < oldRow) && !(*
item < *lst.
at(oldRow - 1)) && !(*lst.
at(oldRow - 1) < *
item ))
615 if (newRow != oldRow) {
621 newPersistentIndexes = oldPersistentIndexes;
624 int otherRow = sorting.
at(
j).second;
625 if (oldRow < otherRow && newRow >= otherRow)
627 else if (oldRow > otherRow && newRow <= otherRow)
630 for (
int k = 0; k < newPersistentIndexes.
size(); ++k) {
634 int oldPersistentRow =
pi.row();
635 int newPersistentRow = oldPersistentRow;
636 if (oldPersistentRow == oldRow)
637 newPersistentRow = newRow;
638 else if (oldRow < oldPersistentRow && newRow >= oldPersistentRow)
639 newPersistentRow = oldPersistentRow - 1;
640 else if (oldRow > oldPersistentRow && newRow <= oldPersistentRow)
641 newPersistentRow = oldPersistentRow + 1;
642 if (newPersistentRow != oldPersistentRow)
643 newPersistentIndexes[k] =
createIndex(newPersistentRow,
644 pi.column(),
pi.internalPointer());
703 return v->mimeTypes();
715 std::transform(indexes.
begin(), indexes.
end(), std::back_inserter(
items),
725 cachedIndexes = indexes;
727 cachedIndexes.
clear();
752bool QTreeModel::isChanging()
const
755 return !
d->changes.isEmpty();
785 bottomRight = topLeft;
809 for (
int i = 0;
i < iterators.
size(); ++
i) {
812 iterators[
i]->d_func()->ensureValidIterator(
c);
831 for (
int i = 0;
i < sorting.
size(); ++
i) {
833 sorting[
i].second =
i;
843 for (
int r = 0;
r < sorting.
size(); ++
r) {
844 int oldRow = sorting.
at(
r).second;
849 for (
int c = 0;
c < colCount; ++
c) {
864 executePendingSort();
1021 if (
this ==
model->headerItem) {
1044 if (
this ==
model->headerItem)
1045 return view->
header()->isHidden();
1046 if (view->d_func()->hiddenIndexes.isEmpty())
1049 return view->d_func()->
isRowHidden(view->d_func()->index(
this));
1067 view->
setExpanded(view->d_func()->index(
this), expand);
1084 return view->
isExpanded(view->d_func()->index(
this));
1417 model->rootItem->addChild(
this);
1439 model->rootItem->addChild(
this);
1458 model->rootItem->insertChild(
i,
this);
1521 int i = par->children.
indexOf(
this);
1526 if (!par->children.
isEmpty() && par->children.
at(
i) ==
this)
1531 if (
this ==
model->headerItem) {
1532 model->headerItem =
nullptr;
1536 model->beginRemoveItems(
nullptr,
i, 1);
1541 model->endRemoveItems();
1547 for (
int i = 0;
i < children.
size(); ++
i) {
1550 child->par =
nullptr;
1552 child->view =
nullptr;
1570 parentStack.
push(0);
1591 for (
int i = 0;
i <
item->childCount(); ++
i) {
1646 itemFlags =
flags &
~Qt::ItemIsEnabled;
1650 if (changedState && changedExplicit) {
1657 if (!
child->d->disabled) {
1663 child->itemChanged();
1682 item->view->setRowHidden(
index.row(),
index.parent(), inserting);
1684 for (
int i = 0;
i <
parent->children.size(); ++
i) {
1700 if (!
parent->d->disabled) {
1701 Qt::ItemFlags oldFlags =
parent->itemFlags;
1706 if (
parent->itemFlags != oldFlags)
1710 for (
int i = 0;
i <
parent->children.size(); ++
i) {
1770 for (
int i = 0;
i < children.
size(); ++
i) {
1773 Qt::ItemFlags
f = itemFlags;
1774 itemFlags &=
~Qt::ItemIsAutoTristate;
1785 for (
int i = 0;
i < column_values.
size(); ++
i) {
1786 if (column_values.
at(
i).role == role) {
1787 if (column_values.
at(
i).value ==
value)
1832 return childrenCheckState(
column);
1837 for (
const auto &column_value : column_values) {
1838 if (column_value.role == role)
1839 return column_value.value;
1859#ifndef QT_NO_DATASTREAM
1912 itemFlags(
other.itemFlags)
1930 itemFlags =
other.itemFlags;
1943 child->d->rowGuess = children.
size() - 1;
1954 if (index < 0 || index > children.
size() ||
child ==
nullptr ||
child->view !=
nullptr ||
child->par !=
nullptr)
1959 if (
model->rootItem ==
this)
1960 child->par =
nullptr;
1965 if (!
model->sortPendingTimer.isActive())
1975 i->values.reserve(cols);
1976 for (
int c = 0;
c <
i->children.size(); ++
c)
1977 stack.
push(
i->children.at(
c));
1981 model->endInsertItems();
2012 model->skipPendingSort =
false;
2013 model->executePendingSort();
2019 item->par =
nullptr;
2025 for (
int c = 0;
c <
i->children.size(); ++
c)
2026 stack.
push(
i->children.at(
c));
2056 if (index < 0 || index > this->children.
size() || children.
isEmpty())
2060 for (
int n = 0;
n < children.
size(); ++
n)
2067 for (
int n = 0;
n < children.
size(); ++
n) {
2072 if (view &&
model) {
2073 if (
child->childCount() == 0)
2079 child->par =
nullptr;
2083 if (!itemsToInsert.
isEmpty()) {
2087 for (
int c = 0;
c <
i->children.size(); ++
c)
2088 stack.
push(
i->children.at(
c));
2091 for (
int n = 0;
n < itemsToInsert.
size(); ++
n) {
2110 if (children.
size() > 0) {
2117 model->executePendingSort();
2120 for (
int n = 0;
n < children.
size(); ++
n) {
2122 item->par =
nullptr;
2128 for (
int c = 0;
c <
i->children.size(); ++
c)
2129 stack.
push(
i->children.at(
c));
2149 for (;
it !=
q->children.
end(); ++
it) {
2169 if (
model->isChanging())
2172 int oldSortColumn = view->d_func()->explicitSortColumn;
2173 view->d_func()->explicitSortColumn =
column;
2177 view->d_func()->explicitSortColumn = oldSortColumn;
2192 bool checkedChildren =
false;
2193 bool uncheckedChildren =
false;
2194 for (
const auto *
child : children) {
2196 if (!
value.isValid())
2202 uncheckedChildren =
true;
2205 checkedChildren =
true;
2212 if (uncheckedChildren && checkedChildren)
2216 if (uncheckedChildren)
2218 else if (checkedChildren)
2244void QTreeWidgetItem::itemChanged()
2247 model->itemChanged(
this);
2253void QTreeWidgetItem::executePendingSort()
const
2256 model->executePendingSort();
2267 return (
v ? qobject_cast<QTreeModel*>(
v->model()) :
nullptr);
2271#ifndef QT_NO_DATASTREAM
2339 emit q->itemChanged(indexItem,
index.column());
2360 emit q->currentItemChanged(currentItem, previousItem);
2380 item->d->selected =
true;
2386 item->d->selected =
false;
2389 emit q->itemSelectionChanged();
2396 && !
treeModel()->sortPendingTimer.isActive()) {
2595 this,
SLOT(_q_sort()));
2618 return d->model->columnCount();
2630 d->treeModel()->setColumnCount(columns);
2647 return d->treeModel()->rootItem;
2660 return d->treeModel()->rootItem->child(
index);
2675 return d->treeModel()->rootItem->childCount();
2689 d->treeModel()->rootItem->insertChild(
index,
item);
2714 return d->treeModel()->rootItem->takeChild(
index);
2726 d->treeModel()->executePendingSort();
2727 return d->treeModel()->rootItem->children.indexOf(
item);
2742 d->treeModel()->rootItem->insertChildren(
index,
items);
2764 return d->treeModel()->headerItem;
2785 d->treeModel()->beginInsertColumns(
QModelIndex(), oldCount,
item->columnCount() - 1);
2786 else if (oldCount >
item->columnCount())
2787 d->treeModel()->beginRemoveColumns(
QModelIndex(),
item->columnCount(), oldCount - 1);
2788 delete d->treeModel()->headerItem;
2789 d->treeModel()->headerItem =
item;
2791 d->treeModel()->endInsertColumns();
2792 else if (oldCount >
item->columnCount())
2793 d->treeModel()->endRemoveColumns();
2812 for (
int i = 0;
i < labels.size(); ++
i)
2813 item->setText(
i, labels.at(
i));
2878 QItemSelectionModel::SelectionFlags command)
2881 d->selectionModel->setCurrentIndex(
d->index(
item,
column), command);
2933 return (
d->explicitSortColumn != -1
2934 ?
d->explicitSortColumn
3057 for (
const auto &
index : indexes) {
3075 const int indexesSize = indexes.
size();
3077 for (
int i = 0;
i < indexesSize; ++
i)
3091 if (
item ==
d->treeModel()->headerItem)
3095 return d->item(above);
3106 if (
item ==
d->treeModel()->headerItem)
3110 return d->item(below);
3176 d->treeModel()->clear();
3187 return model()->QAbstractItemModel::mimeTypes();
3201 if (
d->treeModel()->cachedIndexes.isEmpty()) {
3205 qWarning(
"QTreeWidget::mimeData: Null-item passed");
3209 for (
int c = 0;
c <
item->values.size(); ++
c) {
3212 qWarning() <<
"QTreeWidget::mimeData: No index associated with item :" <<
item;
3218 return d->model->QAbstractItemModel::mimeData(indexes);
3220 return d->treeModel()->internalMimeData();
3238 return model()->QAbstractItemModel::dropMimeData(
data, action ,
index, 0, idx);
3275#if QT_CONFIG(draganddrop)
3277void QTreeWidget::dropEvent(QDropEvent *
event) {
3280 dragDropMode() == QAbstractItemView::InternalMove)) {
3285 if (!
event->isAccepted() &&
d->dropOn(
event, &
row, &col, &topIndex)) {
3288 const int indexesCount = idxs.
size();
3289 indexes.
reserve(indexesCount);
3290 for (
const auto &idx : idxs)
3301 for (
const auto &
index : indexes) {
3311 for (
int i = 0;
i < indexes.
size(); ++
i) {
3321 int r = dropRow.
row() >= 0 ? dropRow.
row() :
row;
3335 if (
event->isAccepted())
3336 d->dropEventMoved =
true;
3339 QTreeView::dropEvent(
event);
3349 Q_ASSERT(!
"QTreeWidget::setModel() - Changing the model of the QTreeWidget is not allowed.");
3359 d->treeModel()->executePendingSort();
3368 q_func()->executePendingSort();
3373#include "moc_qtreewidget.cpp"
3374#include "moc_qtreewidget_p.cpp"
static bool variantLessThan(const QVariant &v1, const QVariant &v2)
struct QAbstractItemModelPrivate::Persistent persistent
Q_INVOKABLE int const QModelIndex & parent
Returns the parent of the model item with the given index.
void endResetModel()
Completes a model reset operation.
void endRemoveRows()
Ends a row removal operation.
QModelIndexList persistentIndexList() const
void beginRemoveColumns(const QModelIndex &parent, int first, int last)
Begins a column removal operation.
void changePersistentIndexList(const QModelIndexList &from, const QModelIndexList &to)
void layoutAboutToBeChanged(const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles=QList< int >())
This signal is emitted whenever the data in an existing item changes.
virtual QMimeData * mimeData(const QModelIndexList &indexes) const
Returns an object that contains serialized items of data corresponding to the list of indexes specifi...
void layoutChanged(const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
bool checkIndex(const QModelIndex &index, CheckIndexOptions options=CheckIndexOption::NoOption) const
void headerDataChanged(Qt::Orientation orientation, int first, int last)
This signal is emitted whenever a header is changed.
void beginInsertColumns(const QModelIndex &parent, int first, int last)
Begins a column insertion operation.
void endInsertRows()
Ends a row insertion operation.
void beginResetModel()
Begins a model reset operation.
void endRemoveColumns()
Ends a column removal operation.
QModelIndex createIndex(int row, int column, const void *data=nullptr) const
Creates a model index for the given row and column with the internal pointer ptr.
void endInsertColumns()
Ends a column insertion operation.
void beginRemoveRows(const QModelIndex &parent, int first, int last)
Begins a row removal operation.
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.
void beginInsertRows(const QModelIndex &parent, int first, int last)
Begins a row insertion operation.
QWidget * indexWidget(const QModelIndex &index) const
void activated(const QModelIndex &index)
This signal is emitted when the item specified by index is activated by the user.
QAbstractItemModel * model() const
Returns the model that this view is presenting.
void setCurrentIndex(const QModelIndex &index)
Sets the current item to be the item at index.
void doubleClicked(const QModelIndex &index)
This signal is emitted when a mouse button is double-clicked.
bool event(QEvent *event) override
\reimp
void entered(const QModelIndex &index)
This signal is emitted when the mouse cursor enters the item specified by index.
virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
This slot is called when the selection is changed.
virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles=QList< int >())
This slot is called when items with the given roles are changed in the model.
QModelIndex currentIndex() const
Returns the model index of the current item.
bool isPersistentEditorOpen(const QModelIndex &index) const
void setIndexWidget(const QModelIndex &index, QWidget *widget)
virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
This slot is called when a new item becomes the current item.
void scheduleDelayedItemsLayout()
Schedules a layout of the items in the view to be executed when the event processing starts.
void openPersistentEditor(const QModelIndex &index)
Opens a persistent editor on the item at the given index.
void pressed(const QModelIndex &index)
This signal is emitted when a mouse button is pressed.
ScrollHint
\value EnsureVisible Scroll to ensure that the item is visible.
void clicked(const QModelIndex &index)
This signal is emitted when a mouse button is left-clicked.
void edit(const QModelIndex &index)
Starts editing the item corresponding to the given index if it is editable.
QItemSelectionModel * selectionModel() const
Returns the current selection model.
void closePersistentEditor(const QModelIndex &index)
Closes the persistent editor for the item at the given index.
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Returns the index of the data in row and column with parent.
int timerId() const noexcept
Returns the timer's ID.
void stop()
Stops the timer.
\inmodule QtCore\reentrant
QModelIndexList selectedIndexes
virtual void select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
Selects the model item index using the specified command, and emits selectionChanged().
virtual void clear()
Clears the selection model.
Q_CORE_EXPORT QModelIndexList indexes() const
Returns a list of model indexes that correspond to the selected items.
qsizetype size() const noexcept
bool isEmpty() const noexcept
iterator erase(const_iterator begin, const_iterator end)
iterator insert(qsizetype i, parameter_type t)
const_reference at(qsizetype i) const noexcept
void reserve(qsizetype size)
void replace(qsizetype i, parameter_type t)
void resize(qsizetype size)
const_iterator cend() const noexcept
void append(parameter_type t)
const_iterator cbegin() const noexcept
iterator insert(const Key &key, const T &value)
constexpr int row() const noexcept
Returns the row this model index refers to.
QModelIndex parent() const
Returns the parent of the model index, or QModelIndex() if it has no parent.
constexpr int column() const noexcept
Returns the column this model index refers to.
constexpr bool isValid() const noexcept
Returns {true} if this model index is valid; otherwise returns {false}.
bool contains(const Key &key) const noexcept
const QObjectList & children() const
Returns a list of child objects.
virtual void timerEvent(QTimerEvent *event)
This event handler can be reimplemented in a subclass to receive timer events for the object.
bool signalsBlocked() const noexcept
Returns true if signals are blocked; otherwise returns false.
QScopedPointer< QObjectData > d_ptr
int row() const
Returns the row this persistent model index refers to.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
T * data() const noexcept
Returns the value of the pointer referenced by this object.
int columnCount(const QModelIndex &parent=QModelIndex()) const override
\reimp
T pop()
Removes the top item from the stack and returns it.
void push(const T &t)
Adds element t to the top of the stack.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
int timerId() const
Returns the unique timer identifier, which is the same identifier as returned from QObject::startTime...
bool operator()(QTreeWidgetItem *i1, QTreeWidgetItem *i2) const
bool operator()(QTreeWidgetItem *i1, QTreeWidgetItem *i2) const
void executePendingOperations() const override
see QTBUG-94546
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role) override
void ensureSorted(int column, Qt::SortOrder order, int start, int end, const QModelIndex &parent)
int rowCount(const QModelIndex &parent) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
bool insertColumns(int column, int count, const QModelIndex &) override
QTreeWidget * view() const
void emitDataChanged(QTreeWidgetItem *item, int column, const QList< int > &roles)
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
void itemChanged(QTreeWidgetItem *item)
void setColumnCount(int columns)
friend class QTreeWidgetItem
bool insertRows(int row, int count, const QModelIndex &) override
void sortItems(QList< QTreeWidgetItem * > *items, int column, Qt::SortOrder order)
QMimeData * internalMimeData() const
QTreeWidgetItem * item(const QModelIndex &index) const
Qt::DropActions supportedDropActions() const override
QMimeData * mimeData(const QModelIndexList &indexes) const override
Returns an object that contains serialized items of data corresponding to the list of indexes specifi...
QTreeModel(int columns=0, QTreeWidget *parent=nullptr)
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
void sort(int column, Qt::SortOrder order) override
static bool itemLessThan(const QPair< QTreeWidgetItem *, int > &left, const QPair< QTreeWidgetItem *, int > &right)
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
\reimp
bool clearItemData(const QModelIndex &index) override
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
Handles the data supplied by a drag and drop operation that ended with the given action.
static QList< QTreeWidgetItem * >::iterator sortedInsertionIterator(const QList< QTreeWidgetItem * >::iterator &begin, const QList< QTreeWidgetItem * >::iterator &end, Qt::SortOrder order, QTreeWidgetItem *item)
QStringList mimeTypes() const override
Returns the list of allowed MIME types.
QMap< int, QVariant > itemData(const QModelIndex &index) const override
Returns a map with values for all predefined roles in the model for the item at the given index.
QModelIndex index(const QTreeWidgetItem *item, int column) const
bool hasChildren(const QModelIndex &parent) const override
Returns {true} if parent has any children; otherwise returns {false}.
void timerEvent(QTimerEvent *) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
void beginRemoveItems(QTreeWidgetItem *parent, int row, int count)
void beginInsertItems(QTreeWidgetItem *parent, int row, int count)
static bool itemGreaterThan(const QPair< QTreeWidgetItem *, int > &left, const QPair< QTreeWidgetItem *, int > &right)
The QTreeView class provides a default model/view implementation of a tree view.
bool isSortingEnabled() const
void expand(const QModelIndex &index)
Expands the model item specified by the index.
void setSelectionModel(QItemSelectionModel *selectionModel) override
\reimp
void collapse(const QModelIndex &index)
Collapses the model item specified by the index.
void setModel(QAbstractItemModel *model) override
\reimp
QModelIndex indexBelow(const QModelIndex &index) const
Returns the model index of the item below index.
bool isExpanded(const QModelIndex &index) const
Returns true if the model item index is expanded; otherwise returns false.
QHeaderView * header() const
Returns the header for the tree view.
void setExpanded(const QModelIndex &index, bool expand)
Sets the item referred to by index to either collapse or expanded, depending on the value of expanded...
QModelIndex indexAt(const QPoint &p) const override
\reimp
QModelIndex indexAbove(const QModelIndex &index) const
Returns the model index of the item above index.
void setFirstColumnSpanned(int row, const QModelIndex &parent, bool span)
QModelIndexList selectedIndexes() const override
\reimp
void collapsed(const QModelIndex &index)
This signal is emitted when the item specified by index is collapsed.
void scrollTo(const QModelIndex &index, ScrollHint hint=EnsureVisible) override
Scroll the contents of the tree view until the given model item index is visible.
void setRowHidden(int row, const QModelIndex &parent, bool hide)
If hide is true the row with the given parent is hidden, otherwise the row is shown.
bool isRowHidden(int row, const QModelIndex &parent) const
Returns true if the item in the given row of the parent is hidden; otherwise returns false.
QRect visualRect(const QModelIndex &index) const override
Returns the rectangle on the viewport occupied by the item at index.
bool isFirstColumnSpanned(int row, const QModelIndex &parent) const
void expanded(const QModelIndex &index)
This signal is emitted when the item specified by index is expanded.
bool isValid() const
Returns true if the storage type of this variant is not QMetaType::UnknownType; otherwise returns fal...
list append(new Employee("Blackpool", "Stephen"))
QSet< QString >::iterator it
struct wl_display * display
Combined button and popup list for selecting options.
static jboolean copy(JNIEnv *, jobject)
std::pair< T1, T2 > QPair
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qMin(const T &a, const T &b)
constexpr const T & qBound(const T &min, const T &val, const T &max)
GLint GLfloat GLfloat GLfloat v2
GLenum GLsizei GLsizei GLint * values
[15]
GLsizei const GLfloat * v
[13]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLsizei const GLchar ** strings
[1]
GLenum GLuint GLenum GLsizei length
GLenum GLenum GLsizei count
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
GLsizei GLenum const void * indices
GLenum GLenum GLsizei void GLsizei void * column
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLsizei void * row
GLenum GLenum GLsizei void GLsizei void void * span
GLfixed GLfixed GLint GLint order
const QQuickItem * rootItem(const I &item)
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
static QList< QVariant > toList(char **buf, int count)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
static int compare(quint64 a, quint64 b)
QSqlQueryModel * model
[16]
QTextStream out(stdout)
[7]
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)
selection select(topLeft, bottomRight)
QMultiHash< QModelIndex, QPersistentModelIndexData * > indexes
qsizetype indexOf(const AT &t, qsizetype from=0) const noexcept
bool contains(const AT &t) const noexcept
qsizetype lastIndexOf(const AT &t, qsizetype from=-1) const noexcept
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent