Commit d25bd0c3 authored by Paul Olav Tvete's avatar Paul Olav Tvete Committed by The Qt Project
Browse files

Fix docs for Drag and Drop examples


Change-Id: Ic1622b64603f7634b697bd7d8412dcc9f1a8c3fa
Reviewed-by: default avatarGunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: default avatarEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
parent 0e7ba5e7
No related merge requests found
Showing with 24 additions and 22 deletions
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
examples/*/*/* examples/*/*/*
!examples/*/*/*[.]* !examples/*/*/*[.]*
!examples/*/*/README !examples/*/*/README
!examples/*/doc/*
!examples/*/doc/*/*
examples/*/*/*[.]app examples/*/*/*[.]app
!examples/declarative/* !examples/declarative/*
examples/tutorials/*/*/* examples/tutorials/*/*/*
......
examples/widgets/doc/images/draganddroppuzzle-example.png

187 KiB

...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
Each fridge magnet is represented by an instance of the \c Each fridge magnet is represented by an instance of the \c
DragLabel class: DragLabel class:
\snippet examples/draganddrop/fridgemagnets/draglabel.h 0 \snippet draganddrop/fridgemagnets/draglabel.h 0
Each instance of this QLabel subclass will be used to display an Each instance of this QLabel subclass will be used to display an
pixmap generated from a text string. Since we cannot store both pixmap generated from a text string. Since we cannot store both
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
In the \c DragLabel constructor, we first create a QImage object In the \c DragLabel constructor, we first create a QImage object
on which we will draw the fridge magnet's text and frame: on which we will draw the fridge magnet's text and frame:
\snippet examples/draganddrop/fridgemagnets/draglabel.cpp 0 \snippet draganddrop/fridgemagnets/draglabel.cpp 0
Its size depends on the current font size, and its format is Its size depends on the current font size, and its format is
QImage::Format_ARGB32_Premultiplied; i.e., the image is stored QImage::Format_ARGB32_Premultiplied; i.e., the image is stored
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
simple lines to complex shapes like pies and chords. It can also simple lines to complex shapes like pies and chords. It can also
draw aligned text and pixmaps. draw aligned text and pixmaps.
\snippet examples/draganddrop/fridgemagnets/draglabel.cpp 1 \snippet draganddrop/fridgemagnets/draglabel.cpp 1
A painter can be activated by passing a paint device to the A painter can be activated by passing a paint device to the
constructor, or by using the \l{QPainter::}{begin()} method as we constructor, or by using the \l{QPainter::}{begin()} method as we
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
flags argument is a bitwise-OR of the Qt::ImageConversionFlags; flags argument is a bitwise-OR of the Qt::ImageConversionFlags;
passing 0 for flags sets all the default options). passing 0 for flags sets all the default options).
\snippet examples/draganddrop/fridgemagnets/draglabel.cpp 2 \snippet draganddrop/fridgemagnets/draglabel.cpp 2
Finally, we set the label's \l{QLabel::pixmap}{pixmap property} Finally, we set the label's \l{QLabel::pixmap}{pixmap property}
and store the label's text for later use. and store the label's text for later use.
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
The \c DragWidget class inherits QWidget, providing support for The \c DragWidget class inherits QWidget, providing support for
drag and drop operations: drag and drop operations:
\snippet examples/draganddrop/fridgemagnets/dragwidget.h 0 \snippet draganddrop/fridgemagnets/dragwidget.h 0
To make the widget responsive to drag and drop operations, we simply To make the widget responsive to drag and drop operations, we simply
reimplement the \l{QWidget::}{dragEnterEvent()}, reimplement the \l{QWidget::}{dragEnterEvent()},
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
In the constructor, we first open the file containing the words on In the constructor, we first open the file containing the words on
our fridge magnets: our fridge magnets:
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 0 \snippet draganddrop/fridgemagnets/dragwidget.cpp 0
QFile is an I/O device for reading and writing text and binary QFile is an I/O device for reading and writing text and binary
files and resources, and may be used by itself or in combination files and resources, and may be used by itself or in combination
...@@ -143,7 +143,7 @@ ...@@ -143,7 +143,7 @@
to be read from the stream), we read one line at a time using to be read from the stream), we read one line at a time using
QTextStream's \l {QTextStream::}{readLine()} method. QTextStream's \l {QTextStream::}{readLine()} method.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 1 \snippet draganddrop/fridgemagnets/dragwidget.cpp 1
For each line, we create a \c DragLabel object using the read line For each line, we create a \c DragLabel object using the read line
as text, we calculate its position and ensure that it is visible by as text, we calculate its position and ensure that it is visible by
...@@ -156,13 +156,13 @@ ...@@ -156,13 +156,13 @@
We also set the \c FridgeMagnets widget's palette, minimum size We also set the \c FridgeMagnets widget's palette, minimum size
and window title. and window title.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 2 \snippet draganddrop/fridgemagnets/dragwidget.cpp 2
Finally, to enable our user to move the fridge magnets around, we Finally, to enable our user to move the fridge magnets around, we
must also set the \c FridgeMagnets widget's must also set the \c FridgeMagnets widget's
\l{QWidget::acceptDrops}{acceptDrops} property. \l{QWidget::acceptDrops}{acceptDrops} property.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 3 \snippet draganddrop/fridgemagnets/dragwidget.cpp 3
Setting this property to true announces to the system that this Setting this property to true announces to the system that this
widget \e may be able to accept drop events (events that are sent widget \e may be able to accept drop events (events that are sent
...@@ -175,7 +175,7 @@ ...@@ -175,7 +175,7 @@
Let's take a look at the \l{QWidget::}{mousePressEvent()} event Let's take a look at the \l{QWidget::}{mousePressEvent()} event
handler, where drag and drop operations begin: handler, where drag and drop operations begin:
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 13 \snippet draganddrop/fridgemagnets/dragwidget.cpp 13
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 14 \snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 14
Mouse events occur when a mouse button is pressed or released Mouse events occur when a mouse button is pressed or released
...@@ -202,7 +202,7 @@ ...@@ -202,7 +202,7 @@
given MIME type. In our case, we associate our item data with the given MIME type. In our case, we associate our item data with the
custom \c application/x-fridgemagnet type. custom \c application/x-fridgemagnet type.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 15 \snippet draganddrop/fridgemagnets/dragwidget.cpp 15
Note that we also associate the magnet's text with the Note that we also associate the magnet's text with the
\c text/plain MIME type using QMimeData's \l{QMimeData::}{setText()} \c text/plain MIME type using QMimeData's \l{QMimeData::}{setText()}
...@@ -224,7 +224,7 @@ ...@@ -224,7 +224,7 @@
example, we simply use the pixmap used by the label itself to make example, we simply use the pixmap used by the label itself to make
it look like the fridge magnet itself is being moved. it look like the fridge magnet itself is being moved.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 16 \snippet draganddrop/fridgemagnets/dragwidget.cpp 16
We also specify the cursor's hot spot, its position relative to the We also specify the cursor's hot spot, its position relative to the
top-level corner of the drag pixmap, to be the point we calculated top-level corner of the drag pixmap, to be the point we calculated
...@@ -235,7 +235,7 @@ ...@@ -235,7 +235,7 @@
We start the drag operation using QDrag's \l{QDrag::}{exec()} function, We start the drag operation using QDrag's \l{QDrag::}{exec()} function,
requesting that the magnet is copied when the drag is completed. requesting that the magnet is copied when the drag is completed.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 17 \snippet draganddrop/fridgemagnets/dragwidget.cpp 17
The function returns the drop action actually performed by the user The function returns the drop action actually performed by the user
(this can be either a copy or a move action in this case); if this (this can be either a copy or a move action in this case); if this
...@@ -258,9 +258,9 @@ ...@@ -258,9 +258,9 @@
In our \c dragEnterEvent() implementation, we first determine In our \c dragEnterEvent() implementation, we first determine
whether we support the event's MIME type or not: whether we support the event's MIME type or not:
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 4 \snippet draganddrop/fridgemagnets/dragwidget.cpp 4
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 5 \snippet draganddrop/fridgemagnets/dragwidget.cpp 5
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 6 \snippet draganddrop/fridgemagnets/dragwidget.cpp 6
If the type is \c application/x-fridgemagnet and the event If the type is \c application/x-fridgemagnet and the event
origins from any of this application's fridge magnet widgets, we origins from any of this application's fridge magnet widgets, we
...@@ -275,7 +275,7 @@ ...@@ -275,7 +275,7 @@
origins from any other widget, we simply accept the proposed origins from any other widget, we simply accept the proposed
action. action.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 7 \snippet draganddrop/fridgemagnets/dragwidget.cpp 7
We also accept the proposed action if the event's MIME type is \c We also accept the proposed action if the event's MIME type is \c
text/plain, i.e., if QMimeData::hasText() returns true. If the text/plain, i.e., if QMimeData::hasText() returns true. If the
...@@ -283,7 +283,7 @@ ...@@ -283,7 +283,7 @@
\l {QDragMoveEvent::}{ignore()} method allowing the event to be \l {QDragMoveEvent::}{ignore()} method allowing the event to be
propagated further. propagated further.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 8 \snippet draganddrop/fridgemagnets/dragwidget.cpp 8
Drag move events occur when the cursor enters a widget, when it Drag move events occur when the cursor enters a widget, when it
moves within the widget, and when a modifier key is pressed on the moves within the widget, and when a modifier key is pressed on the
...@@ -298,7 +298,7 @@ ...@@ -298,7 +298,7 @@
data. data.
\target drop \target drop
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 9 \snippet draganddrop/fridgemagnets/dragwidget.cpp 9
The QMimeData class provides a container for data that The QMimeData class provides a container for data that
records information about its MIME type. QMimeData objects records information about its MIME type. QMimeData objects
...@@ -310,7 +310,7 @@ ...@@ -310,7 +310,7 @@
MIME type using a data stream in order to create a new \c DragLabel MIME type using a data stream in order to create a new \c DragLabel
object. object.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 10 \snippet draganddrop/fridgemagnets/dragwidget.cpp 10
The QDataStream class provides serialization of binary data to a The QDataStream class provides serialization of binary data to a
QIODevice (a data stream is a binary stream of encoded information QIODevice (a data stream is a binary stream of encoded information
...@@ -319,7 +319,7 @@ ...@@ -319,7 +319,7 @@
Finally, we create a label and move it to the event's position: Finally, we create a label and move it to the event's position:
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 11 \snippet draganddrop/fridgemagnets/dragwidget.cpp 11
If the source of the event is also the widget receiving the If the source of the event is also the widget receiving the
drop event, we set the event's drop action to Qt::MoveAction and drop event, we set the event's drop action to Qt::MoveAction and
...@@ -338,7 +338,7 @@ ...@@ -338,7 +338,7 @@
action. This lets the user drop selected text from a text editor or action. This lets the user drop selected text from a text editor or
Web browser onto the widget to add more fridge magnets. Web browser onto the widget to add more fridge magnets.
\snippet examples/draganddrop/fridgemagnets/dragwidget.cpp 12 \snippet draganddrop/fridgemagnets/dragwidget.cpp 12
If the event has any other type, we call the event's If the event has any other type, we call the event's
\l{QDragMoveEvent::}{ignore()} method allowing the event to be \l{QDragMoveEvent::}{ignore()} method allowing the event to be
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment