4#ifndef QABSTRACTITEMMODEL_P_H
5#define QABSTRACTITEMMODEL_P_H
19#include "QtCore/qabstractitemmodel.h"
20#include "QtCore/private/qobject_p.h"
21#include "QtCore/qstack.h"
22#include "QtCore/qset.h"
23#include "QtCore/qhash.h"
67 virtual void executePendingOperations()
const;
74 return q_func()->createIndex(
row,
column,
id);
78 return (
index.row() >= 0) && (
index.column() >= 0) && (
index.model() == q_func());
81 void invalidatePersistentIndexes();
147 static_assert(std::is_enum_v<T>);
148 if (
data.userType() == qMetaTypeId<T>()) {
149 return data.value<T>();
150 }
else if (std::is_same_v<std::underlying_type_t<T>,
int> ||
151 std::is_same_v<std::underlying_type_t<T>,
uint>) {
152 return T(
data.toInt());
161 if (
data.userType() == qMetaTypeId<T>()) {
162 return data.value<T>();
163 }
else if (std::is_same_v<std::underlying_type_t<typename T::enum_type>,
int> ||
164 std::is_same_v<std::underlying_type_t<typename T::enum_type>,
uint>) {
165 return T::fromInt(
data.toInt());
QModelIndex createIndex(int row, int column, int id) const
QModelIndex createIndex(int row, int column, void *data=nullptr) const
bool indexValid(const QModelIndex &index) const
static void destroy(QPersistentModelIndexData *data)
QPersistentModelIndexData()
QPersistentModelIndexData(const QModelIndex &idx)
Combined button and popup list for selecting options.
T legacyEnumValueFromModelData(const QVariant &data)
T legacyFlagValueFromModelData(const QVariant &data)
GLint GLfloat GLfloat GLfloat v2
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLenum GLsizei void GLsizei void * column
GLenum GLenum GLsizei void * row
#define QT_REQUIRE_CONFIG(feature)
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
constexpr Change(const QModelIndex &p, int f, int l)
constexpr bool isValid() const
QMultiHash< QModelIndex, QPersistentModelIndexData * > indexes
QStack< QList< QPersistentModelIndexData * > > moved
QStack< QList< QPersistentModelIndexData * > > invalidated
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent