7#include <private/qtablewidget_p.h>
16 tableItems(rows * columns, 0),
17 verticalHeaderItems(rows, 0),
18 horizontalHeaderItems(columns, 0)
29 if (
count < 1 || row < 0 || row > verticalHeaderItems.
size())
33 int rc = verticalHeaderItems.
size();
34 int cc = horizontalHeaderItems.
size();
46 if (
count < 1 || column < 0 || column > horizontalHeaderItems.
size())
50 int rc = verticalHeaderItems.
size();
51 int cc = horizontalHeaderItems.
size();
64 if (
count < 1 || row < 0 || row + count > verticalHeaderItems.
size())
71 for (
int j =
i;
j <
n +
i; ++
j) {
72 oldItem = tableItems.
at(
j);
74 oldItem->view =
nullptr;
79 oldItem = verticalHeaderItems.
at(
v);
81 oldItem->view =
nullptr;
91 if (
count < 1 || column < 0 || column + count > horizontalHeaderItems.
size())
99 oldItem = tableItems.
at(
j);
101 oldItem->view =
nullptr;
107 oldItem = horizontalHeaderItems.
at(
h);
109 oldItem->view =
nullptr;
120 if (i < 0 || i >= tableItems.
size())
128 oldItem->view =
nullptr;
129 delete tableItems.
at(
i);
136 tableItems[
i] =
item;
138 if (
view &&
view->isSortingEnabled()
139 &&
view->horizontalHeader()->sortIndicatorSection() ==
column) {
143 if (
row < colItems.size())
144 colItems.remove(
row);
146 if (
item ==
nullptr) {
148 sortedRow = colItems.size();
154 if (sortedRow !=
row) {
158 QList<QTableWidgetItem *> rowItems(cc);
159 for (
int j = 0;
j < cc; ++
j)
163 for (
int j = 0;
j < cc; ++
j)
173 newPersistentIndexes);
214 tableItems[
i] =
nullptr;
222 verticalHeaderItems[
i] = 0;
228 horizontalHeaderItems[
i] = 0;
236 if (section < 0 || section >= horizontalHeaderItems.
size())
243 oldItem->view =
nullptr;
250 item->d->headerItem =
true;
252 horizontalHeaderItems[section] =
item;
258 if (section < 0 || section >= verticalHeaderItems.
size())
265 oldItem->view =
nullptr;
272 item->d->headerItem =
true;
274 verticalHeaderItems[section] =
item;
280 if (section < 0 || section >= horizontalHeaderItems.
size())
286 horizontalHeaderItems[section] = 0;
293 if (section < 0 || section >= verticalHeaderItems.
size())
299 verticalHeaderItems[section] = 0;
306 return horizontalHeaderItems.
value(section);
311 return verticalHeaderItems.
value(section);
319 const int id =
item->d->id;
320 if (
id >= 0 &&
id < tableItems.
size() && tableItems.
at(
id) ==
item) {
334 int rc = verticalHeaderItems.
size();
335 if (rows < 0 || rc == rows)
345 int cc = horizontalHeaderItems.
size();
346 if (columns < 0 || cc == columns)
356 return parent.isValid() ? 0 : verticalHeaderItems.
size();
361 return parent.isValid() ? 0 : horizontalHeaderItems.
size();
368 return itm->
data(role);
374 if (!
index.isValid())
384 if (!
value.isValid())
399 QMap<int, QVariant> roles;
402 for (
int i = 0;
i < itm->values.
size(); ++
i) {
403 roles.insert(itm->values.
at(
i).
role,
413 if (!
index.isValid())
423 if (itm->
data(role) !=
it.value()) {
431 if (!rolesVec.isEmpty())
453 const auto beginIter = itm->values.
cbegin();
454 const auto endIter = itm->values.
cend();
455 if (std::all_of(beginIter, endIter, [](
const QWidgetItemData&
data) ->
bool {
return !
data.value.isValid(); }))
464 if (!
index.isValid())
478 QList<QPair<QTableWidgetItem *, int>> sortable;
479 QList<int> unsortable;
486 sortable.append(QPair<QTableWidgetItem*,int>(itm,
row));
488 unsortable.append(
row);
492 std::stable_sort(sortable.begin(), sortable.end(),
compare);
494 QList<QTableWidgetItem *> sorted_table(tableItems.
size());
499 from.
reserve(numRows * numColumns);
500 to.
reserve(numRows * numColumns);
501 for (
int i = 0;
i < numRows; ++
i) {
502 int r = (
i < sortable.size()
503 ? sortable.at(
i).second
504 : unsortable.at(
i - sortable.size()));
505 for (
int c = 0;
c < numColumns; ++
c) {
514 tableItems = sorted_table;
531 QList<QPair<QTableWidgetItem *, int>> sorting;
532 sorting.reserve(
count);
535 if (itm ==
nullptr) {
540 sorting.append(QPair<QTableWidgetItem*,int>(itm,
row));
544 std::stable_sort(sorting.begin(), sorting.end(),
compare);
546 QList<QTableWidgetItem *> newTable = tableItems;
547 QList<QTableWidgetItem *> newVertical = verticalHeaderItems;
551 bool changed =
false;
552 for (
int i = 0;
i < sorting.size(); ++
i) {
553 distanceFromBegin = std::distance(colItems.begin(), vit);
554 int oldRow = sorting.at(
i).second;
556 colItems.remove(oldRow);
559 int newRow =
qMax((
int)(vit - colItems.begin()), 0);
560 if ((newRow < oldRow) && !(*
item < *colItems.at(oldRow - 1)) && !(*colItems.at(oldRow - 1) < *
item))
562 vit = colItems.insert(vit,
item);
563 if (newRow != oldRow) {
567 newPersistentIndexes = oldPersistentIndexes;
572 QList<QTableWidgetItem *> rowItems(cc);
573 for (
int j = 0;
j < cc; ++
j)
576 newTable.insert(
tableIndex(newRow, 0), cc, 0);
577 for (
int j = 0;
j < cc; ++
j)
580 newVertical.remove(oldRow);
581 newVertical.insert(newRow,
header);
585 for (
int j =
i + 1;
j < sorting.size(); ++
j) {
586 int otherRow = sorting.at(
j).second;
587 if (oldRow < otherRow && newRow >= otherRow)
589 else if (oldRow > otherRow && newRow <= otherRow)
596 tableItems = newTable;
597 verticalHeaderItems = newVertical;
599 newPersistentIndexes);
611 QList<QTableWidgetItem *>
items;
616 if (itm ==
nullptr) {
634 int movedFromRow,
int movedToRow)
636 QModelIndexList::iterator
it;
638 int oldRow = (*it).row();
640 if (oldRow == movedFromRow)
642 else if (movedFromRow < oldRow && movedToRow >= oldRow)
644 else if (movedFromRow > oldRow && movedToRow <= oldRow)
646 if (newRow != oldRow)
647 *
it =
index(newRow, (*it).column(), (*it).parent());
669 const QPair<QTableWidgetItem*,int> &
right)
675 const QPair<QTableWidgetItem*,int> &
right)
677 return (*(
right.first) < *(
left .first));
687 itm = horizontalHeaderItems.
at(section);
688 else if (orientation ==
Qt::Vertical && section < verticalHeaderItems.
size())
689 itm = verticalHeaderItems.
at(section);
694 return itm->
data(role);
710 itm = horizontalHeaderItems.
at(section);
712 itm = verticalHeaderItems.
at(section);
722 return (
index.isValid()
723 &&
index.row() < verticalHeaderItems.
size()
724 &&
index.column() < horizontalHeaderItems.
size());
729 for (
int j = 0;
j < verticalHeaderItems.
size(); ++
j) {
730 if (verticalHeaderItems.
at(
j)) {
731 verticalHeaderItems.
at(
j)->view =
nullptr;
732 delete verticalHeaderItems.
at(
j);
733 verticalHeaderItems[
j] = 0;
736 for (
int k = 0; k < horizontalHeaderItems.
size(); ++k) {
737 if (horizontalHeaderItems.
at(k)) {
738 horizontalHeaderItems.
at(k)->view =
nullptr;
739 delete horizontalHeaderItems.
at(k);
740 horizontalHeaderItems[k] = 0;
749 for (
int i = 0;
i < tableItems.
size(); ++
i) {
750 if (tableItems.
at(
i)) {
751 tableItems.
at(
i)->view =
nullptr;
752 delete tableItems.
at(
i);
763 if (
item->d->headerItem) {
791 if (prototype !=
item) {
810 QList<QTableWidgetItem*>
items;
811 const int indexesCount = indexes.
size();
813 for (
int i = 0;
i < indexesCount; ++
i)
819 cachedIndexes = indexes;
821 cachedIndexes.
clear();
828 if (
index.isValid()) {
1112 model->itemChanged(
this);
1308 itemFlags(
Qt::ItemIsEditable
1309 |
Qt::ItemIsSelectable
1310 |
Qt::ItemIsUserCheckable
1312 |
Qt::ItemIsDragEnabled
1313 |
Qt::ItemIsDropEnabled)
1324 itemFlags(
Qt::ItemIsEditable
1325 |
Qt::ItemIsSelectable
1326 |
Qt::ItemIsUserCheckable
1328 |
Qt::ItemIsDragEnabled
1329 |
Qt::ItemIsDropEnabled)
1341 itemFlags(
Qt::ItemIsEditable
1342 |
Qt::ItemIsSelectable
1343 |
Qt::ItemIsUserCheckable
1345 |
Qt::ItemIsDragEnabled
1346 |
Qt::ItemIsDropEnabled)
1358 model->removeItem(
this);
1382 for (
int i = 0;
i <
values.size(); ++
i) {
1383 if (
values.at(
i).role == role) {
1398 : QList<int>({ role }));
1399 model->itemChanged(
this, roles);
1410 if (
value.role == role)
1426#ifndef QT_NO_DATASTREAM
1454 return (view ? qobject_cast<QTableModel*>(view->
model()) :
nullptr);
1503 itemFlags(
other.itemFlags)
1518 itemFlags =
other.itemFlags;
1682 if (currentItem || previousItem)
1683 emit q->currentItemChanged(currentItem, previousItem);
1896 d->clearConnections();
1909 d->tableModel()->setRowCount(rows);
1919 return d->model->rowCount();
1932 d->tableModel()->setColumnCount(columns);
1942 return d->model->columnCount();
1951 return d->tableModel()->index(
item).row();
1960 return d->tableModel()->index(
item).column();
1999 qWarning(
"QTableWidget: cannot insert an item that is already owned by another QTableWidget");
2017 item->view =
nullptr;
2027 return d->tableModel()->verticalHeaderItem(
row);
2038 d->tableModel()->setVerticalHeaderItem(
row,
item);
2053 itm->view =
nullptr;
2064 return d->tableModel()->horizontalHeaderItem(
column);
2077 d->tableModel()->setHorizontalHeaderItem(
column,
item);
2092 itm->view =
nullptr;
2110 item->setText(labels.at(
i));
2128 item->setText(labels.at(
i));
2187 d->selectionModel->setCurrentIndex(
d->tableModel()->index(
item), command);
2360 QList<QTableWidgetSelectionRange>
result;
2361 const int rangesCount = ranges.size();
2362 result.reserve(rangesCount);
2363 for (
int i = 0;
i < rangesCount; ++
i)
2364 result.append({ranges.at(i).top(),
2365 ranges.at(i).left(),
2366 ranges.at(i).bottom(),
2367 ranges.at(i).right()});
2385 QList<QTableWidgetItem*>
items;
2386 for (
const auto &
index : indexes) {
2407 QList<QTableWidgetItem*>
items;
2408 const int indexCount = indexes.
size();
2410 for (
int i = 0;
i < indexCount; ++
i)
2445 return d->tableModel()->item(
indexAt(
p));
2485 return d->tableModel()->itemPrototype();
2504 d->tableModel()->setItemPrototype(
item);
2513 d->tableModel()->insertRows(
row);
2522 d->tableModel()->insertColumns(
column);
2531 d->tableModel()->removeRows(
row);
2540 d->tableModel()->removeColumns(
column);
2555 d->tableModel()->clear();
2569 d->tableModel()->clearContents();
2580 return d_func()->tableModel()->QAbstractTableModel::mimeTypes();
2598 if (cachedIndexes.
isEmpty()) {
2605 cachedIndexes.
clear();
2609 return d->tableModel()->internalMimeData();
2623#if QT_CONFIG(draganddrop)
2624 if (dropIndicatorPosition() == QAbstractItemView::OnItem) {
2631 return d_func()->tableModel()->QAbstractTableModel::dropMimeData(
data, action ,
row,
column, idx);
2641 return d_func()->tableModel()->QAbstractTableModel::supportedDropActions() |
Qt::MoveAction;
2655 return QList<QTableWidgetItem*>();
2667 return d->tableModel()->index(
item);
2677 return d->tableModel()->item(
index);
2685 Q_ASSERT(!
"QTableWidget::setModel() - Changing the model of the QTableWidget is not allowed.");
2694#if QT_CONFIG(draganddrop)
2696void QTableWidget::dropEvent(QDropEvent *
event) {
2699 dragDropMode() == QAbstractItemView::InternalMove)) {
2704 if (!
event->isAccepted() &&
d->dropOn(
event, &
row, &col, &topIndex)) {
2708 for (
const auto &
index : indexes) {
2713 QList<QTableWidgetItem *> taken;
2714 const int indexesCount = indexes.
size();
2715 taken.reserve(indexesCount);
2716 for (
const auto &
index : indexes)
2719 for (
const auto &
index : indexes) {
2720 int r =
index.row() -
top + topIndex.row();
2721 int c =
index.column() -
left + topIndex.column();
2729 if (
event->isAccepted())
2730 d->dropEventMoved =
true;
2733 QTableView::dropEvent(
event);
2739#include "moc_qtablewidget.cpp"
2740#include "moc_qtablewidget_p.cpp"
static bool variantLessThan(const QVariant &v1, const QVariant &v2)
void endResetModel()
Completes a model reset operation.
void columnsRemoved(const QModelIndex &parent, int first, int last, QPrivateSignal)
This signal is emitted after columns have been removed from the model.
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 Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of rows under the given parent.
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.
virtual Q_INVOKABLE int columnCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of columns for the children of the given parent.
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.
QAbstractItemModel * model
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.
QModelIndex currentIndex() const
Returns the model index of the current item.
QModelIndex rootIndex() const
Returns the model index of the model's root item.
bool isPersistentEditorOpen(const QModelIndex &index) const
void setIndexWidget(const QModelIndex &index, QWidget *widget)
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.
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.
QObject * parent() const
Returns a pointer to the parent object.
\inmodule QtCore\reentrant
The QIcon class provides scalable icons in different modes and states.
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
This signal is emitted whenever the selection changes.
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
This signal is emitted whenever the current item changes.
Q_INVOKABLE bool isSelected(const QModelIndex &index) const
Returns true if the given model item index is selected.
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.
qsizetype size() const noexcept
bool isEmpty() const noexcept
iterator insert(qsizetype i, parameter_type t)
const_reference at(qsizetype i) const noexcept
T value(qsizetype i) const
void remove(qsizetype i, qsizetype n=1)
void reserve(qsizetype size)
void resize(qsizetype size)
const_iterator cend() const noexcept
void append(parameter_type t)
const_iterator cbegin() const noexcept
constexpr int row() const noexcept
Returns the row this model index refers to.
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}.
static QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiverPrivate, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
QObject * parent() const
Returns a pointer to the parent object.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
\threadsafe
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\macro QT_RESTRICTED_CAST_FROM_ASCII
void removeItem(QTableWidgetItem *item)
static bool itemLessThan(const QPair< QTableWidgetItem *, int > &left, const QPair< QTableWidgetItem *, int > &right)
void setRowCount(int rows)
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Returns the number of columns for the children of the given parent.
QTableWidgetItem * verticalHeaderItem(int section)
Qt::ItemFlags flags(const QModelIndex &index) const override
\reimp
void setVerticalHeaderItem(int section, QTableWidgetItem *item)
bool clearItemData(const QModelIndex &index) override
void ensureSorted(int column, Qt::SortOrder order, int start, int end)
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role) override
Sets the data for the given role and section in the header with the specified orientation to the valu...
void setItemPrototype(const QTableWidgetItem *item)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Returns the number of rows under the given parent.
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.
QTableWidgetItem * takeHorizontalHeaderItem(int section)
void setItem(int row, int column, QTableWidgetItem *item)
bool insertRows(int row, int count=1, const QModelIndex &parent=QModelIndex()) override
QStringList mimeTypes() const override
Returns the list of allowed MIME types.
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Returns the data for the given role and section in the header with the specified orientation.
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
\reimp
bool isValid(const QModelIndex &index) const
QTableWidgetItem * createItem() const
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Returns the index of the data in row and column with parent.
static QList< QTableWidgetItem * >::iterator sortedInsertionIterator(const QList< QTableWidgetItem * >::iterator &begin, const QList< QTableWidgetItem * >::iterator &end, Qt::SortOrder order, QTableWidgetItem *item)
QTableWidgetItem * horizontalHeaderItem(int section)
void setHorizontalHeaderItem(int section, QTableWidgetItem *item)
void itemChanged(QTableWidgetItem *item, const QList< int > &roles=QList< int >())
QMimeData * internalMimeData() const
const QTableWidgetItem * itemPrototype() const
bool insertColumns(int column, int count=1, const QModelIndex &parent=QModelIndex()) override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
Sets the role data for the item at index to value.
bool removeColumns(int column, int count=1, const QModelIndex &parent=QModelIndex()) override
QTableWidgetItem * takeItem(int row, int column)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Returns the data stored under the given role for the item referred to by the index.
void setColumnCount(int columns)
bool setItemData(const QModelIndex &index, const QMap< int, QVariant > &roles) override
Sets the role data for the item at index to the associated value in roles, for every Qt::ItemDataRole...
void sort(int column, Qt::SortOrder order) override
QMimeData * mimeData(const QModelIndexList &indexes) const override
Returns an object that contains serialized items of data corresponding to the list of indexes specifi...
static bool itemGreaterThan(const QPair< QTableWidgetItem *, int > &left, const QPair< QTableWidgetItem *, int > &right)
bool removeRows(int row, int count=1, const QModelIndex &parent=QModelIndex()) override
long tableIndex(int row, int column) const
QTableModel(int rows, int columns, QTableWidget *parent)
QList< QTableWidgetItem * > columnItems(int column) const
void updateRowIndexes(QModelIndexList &indexes, int movedFromRow, int movedToRow)
Qt::DropActions supportedDropActions() const override
QTableWidgetItem * takeVerticalHeaderItem(int section)
QTableWidgetItem * item(int row, int column) const
QHeaderView * horizontalHeader
The QTableView class provides a default model/view implementation of a table view.
void setModel(QAbstractItemModel *model) override
\reimp
void scrollTo(const QModelIndex &index, ScrollHint hint=EnsureVisible) override
\reimp
void setSortingEnabled(bool enable)
If enable is true, enables sorting for the table and immediately trigger a call to sortByColumn() wit...
QRect visualRect(const QModelIndex &index) const override
\reimp
QModelIndex indexAt(const QPoint &p) const override
Returns the index position of the model item corresponding to the table item at position pos in conte...
bool isSortingEnabled() const
QHeaderView * horizontalHeader() const
Returns the table view's horizontal header.
QModelIndexList selectedIndexes() const override
\reimp
QHeaderView * verticalHeader() const
Returns the table view's vertical header.
bool isIndexHidden(const QModelIndex &index) const override
\reimp
list append(new Employee("Blackpool", "Stephen"))
QSet< QString >::iterator it
Combined button and popup list for selecting options.
QList< QString > QStringList
Constructs a string list that contains the given string, str.
DBusConnection * connection
static QString header(const QString &name)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qMin(const T &a, const T &b)
constexpr const T & qMax(const T &a, const T &b)
GLint GLfloat GLfloat GLfloat v2
GLenum GLsizei GLsizei GLint * values
[15]
GLsizei const GLfloat * v
[13]
GLdouble GLdouble GLdouble GLdouble top
GLenum GLenum GLsizei count
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
GLfixed GLfixed GLint GLint order
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
static int compare(quint64 a, quint64 b)
QSqlQueryModel * model
[16]
QTextStream out(stdout)
[7]
selection select(topLeft, bottomRight)
qsizetype indexOf(const AT &t, qsizetype from=0) const noexcept