4#ifndef QQUICKTABLEVIEW_P_P_H 
    5#define QQUICKTABLEVIEW_P_P_H 
   20#include <QtCore/qtimer.h> 
   21#include <QtCore/qitemselectionmodel.h> 
   22#include <QtQmlModels/private/qqmltableinstancemodel_p.h> 
   23#include <QtQml/private/qqmlincubator_p.h> 
   24#include <QtQmlModels/private/qqmlchangeset_p.h> 
   25#include <QtQml/qqmlinfo.h> 
   27#include <QtQuick/private/qminimalflatset_p.h> 
   28#include <QtQuick/private/qquickflickable_p_p.h> 
   29#include <QtQuick/private/qquickitemviewfxitem_p_p.h> 
   30#include <QtQuick/private/qquickanimation_p.h> 
   31#include <QtQuick/private/qquickselectable_p.h> 
   32#include <QtQuick/private/qquicksinglepointhandler_p.h> 
   33#include <QtQuick/private/qquickhoverhandler_p.h> 
   34#include <QtQuick/private/qquicktaphandler_p.h> 
   46class QQuickTableSectionSizeProviderPrivate;
 
   59    inline bool isHoveringGrid()
 const { 
return m_row != -1 || m_column != -1; };
 
  147            m_mode = incubationMode;
 
  148            m_edgeIndex = cell.
x();
 
  149            m_visibleCellsInEdge.clear();
 
  150            m_visibleCellsInEdge.append(cell.
y());
 
  153            qCDebug(lcTableViewDelegateLifecycle()) << 
"begin top-left:" << 
toString();
 
  161            m_edgeIndex = edgeIndex;
 
  162            m_visibleCellsInEdge = visibleCellsInEdge;
 
  163            m_mode = incubationMode;
 
  172        inline bool hasCurrentCell()
 const { 
return m_currentIndex < m_visibleCellsInEdge.size(); }
 
  176        inline int row()
 const { 
return cellAt(0).y(); }
 
  177        inline int column()
 const { 
return cellAt(0).x(); }
 
  186            dbg.nospace() << 
"TableSectionLoadRequest(" << 
"edge:" 
  187                << m_edge << 
", edgeIndex:" << m_edgeIndex << 
", incubation:";
 
  191                dbg << 
"Asynchronous";
 
  194                dbg << 
"AsynchronousIfNested";
 
  197                dbg << 
"Synchronous";
 
  208        int m_currentIndex = 0;
 
  216                    : 
QPoint(m_visibleCellsInEdge[
index], m_edgeIndex);
 
  239        MovePreloadedItemsToPool,
 
  248        CalculateNewTopLeftRow = 0x8,
 
  249        CalculateNewTopLeftColumn = 0x10,
 
  250        CalculateNewContentWidth = 0x20,
 
  251        CalculateNewContentHeight = 0x40,
 
  252        PositionViewAtRow = 0x80,
 
  253        PositionViewAtColumn = 0x100,
 
  301    RebuildOptions rebuildOptions = RebuildOption::All;
 
  302    RebuildOptions scheduledRebuildOptions = RebuildOption::All;
 
  310    bool blockItemCreatedCallback = 
false;
 
  311    mutable bool layoutWarningIssued = 
false;
 
  312    bool polishing = 
false;
 
  313    bool syncVertically = 
false;
 
  314    bool syncHorizontally = 
false;
 
  315    bool inSetLocalViewportPos = 
false;
 
  316    bool inSyncViewportPosRecursive = 
false;
 
  317    bool inUpdateContentSize = 
false;
 
  319    bool keyNavigationEnabled = 
true;
 
  320    bool pointerNavigationEnabled = 
true;
 
  321    bool alternatingRows = 
true;
 
  322    bool resizableColumns = 
false;
 
  323    bool resizableRows = 
false;
 
  325    bool m_cursorSet = 
false;
 
  330    bool isTransposed = 
false;
 
  332    bool warnNoSelectionModel = 
true;
 
  364    int assignedPositionViewAtRowAfterRebuild = 0;
 
  365    int assignedPositionViewAtColumnAfterRebuild = 0;
 
  366    int positionViewAtRowAfterRebuild = 0;
 
  367    int positionViewAtColumnAfterRebuild = 0;
 
  369    qreal positionViewAtColumnOffset = 0;
 
  384    int currentColumn = -1;
 
  406    int modelIndexAtCell(
const QPoint &cell) 
const;
 
  407    QPoint cellAtModelIndex(
int modelIndex) 
const;
 
  408    int modelIndexToCellIndex(
const QModelIndex &modelIndex) 
const;
 
  412    qreal sizeHintForRow(
int row) 
const;
 
  413    QSize calculateTableSize();
 
  414    void updateTableSize();
 
  416    inline bool isColumnHidden(
int column) 
const;
 
  417    inline bool isRowHidden(
int row) 
const;
 
  423    qreal getEffectiveRowY(
int row) 
const;
 
  424    qreal getEffectiveRowHeight(
int row) 
const;
 
  437    bool updateTableRecursive();
 
  439    void relayoutTableItems();
 
  441    void layoutVerticalEdge(
Qt::Edge tableEdge);
 
  442    void layoutHorizontalEdge(
Qt::Edge tableEdge);
 
  443    void layoutTopLeftItem();
 
  444    void layoutTableEdgeFromLoadRequest();
 
  446    void updateContentWidth();
 
  447    void updateContentHeight();
 
  448    void updateAverageColumnWidth();
 
  449    void updateAverageRowHeight();
 
  450    RebuildOptions checkForVisibilityChanges();
 
  451    void forceLayout(
bool immediate);
 
  453    void updateExtents();
 
  454    void syncLoadedTableRectFromLoadedTable();
 
  455    void syncLoadedTableFromLoadRequest();
 
  456    void shiftLoadedTableRect(
const QPointF newPosition);
 
  458    int nextVisibleEdgeIndex(
Qt::Edge edge, 
int startIndex) 
const;
 
  459    int nextVisibleEdgeIndexAroundLoadedTable(
Qt::Edge edge) 
const;
 
  462    inline int edgeToArrayIndex(
Qt::Edge edge) 
const;
 
  463    void clearEdgeSizeCache();
 
  465    bool canLoadTableEdge(
Qt::Edge tableEdge, 
const QRectF fillRect) 
const;
 
  466    bool canUnloadTableEdge(
Qt::Edge tableEdge, 
const QRectF fillRect) 
const;
 
  480    void unloadItem(
const QPoint &cell);
 
  484    void drainReusePoolAfterLoadRequest();
 
  485    void processLoadRequest();
 
  487    void processRebuildTable();
 
  488    bool moveToNextRebuildState();
 
  490    void loadInitialTable();
 
  492    void layoutAfterLoadingInitialTable();
 
  493    void adjustViewportXAccordingToAlignment();
 
  494    void adjustViewportYAccordingToAlignment();
 
  495    void cancelOvershootAfterLayout();
 
  497    void scheduleRebuildTable(QQuickTableViewPrivate::RebuildOptions options);
 
  502    void updateEditItem();
 
  503    void updateContentSize();
 
  506    void createWrapperModel();
 
  509    virtual void initItemCallback(
int modelIndex, 
QObject *
item);
 
  510    virtual void itemCreatedCallback(
int modelIndex, 
QObject *
object);
 
  511    virtual void itemPooledCallback(
int modelIndex, 
QObject *
object);
 
  512    virtual void itemReusedCallback(
int modelIndex, 
QObject *
object);
 
  515    virtual void syncWithPendingChanges();
 
  516    virtual void syncDelegate();
 
  518    virtual void setModelImpl(
const QVariant &newModel);
 
  519    virtual void syncModel();
 
  520    virtual void syncSyncView();
 
  521    virtual void syncPositionView();
 
  522    inline void syncRebuildOptions();
 
  524    void connectToModel();
 
  525    void disconnectFromModel();
 
  534    void modelResetCallback();
 
  541    void scheduleRebuildIfFastFlick();
 
  542    void setLocalViewportX(
qreal contentX);
 
  543    void setLocalViewportY(
qreal contentY);
 
  544    void syncViewportRect();
 
  545    void syncViewportPosRecursive();
 
  547    bool selectedInSelectionModel(
const QPoint &cell) 
const;
 
  549    void updateSelectedOnAllDelegateItems();
 
  553    bool currentInSelectionModel(
const QPoint &cell) 
const;
 
  556    void updateCurrentRowAndColumn();
 
  558    void fetchMoreData();
 
  563    inline QString tableLayoutToString() 
const;
 
  564    void dumpTable() 
const;
 
  566    void setRequiredProperty(
const char *
property,
 
  568                             int serializedModelIndex,
 
  572    void setCurrentIndexFromTap(
const QPointF &
pos);
 
  573    void setCurrentIndex(
const QPoint &cell);
 
  574    bool setCurrentIndexFromKeyEvent(
QKeyEvent *
e);
 
  575    bool canEdit(
const QModelIndex tappedIndex, 
bool warn);
 
  589    virtual void updateSelection(
const QRect &oldSelection, 
const QRect &newSelection);
 
qreal sectionSize() const override
 
qreal endPosition() const override
 
qreal size() const override
 
qreal position() const override
 
FxTableItem(QQuickItem *item, QQuickTableView *table, bool own)
 
bool contains(qreal, qreal) const override
 
LayoutChangeHint
This enum describes the way the model changes layout.
 
The QEventPoint class provides information about a point in a QPointerEvent.
 
The QJSValue class acts as a container for Qt/JavaScript data types.
 
The QKeyEvent class describes a key event.
 
reverse_iterator crbegin() const
 
\inmodule QtCore\reentrant
 
\inmodule QtCore\reentrant
 
constexpr int x() const noexcept
Returns the x coordinate of this point.
 
constexpr int y() const noexcept
Returns the y coordinate of this point.
 
A base class for pointer events.
 
GrabTransition
This enum represents a transition of exclusive or passive grab from one object (possibly nullptr) to ...
 
The QQmlChangeSet class stores an ordered list of notifications about changes to a linear data set.
 
IncubationMode
Specifies the mode the incubator operates in.
 
virtual void fixup(AxisData &data, qreal minExtent, qreal maxExtent)
 
virtual void updatePolish()
 
QPointer< QQuickItem > item
 
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
 
virtual void normalizeSelection()=0
 
virtual bool startSelection(const QPointF &pos)=0
 
virtual QQuickItem * selectionPointerHandlerTarget() const =0
 
virtual void setSelectionEndPos(const QPointF &pos)=0
 
virtual void clearSelection()=0
 
virtual QRectF selectionRectangle() const =0
 
virtual QSizeF scrollTowardsSelectionPoint(const QPointF &pos, const QSizeF &step)=0
 
virtual void setSelectionStartPos(const QPointF &pos)=0
 
bool isHoveringGrid() const
 
QPoint currentCell() const
 
void begin(Qt::Edge edgeToLoad, int edgeIndex, const QVector< int > visibleCellsInEdge, QQmlIncubator::IncubationMode incubationMode)
 
QQmlIncubator::IncubationMode incubationMode() const
 
void begin(const QPoint &cell, const QPointF &pos, QQmlIncubator::IncubationMode incubationMode)
 
QPointF startPosition() const
 
bool hasCurrentCell() const
 
bool atTableEnd(Qt::Edge edge, int startIndex) const
 
QJSValue rowHeightProvider
 
QRectF positionViewAtRowSubRect
 
QQmlNullableValue< qreal > explicitContentWidth
 
bool atTableEnd(Qt::Edge edge) const
 
QRectF loadedTableOuterRect
 
void registerCallbackWhenBindingsAreEvaluated()
 
QList< QPointer< QQuickTableView > > syncChildren
 
QQmlGuard< QQmlComponent > assignedDelegate
 
QMargins edgesBeforeRebuild
 
static QQuickTableViewPrivate * get(QQuickTableView *q)
 
QJSValue columnWidthProvider
 
QRectF positionViewAtColumnSubRect
 
EdgeRange cachedColumnWidth
 
bool cellIsValid(const QPoint &cell) const
 
QPointer< QQuickTableView > assignedSyncView
 
QQmlNullableValue< qreal > explicitContentHeight
 
TableEdgeLoadRequest loadRequest
 
QRectF loadedTableInnerRect
 
QQuickPropertyAnimation positionXAnimation
 
QMinimalFlatSet< int > loadedColumns
 
QHash< int, FxTableItem * > loadedItems
 
QMinimalFlatSet< int > loadedRows
 
QPointer< QItemSelectionModel > selectionModel
 
QHash< int, qreal > explicitColumnWidths
 
QHash< int, qreal > explicitRowHeights
 
QPointer< QQuickTableView > syncView
 
QQuickPropertyAnimation positionYAnimation
 
void _q_componentFinalized()
 
EdgeRange cachedRowHeight
 
void syncSourceModelInSelectionModel()
 
QPersistentModelIndex editIndex
 
void onGrabChanged(QQuickPointerHandler *grabber, QPointingDevice::GrabTransition transition, QPointerEvent *ev, QEventPoint &point) override
Notification that the grab has changed in some way which is relevant to this handler.
 
void updateState(QEventPoint &point)
 
void updateDrag(QPointerEvent *event, QEventPoint &point)
 
void handleEventPoint(QPointerEvent *event, QEventPoint &point) override
 
bool wantsEventPoint(const QPointerEvent *event, const QEventPoint &point) override
Returns true if the given point (as part of event) could be relevant at all to this handler,...
 
bool wantsEventPoint(const QPointerEvent *event, const QEventPoint &point) override
Returns true if the given point (as part of event) could be relevant at all to this handler,...
 
\inmodule QtCore\reentrant
 
\inmodule QtCore\reentrant
 
\macro QT_RESTRICTED_CAST_FROM_ASCII
 
Combined button and popup list for selecting options.
 
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 * destination
 
static QDBusError::ErrorType get(const char *name)
 
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
 
#define Q_DECLARE_FLAGS(Flags, Enum)
 
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
 
#define qCDebug(category,...)
 
#define Q_DECLARE_LOGGING_CATEGORY(name)
 
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
 
GLenum GLuint GLintptr offset
 
GLenum GLenum GLsizei void GLsizei void * column
 
GLdouble GLdouble GLdouble GLdouble q
 
GLenum GLenum GLsizei void * row
 
GLenum GLenum GLsizei void * table
 
static const qreal kDefaultColumnWidth
 
static const int kEdgeIndexAtEnd
 
static QT_BEGIN_NAMESPACE const qreal kDefaultRowHeight
 
static const int kEdgeIndexNotSet
 
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
 
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
 
QString qEnvironmentVariable(const char *varName, const QString &defaultValue)
 
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
 
QSqlQueryModel * model
[16]
 
QItemSelection * selection
[0]
 
selection select(topLeft, bottomRight)
 
char * toString(const MyType &t)
[31]
 
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent