summaryrefslogtreecommitdiffstats
path: root/src/gui/doc/snippets/droparea/droparea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/doc/snippets/droparea/droparea.cpp')
-rw-r--r--src/gui/doc/snippets/droparea/droparea.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/gui/doc/snippets/droparea/droparea.cpp b/src/gui/doc/snippets/droparea/droparea.cpp
new file mode 100644
index 0000000000..6b3583acff
--- /dev/null
+++ b/src/gui/doc/snippets/droparea/droparea.cpp
@@ -0,0 +1,36 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+#include <QApplication>
+#include <QClipboard>
+#include <QMimeData>
+#include <QWidget>
+
+namespace droparea {
+struct DropArea : public QWidget {
+ void paste();
+ void setPixmap(QPixmap);
+ void setText(QString);
+ void setTextFormat(Qt::TextFormat);
+};
+
+//![0]
+void DropArea::paste()
+{
+ const QClipboard *clipboard = QApplication::clipboard();
+ const QMimeData *mimeData = clipboard->mimeData();
+
+ if (mimeData->hasImage()) {
+ setPixmap(qvariant_cast<QPixmap>(mimeData->imageData()));
+ } else if (mimeData->hasHtml()) {
+ setText(mimeData->html());
+ setTextFormat(Qt::RichText);
+ } else if (mimeData->hasText()) {
+ setText(mimeData->text());
+ setTextFormat(Qt::PlainText);
+ } else {
+ setText(tr("Cannot display data"));
+ }
+}
+//![0]
+
+} // droparea