diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2015-10-07 12:03:05 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-10-09 15:59:21 +0000 |
commit | c8cd9f1b9a3d338a12bdccce957d74d515eb9c32 (patch) | |
tree | fca6b64875083ce22716c1ed3c6633459bfb93c2 /examples/widgets/draganddrop/puzzle/puzzlewidget.cpp | |
parent | c55a36cb9015cf1eebd49eaa5b1b4f4ec9b28451 (diff) |
Polish DnD Examples.
- Remove class DragLabel in draggabletext and add a static creation
function instead since it only has a constructor setting some
properties.
- Use QRegularExpression instead of QRegExp
- Use new connection syntax.
- Ensure compilation with
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
demonstrating use of QLatin1String vs QStringLiteral.
- Streamline code.
Change-Id: I2e2ddeb40837dba379990836c77fb72ad7263e2d
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Diffstat (limited to 'examples/widgets/draganddrop/puzzle/puzzlewidget.cpp')
-rw-r--r-- | examples/widgets/draganddrop/puzzle/puzzlewidget.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/examples/widgets/draganddrop/puzzle/puzzlewidget.cpp b/examples/widgets/draganddrop/puzzle/puzzlewidget.cpp index 69c0cbf0cc..29052da4fb 100644 --- a/examples/widgets/draganddrop/puzzle/puzzlewidget.cpp +++ b/examples/widgets/draganddrop/puzzle/puzzlewidget.cpp @@ -39,6 +39,7 @@ ****************************************************************************/ #include "puzzlewidget.h" +#include "pieceslist.h" #include <QDrag> #include <QDragEnterEvent> @@ -65,7 +66,7 @@ void PuzzleWidget::clear() void PuzzleWidget::dragEnterEvent(QDragEnterEvent *event) { - if (event->mimeData()->hasFormat("image/x-puzzle-piece")) + if (event->mimeData()->hasFormat(PiecesList::puzzleMimeType())) event->accept(); else event->ignore(); @@ -83,8 +84,8 @@ void PuzzleWidget::dragMoveEvent(QDragMoveEvent *event) { QRect updateRect = highlightedRect.united(targetSquare(event->pos())); - if (event->mimeData()->hasFormat("image/x-puzzle-piece") - && findPiece(targetSquare(event->pos())) == -1) { + if (event->mimeData()->hasFormat(PiecesList::puzzleMimeType()) + && pieceRects.indexOf(targetSquare(event->pos())) == -1) { highlightedRect = targetSquare(event->pos()); event->setDropAction(Qt::MoveAction); @@ -99,10 +100,10 @@ void PuzzleWidget::dragMoveEvent(QDragMoveEvent *event) void PuzzleWidget::dropEvent(QDropEvent *event) { - if (event->mimeData()->hasFormat("image/x-puzzle-piece") - && findPiece(targetSquare(event->pos())) == -1) { + if (event->mimeData()->hasFormat(PiecesList::puzzleMimeType()) + && pieceRects.indexOf(targetSquare(event->pos())) == -1) { - QByteArray pieceData = event->mimeData()->data("image/x-puzzle-piece"); + QByteArray pieceData = event->mimeData()->data(PiecesList::puzzleMimeType()); QDataStream dataStream(&pieceData, QIODevice::ReadOnly); QRect square = targetSquare(event->pos()); QPixmap pixmap; @@ -130,19 +131,10 @@ void PuzzleWidget::dropEvent(QDropEvent *event) } } -int PuzzleWidget::findPiece(const QRect &pieceRect) const -{ - for (int i = 0; i < pieceRects.size(); ++i) { - if (pieceRect == pieceRects[i]) - return i; - } - return -1; -} - void PuzzleWidget::mousePressEvent(QMouseEvent *event) { QRect square = targetSquare(event->pos()); - int found = findPiece(square); + int found = pieceRects.indexOf(square); if (found == -1) return; @@ -164,7 +156,7 @@ void PuzzleWidget::mousePressEvent(QMouseEvent *event) dataStream << pixmap << location; QMimeData *mimeData = new QMimeData; - mimeData->setData("image/x-puzzle-piece", itemData); + mimeData->setData(PiecesList::puzzleMimeType(), itemData); QDrag *drag = new QDrag(this); drag->setMimeData(mimeData); |