Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQuickTableViewResizeHandler Class Reference

#include <qquicktableview_p_p.h>

+ Inheritance diagram for QQuickTableViewResizeHandler:
+ Collaboration diagram for QQuickTableViewResizeHandler:

Public Types

enum  State {
  Listening , Tracking , DraggingStarted , Dragging ,
  DraggingFinished
}
 
- Public Types inherited from QQuickPointerHandler
enum  GrabPermission {
  TakeOverForbidden = 0x0 , CanTakeOverFromHandlersOfSameType = 0x01 , CanTakeOverFromHandlersOfDifferentType = 0x02 , CanTakeOverFromItems = 0x04 ,
  CanTakeOverFromAnything = 0x0F , ApprovesTakeOverByHandlersOfSameType = 0x10 , ApprovesTakeOverByHandlersOfDifferentType = 0x20 , ApprovesTakeOverByItems = 0x40 ,
  ApprovesCancellation = 0x80 , ApprovesTakeOverByAnything = 0xF0
}
 

Public Member Functions

 QQuickTableViewResizeHandler (QQuickTableView *view)
 
State state ()
 
void updateState (QEventPoint &point)
 
void updateDrag (QPointerEvent *event, QEventPoint &point)
 
- Public Member Functions inherited from QQuickSinglePointHandler
 QQuickSinglePointHandler (QQuickItem *parent=nullptr)
 \qmltype SinglePointHandler \qmlabstract \preliminary \instantiates QQuickSinglePointHandler \inherits PointerDeviceHandler \inqmlmodule QtQuick
 
QQuickHandlerPoint point () const
 
- Public Member Functions inherited from QQuickPointerDeviceHandler
 QQuickPointerDeviceHandler (QQuickItem *parent=nullptr)
 \qmltype PointerDeviceHandler \qmlabstract
 
QInputDevice::DeviceTypes acceptedDevices () const
 
QPointingDevice::PointerTypes acceptedPointerTypes () const
 
Qt::MouseButtons acceptedButtons () const
 \qmlproperty flags QtQuick::PointerDeviceHandler::acceptedButtons
 
Qt::KeyboardModifiers acceptedModifiers () const
 
- Public Member Functions inherited from QQuickPointerHandler
 QQuickPointerHandler (QQuickItem *parent=nullptr)
 \qmltype PointerHandler \qmlabstract
 
 ~QQuickPointerHandler ()
 
bool enabled () const
 \qmlproperty bool QtQuick::PointerHandler::enabled
 
void setEnabled (bool enabled)
 
bool active () const
 \readonly \qmlproperty bool QtQuick::PointerHandler::active
 
QQuickItemtarget () const
 \qmlproperty Item QtQuick::PointerHandler::target
 
void setTarget (QQuickItem *target)
 
QQuickItemparentItem () const
 \qmlproperty Item QtQuick::PointerHandler::parent
 
void setParentItem (QQuickItem *p)
 
void handlePointerEvent (QPointerEvent *event)
 
GrabPermissions grabPermissions () const
 \qmlproperty flags QtQuick::PointerHandler::grabPermissions
 
void setGrabPermissions (GrabPermissions grabPermissions)
 
qreal margin () const
 \qmlproperty real PointerHandler::margin
 
void setMargin (qreal pointDistanceThreshold)
 
int dragThreshold () const
 \qmlproperty int PointerHandler::dragThreshold
 
void setDragThreshold (int t)
 
void resetDragThreshold ()
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 
- Public Member Functions inherited from QQmlParserStatus
 QQmlParserStatus ()
 
virtual ~QQmlParserStatus ()
 

Public Attributes

State m_state = Listening
 
int m_row = -1
 
qreal m_rowStartY = -1
 
qreal m_rowStartHeight = -1
 
int m_column = -1
 
qreal m_columnStartX = -1
 
qreal m_columnStartWidth = -1
 

Protected Member Functions

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, as a preliminary check.
 
void handleEventPoint (QPointerEvent *event, QEventPoint &point) override
 
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.
 
- Protected Member Functions inherited from QQuickSinglePointHandler
 QQuickSinglePointHandler (QQuickSinglePointHandlerPrivate &dd, QQuickItem *parent)
 
bool wantsPointerEvent (QPointerEvent *event) override
 It is the responsibility of this function to decide whether the event could be relevant at all to this handler, as a preliminary check.
 
void handlePointerEventImpl (QPointerEvent *event) override
 This function can be overridden to implement whatever behavior a specific subclass is intended to have: \list.
 
QEventPointcurrentPoint (QPointerEvent *ev)
 
void setIgnoreAdditionalPoints (bool v=true)
 
void moveTarget (QPointF pos, QEventPoint &point)
 
void setPointId (int id)
 
- Protected Member Functions inherited from QQuickPointerDeviceHandler
 QQuickPointerDeviceHandler (QQuickPointerDeviceHandlerPrivate &dd, QQuickItem *parent=nullptr)
 
- Protected Member Functions inherited from QQuickPointerHandler
 QQuickPointerHandler (QQuickPointerHandlerPrivate &dd, QQuickItem *parent)
 
void classBegin () override
 Overridden only because QQmlParserStatus requires it.
 
void componentComplete () override
 Overridden from QQmlParserStatus to ensure that parentItem() sets its cursor if this handler's \l cursorShape property has been set.
 
bool event (QEvent *) override
 
QPointerEventcurrentEvent ()
 
void setActive (bool active)
 
virtual void onTargetChanged (QQuickItem *oldTarget)
 
virtual void onActiveChanged ()
 
virtual bool canGrab (QPointerEvent *event, const QEventPoint &point)
 Check whether it's OK to take an exclusive grab of the point.
 
virtual bool approveGrabTransition (QPointerEvent *event, const QEventPoint &point, QObject *proposedGrabber)
 Check this handler's rules to see if \l proposedGrabber will be allowed to take the exclusive grab.
 
void setPassiveGrab (QPointerEvent *event, const QEventPoint &point, bool grab=true)
 Acquire or give up a passive grab of the given point, according to the grab state.
 
bool setExclusiveGrab (QPointerEvent *ev, const QEventPoint &point, bool grab=true)
 Acquire or give up the exclusive grab of the given point, according to the grab state, and subject to the rules: canGrab(), and the rule not to relinquish another handler's grab.
 
void cancelAllGrabs (QPointerEvent *event, QEventPoint &point)
 Cancel any existing grab of the given point.
 
QPointF eventPos (const QEventPoint &point) const
 
bool parentContains (const QEventPoint &point) const
 Returns true if margin() > 0 and point is within the margin beyond QQuickItem::boundingRect(), or else returns QQuickItem::contains() QEventPoint::position() effectively (because parentContains(scenePosition) calls QQuickItem::mapFromScene()).
 
bool parentContains (const QPointF &scenePosition) const
 Returns true if scenePosition is within the margin() beyond QQuickItem::boundingRect() (if margin > 0), or parentItem() contains scenePosition according to QQuickItem::contains().
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Friends

class QQuickTableViewPrivate
 

Additional Inherited Members

- Public Slots inherited from QQuickPointerDeviceHandler
void setAcceptedDevices (QInputDevice::DeviceTypes acceptedDevices)
 \qmlproperty flags PointerDeviceHandler::acceptedDevices
 
void setAcceptedPointerTypes (QPointingDevice::PointerTypes acceptedPointerTypes)
 \qmlproperty flags PointerDeviceHandler::acceptedPointerTypes
 
void setAcceptedButtons (Qt::MouseButtons buttons)
 
void setAcceptedModifiers (Qt::KeyboardModifiers acceptedModifiers)
 \qmlproperty flags PointerDeviceHandler::acceptedModifiers
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Signals inherited from QQuickSinglePointHandler
void pointChanged ()
 
- Signals inherited from QQuickPointerDeviceHandler
void acceptedDevicesChanged ()
 
void acceptedPointerTypesChanged ()
 
void acceptedButtonsChanged ()
 
void acceptedModifiersChanged ()
 
- Signals inherited from QQuickPointerHandler
void enabledChanged ()
 
void activeChanged ()
 
void targetChanged ()
 
void marginChanged ()
 
 Q_REVISION (2, 15) void dragThresholdChanged()
 
void grabChanged (QPointingDevice::GrabTransition transition, QEventPoint point)
 
void grabPermissionChanged ()
 
void canceled (QEventPoint point)
 
 Q_REVISION (6, 3) void parentChanged()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QQuickSinglePointHandler
QQuickHandlerPoint point
 
- Properties inherited from QQuickPointerDeviceHandler
QInputDevice::DeviceTypes acceptedDevices
 
QPointingDevice::PointerTypes acceptedPointerTypes
 
Qt::MouseButtons acceptedButtons
 
Qt::KeyboardModifiers acceptedModifiers
 
- Properties inherited from QQuickPointerHandler
bool enabled
 
bool active
 
QQuickItemtarget
 
QQuickItemparent
 
GrabPermissions grabPermissions
 
qreal margin
 
int dragThreshold
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

TableView uses QQuickTableViewResizeHandler to enable the user to resize rows and columns. By using a custom pointer handler, we can get away with using a single pointer handler for the whole content item, rather than e.g having to split it up into multiple items with drag handlers placed between the cells.

Definition at line 77 of file qquicktableview_p_p.h.

Member Enumeration Documentation

◆ State

Enumerator
Listening 
Tracking 
DraggingStarted 
Dragging 
DraggingFinished 

Definition at line 80 of file qquicktableview_p_p.h.

Constructor & Destructor Documentation

◆ QQuickTableViewResizeHandler()

QQuickTableViewResizeHandler::QQuickTableViewResizeHandler ( QQuickTableView * view)

Definition at line 6723 of file qquicktableview.cpp.

References QQuickPointerHandler::CanTakeOverFromAnything, QQuickPointerHandler::setGrabPermissions(), QQuickPointerHandler::setMargin(), and QObject::setObjectName().

+ Here is the call graph for this function:

Member Function Documentation

◆ handleEventPoint()

void QQuickTableViewResizeHandler::handleEventPoint ( QPointerEvent * event,
QEventPoint & point )
overrideprotectedvirtual

Reimplemented from QQuickSinglePointHandler.

Definition at line 6772 of file qquicktableview.cpp.

References QQuickSinglePointHandler::point, updateDrag(), and updateState().

+ Here is the call graph for this function:

◆ onGrabChanged()

void QQuickTableViewResizeHandler::onGrabChanged ( QQuickPointerHandler * grabber,
QPointingDevice::GrabTransition transition,
QPointerEvent * event,
QEventPoint & point )
overrideprotectedvirtual

Notification that the grab has changed in some way which is relevant to this handler.

Since
5.15 \qmlproperty Qt::CursorShape PointerHandler::cursorShape This property holds the cursor shape that will appear whenever the mouse is hovering over the \l parent item while \l active is true.

The available cursor shapes are: \list

The default value is not set, which allows the \l {QQuickItem::cursor()}{cursor} of \l parent item to appear. This property can be reset to the same initial condition by setting it to undefined.

Note
When this property has not been set, or has been set to undefined, if you read the value it will return Qt.ArrowCursor.
See also
Qt::CursorShape, QQuickItem::cursor(), HoverHandler::cursorShape

The grabber (subject) will be the Input Handler whose state is changing, or null if the state change regards an Item. The transition (verb) tells what happened. The point (object) is the \l eventPoint that was grabbed or ungrabbed. QQuickDeliveryAgent calls this function. The Input Handler must react in whatever way is appropriate, and must emit the relevant signals (for the benefit of QML code). A subclass is allowed to override this virtual function, but must always call its parent class's implementation in addition to (usually after) whatever custom behavior it implements.

Reimplemented from QQuickSinglePointHandler.

Definition at line 6733 of file qquicktableview.cpp.

References QPointingDevice::CancelGrabExclusive, QPointingDevice::CancelGrabPassive, Dragging, DraggingFinished, DraggingStarted, QPointingDevice::GrabExclusive, QPointingDevice::GrabPassive, m_state, QQuickSinglePointHandler::onGrabChanged(), QPointingDevice::OverrideGrabPassive, QQuickSinglePointHandler::point, QPointingDevice::UngrabExclusive, QPointingDevice::UngrabPassive, and updateDrag().

+ Here is the call graph for this function:

◆ state()

State QQuickTableViewResizeHandler::state ( )
inline

Definition at line 89 of file qquicktableview_p_p.h.

References m_state.

Referenced by QQuickTableViewPrivate::handleTap(), and QQuickTableViewPrivate::startSelection().

+ Here is the caller graph for this function:

◆ updateDrag()

void QQuickTableViewResizeHandler::updateDrag ( QPointerEvent * event,
QEventPoint & point )

Definition at line 6822 of file qquicktableview.cpp.

References Dragging, DraggingFinished, DraggingStarted, QQuickTableViewPrivate::get(), Listening, m_column, m_columnStartWidth, m_columnStartX, m_row, m_rowStartHeight, m_rowStartY, m_state, QQuickItem::parent, QQuickPointerHandler::parentItem(), QQuickSinglePointHandler::point, QQuickHandlerPoint::position, Q_FALLTHROUGH, qMax(), QQuickPointerHandler::setExclusiveGrab(), QQuickPointerHandler::setPassiveGrab(), Tracking, QPointF::x(), and QPointF::y().

Referenced by handleEventPoint(), and onGrabChanged().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateState()

void QQuickTableViewResizeHandler::updateState ( QEventPoint & point)

Definition at line 6780 of file qquicktableview.cpp.

References Dragging, DraggingFinished, DraggingStarted, QQuickTableViewPrivate::get(), Listening, m_column, m_row, m_state, QQuickItem::parent, QQuickPointerHandler::parentItem(), QQuickSinglePointHandler::point, QQuickHandlerPoint::position, QEventPoint::Pressed, QQuickHandlerPoint::pressPosition, qApp, qSqrt(), QEventPoint::Released, Tracking, QEventPoint::Updated, QPointF::x(), and QPointF::y().

Referenced by handleEventPoint().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ wantsEventPoint()

bool QQuickTableViewResizeHandler::wantsEventPoint ( const QPointerEvent * event,
const QEventPoint & point )
overrideprotectedvirtual

Returns true if the given point (as part of event) could be relevant at all to this handler, as a preliminary check.

If you override this function, you should call the immediate parent class implementation (and return false if it returns false); that in turn calls its parent class implementation, and so on.

In particular, the bounds checking is done here: the base class QQuickPointerHandler::wantsEventPoint() calls parentContains(point) (which allows the flexibility promised by margin(), QQuickItem::contains() and QQuickItem::containmentMask()). Pointer Handlers can receive QEventPoints that are outside the parent item's bounds: this allows some flexibility for dealing with multi-point gestures in which one or more fingers have strayed outside the bounds, and yet the gesture is still unambiguously intended for the target() item.

You should not generally react to the event or point here, but it's ok to set state to remember what needs to be done in your overridden handlePointerEventImpl() or QQuickSinglePointHandler::handleEventPoint().

Reimplemented from QQuickPointerHandler.

Definition at line 6757 of file qquicktableview.cpp.

References QQuickFlickable::isMoving(), QQuickItem::parent, QQuickPointerHandler::parentItem(), QQuickSinglePointHandler::point, and QQuickPointerHandler::wantsEventPoint().

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QQuickTableViewPrivate

friend class QQuickTableViewPrivate
friend

Definition at line 103 of file qquicktableview_p_p.h.

Member Data Documentation

◆ m_column

int QQuickTableViewResizeHandler::m_column = -1

Definition at line 99 of file qquicktableview_p_p.h.

Referenced by updateDrag(), and updateState().

◆ m_columnStartWidth

qreal QQuickTableViewResizeHandler::m_columnStartWidth = -1

Definition at line 101 of file qquicktableview_p_p.h.

Referenced by updateDrag().

◆ m_columnStartX

qreal QQuickTableViewResizeHandler::m_columnStartX = -1

Definition at line 100 of file qquicktableview_p_p.h.

Referenced by updateDrag().

◆ m_row

int QQuickTableViewResizeHandler::m_row = -1

Definition at line 95 of file qquicktableview_p_p.h.

Referenced by updateDrag(), and updateState().

◆ m_rowStartHeight

qreal QQuickTableViewResizeHandler::m_rowStartHeight = -1

Definition at line 97 of file qquicktableview_p_p.h.

Referenced by updateDrag().

◆ m_rowStartY

qreal QQuickTableViewResizeHandler::m_rowStartY = -1

Definition at line 96 of file qquicktableview_p_p.h.

Referenced by updateDrag().

◆ m_state

State QQuickTableViewResizeHandler::m_state = Listening

Definition at line 93 of file qquicktableview_p_p.h.

Referenced by onGrabChanged(), state(), updateDrag(), and updateState().


The documentation for this class was generated from the following files: