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

# QIconDrag Class Reference
[iconview module]

The QIconDrag class supports drag and drop operations within a QIconView. More...

`#include <qiconview.h>`

Inherits QDragObject.

List of all member functions.

## Public Members

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

## Static Public Members

- bool canDecode ( QMimeSource * e )

## Detailed Description

The QIconDrag class supports drag and drop operations within a QIconView.

A QIconDrag object is used to maintain information about the positions of dragged items and the data associated with the dragged items. QIconViews are able to use this information to paint the dragged items in the correct positions. Internally QIconDrag stores the data associated with drag items in QIconDragItem objects.

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

The data in QIconDragItems 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 QIconDrag and reimplement format(), encodedData() and canDecode().

The fileiconview example program demonstrates the use of the QIconDrag 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() and Drag And Drop Classes.

## Member Function Documentation

### QIconDrag::QIconDrag ( 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.

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

Destructor.

### void QIconDrag::append ( const QIconDragItem & i, const QRect & pr, const QRect & tr )

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

See also QIconDragItem.

Example: fileiconview/qfileiconview.cpp.

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

Returns TRUE if e can be decoded by the QIconDrag, otherwise return FALSE.

Example: fileiconview/qfileiconview.cpp.

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

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

Example: fileiconview/qfileiconview.cpp.

Reimplemented from QMimeSource.

This file is part of the Qt toolkit. Copyright © 1995-2007 Trolltech. All Rights Reserved.