Index: trunk/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk
===================================================================
--- trunk/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk	(revision 97845)
+++ trunk/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk	(revision 97845)
@@ -0,0 +1,52 @@
+# $Id$
+## @file
+# Sub-Makefile for tstDragAndDropQt.
+#
+
+#
+# Copyright (C) 2022 Oracle and/or its affiliates.
+#
+# This file is part of VirtualBox base platform packages, as
+# available from https://www.virtualbox.org.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, in version 3 of the
+# License.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses>.
+#
+# SPDX-License-Identifier: GPL-3.0-only
+#
+
+SUB_DEPTH = ../../../../../..
+include $(KBUILD_PATH)/subheader.kmk
+
+#
+# Targets and units.
+#
+USES += qt5
+PROGRAMS += tstDragAndDropQt
+
+#
+# tstDragAndDropQt
+#
+tstDragAndDropQt_TEMPLATE = VBOXQTGUIEXE
+tstDragAndDropQt_NAME = tstDragAndDropQt
+tstDragAndDropQt_CXXFLAGS = \
+	$(VBOX_GCC_Wno-implicit-fallthrough) \
+	$(VBOX_GCC_Wno-deprecated-declarations)
+
+tstDragAndDropQt_SOURCES = \
+	tstDragAndDropQt.cpp
+
+# The Qt modules we're using.
+tstDragAndDropQt_QT_MODULES = Core Gui Widgets PrintSupport
+
+include $(FILE_KBUILD_SUB_FOOTER)
Index: trunk/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp
===================================================================
--- trunk/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp	(revision 97845)
+++ trunk/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp	(revision 97845)
@@ -0,0 +1,71 @@
+/* $Id$ */
+/** @file
+ * Drag and drop Qt code test cases.
+ */
+
+/*
+ * Copyright (C) 2022 Oracle and/or its affiliates.
+ *
+ * This file is part of VirtualBox base platform packages, as
+ * available from https://www.virtualbox.org.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, in version 3 of the
+ * License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses>.
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+#include <QApplication>
+#include <QMainWindow>
+#include <QTextEdit>
+#include <QHBoxLayout>
+#include <QtWidgets>
+
+class DnDWin : public QWidget
+{
+    public:
+
+        explicit DnDWin(QWidget *parent = nullptr) : QWidget(parent)
+        {
+             setMinimumSize(400, 400);
+             setWindowTitle("Drag me!");
+             setAcceptDrops(true);
+        }
+
+        void mouseMoveEvent(QMouseEvent *event)
+        {
+            if(!(event->buttons() & Qt::LeftButton))
+                return DnDWin::mouseMoveEvent(event);
+
+            event->accept();
+
+            QDrag *drag = new QDrag(this);
+
+            QMimeData *mime = new QMimeData();
+            mime->setData("text/plain", QString("/tmp/%1").arg("foo.bar").toLatin1());
+            mime->setData("text/uri-list", QString("file:///tmp/%1").arg("foo.bar").toLatin1());
+
+            drag->setMimeData(mime);
+            drag->exec();
+        }
+};
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+
+    DnDWin win;
+    win.show();
+
+    app.exec();
+}
