Fix docs for Drag and Drop examples
Change-Id: Ic1622b64603f7634b697bd7d8412dcc9f1a8c3fa Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
This commit is contained in:
parent
0e7ba5e763
commit
d25bd0c37e
2
.gitignore
vendored
2
.gitignore
vendored
@ -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/*/*/*
|
||||||
|
BIN
examples/widgets/doc/images/draganddroppuzzle-example.png
Normal file
BIN
examples/widgets/doc/images/draganddroppuzzle-example.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@ -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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
\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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
|
|
||||||
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 @@
|
|||||||
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
|
Loading…
x
Reference in New Issue
Block a user