QtBase  v6.3.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QBasicDrag Class Referenceabstract

QBasicDrag is a base class for implementing platform drag and drop. More...

#include <qsimpledrag_p.h>

Inheritance diagram for QBasicDrag:
Inheritance graph
[legend]
Collaboration diagram for QBasicDrag:
Collaboration graph
[legend]

Public Member Functions

 ~QBasicDrag ()
 
virtual Qt::DropAction drag (QDrag *drag) override
 
void cancelDrag () override
 Cancels the currently active drag (only for drags of the current application initiated by QPlatformDrag::drag()). More...
 
virtual bool eventFilter (QObject *o, QEvent *e) override
 
- Public Member Functions inherited from QPlatformDrag
 QPlatformDrag ()
 
virtual ~QPlatformDrag ()
 
QDragcurrentDrag () const
 
void updateAction (Qt::DropAction action)
 Called to notify QDrag about changes of the current action. More...
 
virtual Qt::DropAction defaultAction (Qt::DropActions possibleActions, Qt::KeyboardModifiers modifiers) const
 
virtual bool ownsDragObject () const
 Returns bool indicating whether QPlatformDrag takes ownership and therefore responsibility of deleting the QDrag object passed in from QPlatformDrag::drag. This can be useful on platforms where QDrag object has to be kept around. More...
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 
virtual ~QObject ()
 
virtual bool event (QEvent *event)
 
QString objectName () const
 
void setObjectName (const QString &name)
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 
bool isWindowType () const
 
bool signalsBlocked () const noexcept
 
bool blockSignals (bool b) noexcept
 
QThreadthread () const
 
void moveToThread (QThread *thread)
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 
template<typename T >
T findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
template<typename T >
QList< TfindChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
template<typename T >
QList< TfindChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
const QObjectListchildren () const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
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
 
void dumpObjectInfo () const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 
bool inherits (const char *classname) const
 

Protected Member Functions

 QBasicDrag ()
 
virtual void startDrag ()
 
virtual void cancel ()
 
virtual void move (const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardModifiers mods)=0
 
virtual void drop (const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardModifiers mods)=0
 
virtual void endDrag ()
 
void moveShapedPixmapWindow (const QPoint &deviceIndependentPosition)
 
QShapedPixmapWindowshapedPixmapWindow () const
 
void recreateShapedPixmapWindow (QScreen *screen, const QPoint &pos)
 
void updateCursor (Qt::DropAction action)
 
bool canDrop () const
 
void setCanDrop (bool c)
 
bool useCompositing () const
 
void setUseCompositing (bool on)
 
void setScreen (QScreen *screen)
 
Qt::DropAction executedDropAction () const
 
void setExecutedDropAction (Qt::DropAction da)
 
QDragdrag () const
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Protected Attributes

QWindowm_sourceWindow = nullptr
 
QPointer< QWindowm_windowUnderCursor = nullptr
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 
- Static Public Member Functions inherited from QPlatformDrag
static QPixmap defaultPixmap ()
 
- 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)
 
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::FunctionPointer< Func2 >::Object *receiver, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
 
static QMetaObject::Connection ::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 slot)
 
static QMetaObject::Connection ::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *context, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static std::enable_if< QtPrivate::FunctionPointer< Func2 >::ArgumentCount==-1 &&!std::is_convertible_v< Func2, const char * >, QMetaObject::Connection >::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 slot)
 
template<typename Func1 , typename Func2 >
static std::enable_if< QtPrivate::FunctionPointer< Func2 >::ArgumentCount==-1 &&!std::is_convertible_v< Func2, const char * >, QMetaObject::Connection >::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *context, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::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)
 
- Properties inherited from QObject
QString objectName
 the name of this object More...
 

Detailed Description

QBasicDrag is a base class for implementing platform drag and drop.

Since
5.0

Definition at line 71 of file qsimpledrag_p.h.

Constructor & Destructor Documentation

◆ ~QBasicDrag()

QBasicDrag::~QBasicDrag ( )

Definition at line 99 of file qsimpledrag.cpp.

◆ QBasicDrag()

QBasicDrag::QBasicDrag ( )
protected

Definition at line 95 of file qsimpledrag.cpp.

Member Function Documentation

◆ cancel()

void QBasicDrag::cancel ( )
protectedvirtual

Reimplemented in QXcbDrag, and QSimpleDrag.

Definition at line 258 of file qsimpledrag.cpp.

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

◆ cancelDrag()

void QBasicDrag::cancelDrag ( )
overridevirtual

Cancels the currently active drag (only for drags of the current application initiated by QPlatformDrag::drag()).

The default implementation does nothing.

Since
5.7

Reimplemented from QPlatformDrag.

Definition at line 217 of file qsimpledrag.cpp.

Here is the call graph for this function:

◆ canDrop()

bool QBasicDrag::canDrop ( ) const
inlineprotected

Definition at line 96 of file qsimpledrag_p.h.

Here is the caller graph for this function:

◆ drag() [1/2]

QDrag* QBasicDrag::drag ( ) const
inlineprotected

Definition at line 107 of file qsimpledrag_p.h.

Here is the caller graph for this function:

◆ drag() [2/2]

Qt::DropAction QBasicDrag::drag ( QDrag drag)
overridevirtual

Implements QPlatformDrag.

Definition at line 200 of file qsimpledrag.cpp.

Here is the call graph for this function:

◆ drop()

void QBasicDrag::drop ( const QPoint globalPos,
Qt::MouseButtons  b,
Qt::KeyboardModifiers  mods 
)
protectedpure virtual

Implemented in QXcbDrag, and QSimpleDrag.

Definition at line 276 of file qsimpledrag.cpp.

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

◆ endDrag()

void QBasicDrag::endDrag ( )
protectedvirtual

Reimplemented in QXcbDrag.

Definition at line 240 of file qsimpledrag.cpp.

Here is the caller graph for this function:

◆ eventFilter()

bool QBasicDrag::eventFilter ( QObject watched,
QEvent event 
)
overridevirtual

Filters events if this object has been installed as an event filter for the watched object.

In your reimplementation of this function, if you want to filter the event out, i.e. stop it being handled further, return true; otherwise return false.

Example:

Notice in the example above that unhandled events are passed to the base class's eventFilter() function, since the base class might have reimplemented eventFilter() for its own internal purposes.

Some events, such as \l QEvent::ShortcutOverride must be explicitly accepted (by calling \l {QEvent::}{accept()} on them) in order to prevent propagation.

Warning
If you delete the receiver object in this function, be sure to return true. Otherwise, Qt will forward the event to the deleted object and the program might crash.
See also
installEventFilter()

Reimplemented from QObject.

Reimplemented in QXcbDrag.

Definition at line 120 of file qsimpledrag.cpp.

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

◆ executedDropAction()

Qt::DropAction QBasicDrag::executedDropAction ( ) const
inlineprotected

Definition at line 104 of file qsimpledrag_p.h.

◆ move()

virtual void QBasicDrag::move ( const QPoint globalPos,
Qt::MouseButtons  b,
Qt::KeyboardModifiers  mods 
)
protectedpure virtual

Implemented in QXcbDrag, and QSimpleDrag.

Here is the caller graph for this function:

◆ moveShapedPixmapWindow()

void QBasicDrag::moveShapedPixmapWindow ( const QPoint globalPos)
protected

Move the drag label to globalPos, which is interpreted in device independent coordinates. Typically called from reimplementations of move().

Definition at line 270 of file qsimpledrag.cpp.

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

◆ recreateShapedPixmapWindow()

void QBasicDrag::recreateShapedPixmapWindow ( QScreen screen,
const QPoint pos 
)
protected

Definition at line 244 of file qsimpledrag.cpp.

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

◆ setCanDrop()

void QBasicDrag::setCanDrop ( bool  c)
inlineprotected

Definition at line 97 of file qsimpledrag_p.h.

◆ setExecutedDropAction()

void QBasicDrag::setExecutedDropAction ( Qt::DropAction  da)
inlineprotected

Definition at line 105 of file qsimpledrag_p.h.

Here is the caller graph for this function:

◆ setScreen()

void QBasicDrag::setScreen ( QScreen screen)
inlineprotected

Definition at line 102 of file qsimpledrag_p.h.

Here is the caller graph for this function:

◆ setUseCompositing()

void QBasicDrag::setUseCompositing ( bool  on)
inlineprotected

Definition at line 100 of file qsimpledrag_p.h.

Here is the caller graph for this function:

◆ shapedPixmapWindow()

QShapedPixmapWindow* QBasicDrag::shapedPixmapWindow ( ) const
inlineprotected

Definition at line 92 of file qsimpledrag_p.h.

Here is the caller graph for this function:

◆ startDrag()

void QBasicDrag::startDrag ( )
protectedvirtual

Reimplemented in QXcbDrag, and QSimpleDrag.

Definition at line 225 of file qsimpledrag.cpp.

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

◆ updateCursor()

void QBasicDrag::updateCursor ( Qt::DropAction  action)
protected

Definition at line 289 of file qsimpledrag.cpp.

Here is the call graph for this function:

◆ useCompositing()

bool QBasicDrag::useCompositing ( ) const
inlineprotected

Definition at line 99 of file qsimpledrag_p.h.

Member Data Documentation

◆ m_sourceWindow

QWindow* QBasicDrag::m_sourceWindow = nullptr
protected

Definition at line 110 of file qsimpledrag_p.h.

◆ m_windowUnderCursor

QPointer<QWindow> QBasicDrag::m_windowUnderCursor = nullptr
protected

Definition at line 111 of file qsimpledrag_p.h.


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