aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickdrag_p_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickdrag_p_p.h')
-rw-r--r--src/quick/items/qquickdrag_p_p.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/quick/items/qquickdrag_p_p.h b/src/quick/items/qquickdrag_p_p.h
new file mode 100644
index 0000000000..657dfefb1d
--- /dev/null
+++ b/src/quick/items/qquickdrag_p_p.h
@@ -0,0 +1,99 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QQUICKDRAG_P_P_H
+#define QQUICKDRAG_P_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qquickdrag_p.h"
+
+#include <QtCore/qobject.h>
+#include <QtCore/private/qobject_p.h>
+#include <QtCore/qpointer.h>
+#include <QtCore/qurl.h>
+#include <QtCore/qvariant.h>
+
+#include <QtQuick/qquickitem.h>
+#include <QtQuick/private/qquickitemchangelistener_p.h>
+#include <QtQuick/private/qquickpixmap_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class Q_AUTOTEST_EXPORT QQuickDragAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener
+{
+ Q_DECLARE_PUBLIC(QQuickDragAttached)
+ QML_ANONYMOUS
+ QML_ADDED_IN_VERSION(2, 0)
+
+public:
+ static QQuickDragAttachedPrivate *get(QQuickDragAttached *attached) {
+ return static_cast<QQuickDragAttachedPrivate *>(QObjectPrivate::get(attached)); }
+
+ QQuickDragAttachedPrivate()
+ : attachedItem(nullptr)
+ , mimeData(nullptr)
+ , proposedAction(Qt::MoveAction)
+ , supportedActions(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction)
+ , active(false)
+ , listening(false)
+ , inEvent(false)
+ , dragRestarted(false)
+ , itemMoved(false)
+ , eventQueued(false)
+ , overrideActions(false)
+ , dragType(QQuickDrag::Internal)
+ {
+ }
+
+ void itemGeometryChanged(QQuickItem *, QQuickGeometryChange, const QRectF &) override;
+ void itemParentChanged(QQuickItem *, QQuickItem *parent) override;
+ void updatePosition();
+ void restartDrag();
+ void deliverEnterEvent();
+ void deliverMoveEvent();
+ void deliverLeaveEvent();
+ void deliverEvent(QQuickWindow *window, QEvent *event);
+ void start(Qt::DropActions supportedActions);
+ Qt::DropAction startDrag(Qt::DropActions supportedActions);
+ void setTarget(QQuickItem *item);
+ QMimeData *createMimeData() const;
+ void loadPixmap();
+
+ QQuickDragGrabber dragGrabber;
+
+ QPointer<QObject> source;
+ QPointer<QObject> target;
+ QPointer<QQuickWindow> window;
+ QQuickItem *attachedItem;
+ QQuickDragMimeData *mimeData;
+ Qt::DropAction proposedAction;
+ Qt::DropActions supportedActions;
+ bool active : 1;
+ bool listening : 1;
+ bool inEvent : 1;
+ bool dragRestarted : 1;
+ bool itemMoved : 1;
+ bool eventQueued : 1;
+ bool overrideActions : 1;
+ QPointF hotSpot;
+ QUrl imageSource;
+ QSize imageSourceSize;
+ QQuickPixmap pixmapLoader;
+ QStringList keys;
+ QVariantMap externalMimeData;
+ QQuickDrag::DragType dragType;
+};
+
+QT_END_NAMESPACE
+
+#endif