From 03887ab8a3fb81fb7059ad1d9e3d9cac224e53e7 Mon Sep 17 00:00:00 2001 From: Paul Wicking Date: Sat, 29 Aug 2020 07:11:10 +0200 Subject: [PATCH] Doc: Compile droparea snippet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit droparea.h has been removed. Remove all code that depends on that header except the one snippet that is still used. Add minimal code to allow the snippet to be compiled. Done-with: Nico Vertriest Task-number: QTBUG-81486 Change-Id: I58c80d3527c82389ccff97567f4c75c33aec0f5e Reviewed-by: Topi Reiniƶ --- .../doc/snippets/{ => droparea}/droparea.cpp | 93 +++---------------- src/gui/doc/snippets/droparea/droparea.pro | 6 ++ src/gui/doc/snippets/snippets.pro | 1 + src/gui/kernel/qclipboard.cpp | 2 +- 4 files changed, 21 insertions(+), 81 deletions(-) rename src/gui/doc/snippets/{ => droparea}/droparea.cpp (61%) create mode 100644 src/gui/doc/snippets/droparea/droparea.pro diff --git a/src/gui/doc/snippets/droparea.cpp b/src/gui/doc/snippets/droparea/droparea.cpp similarity index 61% rename from src/gui/doc/snippets/droparea.cpp rename to src/gui/doc/snippets/droparea/droparea.cpp index c0fdbf9617..b66cf0c031 100644 --- a/src/gui/doc/snippets/droparea.cpp +++ b/src/gui/doc/snippets/droparea/droparea.cpp @@ -47,55 +47,18 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include +#include +#include +#include -#include - -#include "droparea.h" - -DropArea::DropArea(QWidget *parent) - : QLabel(parent) -{ - setMinimumSize(200, 200); - setFrameStyle(QFrame::Sunken | QFrame::StyledPanel); - setAlignment(Qt::AlignCenter); - setAcceptDrops(true); - setAutoFillBackground(true); - clear(); -} - -void DropArea::dragEnterEvent(QDragEnterEvent *event) -{ - setText(tr("")); - setBackgroundRole(QPalette::Highlight); - - event->acceptProposedAction(); - emit changed(event->mimeData()); -} - -void DropArea::dragMoveEvent(QDragMoveEvent *event) -{ - event->acceptProposedAction(); -} - -void DropArea::dropEvent(QDropEvent *event) -{ - const QMimeData *mimeData = event->mimeData(); - - if (mimeData->hasImage()) { - setPixmap(qvariant_cast(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")); - } - - setBackgroundRole(QPalette::Dark); - event->acceptProposedAction(); -} +namespace droparea { +struct DropArea : public QWidget { + void paste(); + void setPixmap(QPixmap); + void setText(QString); + void setTextFormat(Qt::TextFormat); +}; //![0] void DropArea::paste() @@ -114,37 +77,7 @@ void DropArea::paste() } else { setText(tr("Cannot display data")); } +} //![0] - emit changed(mimeData); - setBackgroundRole(QPalette::Dark); - //event->acceptProposedAction(); -} - -void DropArea::dragLeaveEvent(QDragLeaveEvent *event) -{ - clear(); - event->accept(); -} - -void DropArea::clear() -{ - setText(tr("")); - setBackgroundRole(QPalette::Dark); - - emit changed(); -} - -QPixmap DropArea::extractPixmap(const QByteArray &data, const QString &format) -{ - const QList imageFormats = QImageReader::supportedImageFormats(); - QPixmap pixmap; - - for (const QByteArray &imageFormat : imageFormats) { - if (format.mid(6) == QString(imageFormat)) { - pixmap.loadFromData(data, imageFormat); - break; - } - } - return pixmap; -} +} // droparea diff --git a/src/gui/doc/snippets/droparea/droparea.pro b/src/gui/doc/snippets/droparea/droparea.pro new file mode 100644 index 0000000000..33318618e4 --- /dev/null +++ b/src/gui/doc/snippets/droparea/droparea.pro @@ -0,0 +1,6 @@ +TEMPLATE = lib +TARGET = droparea_snippets +QT += core gui widgets + +SOURCES = \ + droparea.cpp diff --git a/src/gui/doc/snippets/snippets.pro b/src/gui/doc/snippets/snippets.pro index 39ce594c57..6ede3d94ed 100644 --- a/src/gui/doc/snippets/snippets.pro +++ b/src/gui/doc/snippets/snippets.pro @@ -7,6 +7,7 @@ contains(QT_BUILD_PARTS, tests) { clipboard \ code \ draganddrop \ + droparea \ qfontdatabase \ textdocument-blocks \ textdocument-charformats \ diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp index d51c356970..5e93fe8061 100644 --- a/src/gui/kernel/qclipboard.cpp +++ b/src/gui/kernel/qclipboard.cpp @@ -83,7 +83,7 @@ QT_BEGIN_NAMESPACE A typical example of the use of these functions follows: - \snippet droparea.cpp 0 + \snippet droparea/droparea.cpp 0 \section1 Notes for X11 Users