From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- .../testcase/tstDragAndDropQt/Makefile.kmk | 53 +++++++++++++++++ .../testcase/tstDragAndDropQt/tstDragAndDropQt.cpp | 67 ++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk create mode 100644 src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp (limited to 'src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt') diff --git a/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk b/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk new file mode 100644 index 00000000..4e3d8795 --- /dev/null +++ b/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/Makefile.kmk @@ -0,0 +1,53 @@ +# $Id: Makefile.kmk $ +## @file +# Sub-Makefile for tstDragAndDropQt. +# + +# +# Copyright (C) 2022-2023 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 . +# +# SPDX-License-Identifier: GPL-3.0-only +# + +SUB_DEPTH = ../../../../../.. +include $(KBUILD_PATH)/subheader.kmk + +# +# Targets and units. +# +USES += qt5 +PROGRAMS.linux += tstDragAndDropQt # Just needed for Linux right now. + +# +# tstDragAndDropQt +# +tstDragAndDropQt_TEMPLATE = VBoxQtGuiExe +tstDragAndDropQt_DEFS = UNIT_TEST TESTCASE +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) diff --git a/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp b/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp new file mode 100644 index 00000000..0d7a6144 --- /dev/null +++ b/src/VBox/GuestHost/DragAndDrop/testcase/tstDragAndDropQt/tstDragAndDropQt.cpp @@ -0,0 +1,67 @@ +/* $Id: tstDragAndDropQt.cpp $ */ +/** @file + * Drag and drop Qt code test cases. + */ + +/* + * Copyright (C) 2022-2023 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 . + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#include + +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(); +} -- cgit v1.2.3