Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# Q3IconDrag Class Reference

The Q3IconDrag class supports drag and drop operations within a Q3IconView. More...

    #include <Q3IconDrag>

This class is part of the Qt 3 compatibility library. It is provided to keep old source code working. We strongly advise against using it in new code. See the Porting Guide for more information.

Inherits Q3DragObject.

- List of all members, including inherited members

### Writable Properties

- 1 writable property inherited from QObject

### Public Functions

- Q3IconDrag ( QWidget * dragSource, const char * name = 0 )
- virtual ~Q3IconDrag ()
- void append ( const Q3IconDragItem & i, const QRect & pr, const QRect & tr )
- virtual QByteArray encodedData ( const char * mime ) const

- 9 public functions inherited from Q3DragObject
- 26 public functions inherited from QObject

### Public Slots

- 1 public slot inherited from QObject

### Signals

- 1 signal inherited from QObject

### Static Public Members

- bool canDecode ( QMimeSource * e )

- 1 static public member inherited from Q3DragObject
- 4 static public members inherited from QObject

### Protected Functions

- 1 protected function inherited from Q3DragObject
- 7 protected functions inherited from QObject

## Detailed Description

The Q3IconDrag class supports drag and drop operations within a Q3IconView.

A Q3IconDrag object is used to maintain information about the positions of dragged items and the data associated with them. Q3IconViews are able to use this information to paint the dragged items in the correct positions. Internally, Q3IconDrag stores the data associated with drag items in Q3IconDragItem objects.

If you want to use the extended drag and drop functionality of Q3IconView, create a Q3IconDrag object in a reimplementation of Q3IconView::dragObject(). Then create a Q3IconDragItem for each item which should be dragged, set the data it represents with Q3IconDragItem::setData(), and add each Q3IconDragItem to the drag object using append().

The data in Q3IconDragItems is stored in a QByteArray and is mime-typed (see QMimeSource and the Drag and Drop overview). If you want to use your own mime-types derive a class from Q3IconDrag and reimplement format(), encodedData() and canDecode().

The fileiconview example program demonstrates the use of the Q3IconDrag class including subclassing and reimplementing dragObject(), format(), encodedData() and canDecode(). See the files `qt/examples/fileiconview/qfileiconview.h` and `qt/examples/fileiconview/qfileiconview.cpp`.

See also QMimeSource::format().

## Member Function Documentation

### Q3IconDrag::Q3IconDrag ( QWidget * dragSource, const char * name = 0 )

Constructs a drag object called name, which is a child of dragSource.

Note that the drag object will be deleted when dragSource is deleted.

### Q3IconDrag::~Q3IconDrag () `[virtual]`

Destructor.

### void Q3IconDrag::append ( const Q3IconDragItem & i, const QRect & pr, const QRect & tr )

Append the Q3IconDragItem, i, to the Q3IconDrag object's list of items. You must also supply the geometry of the pixmap, pr, and the textual caption, tr.

See also Q3IconDragItem.

### bool Q3IconDrag::canDecode ( QMimeSource * e ) `[static]`

Returns true if e can be decoded by the Q3IconDrag, otherwise return false.

### QByteArray Q3IconDrag::encodedData ( const char * mime ) const `[virtual]`

Returns the encoded data of the drag object if mime is application/x-qiconlist.

Reimplemented from QMimeSource.