Qt 4.8
Public Functions | Protected Variables | Friends | List of all members
QDropEvent Class Reference

The QDropEvent class provides an event which is sent when a drag and drop action is completed. More...

#include <qevent.h>

Inheritance diagram for QDropEvent:
QEvent QMimeSource QDragMoveEvent QDragEnterEvent

Public Functions

void acceptProposedAction ()
 Sets the drop action to be the proposed action. More...
 
Qt::DropAction dropAction () const
 Returns the action to be performed on the data by the target. More...
 
QByteArray encodedData (const char *) const
 Returns a byte array containing the drag's data, in format. More...
 
const char * format (int n=0) const
 Returns a string describing one of the available data types for this drag. More...
 
Qt::KeyboardModifiers keyboardModifiers () const
 Returns the modifier keys that are pressed. More...
 
const QMimeDatamimeData () const
 Returns the data that was dropped on the widget and its associated MIME type information. More...
 
Qt::MouseButtons mouseButtons () const
 Returns the mouse buttons that are pressed. More...
 
const QPointpos () const
 Returns the position where the drop was made. More...
 
Qt::DropActions possibleActions () const
 Returns an OR-combination of possible drop actions. More...
 
Qt::DropAction proposedAction () const
 Returns the proposed drop action. More...
 
bool provides (const char *) const
 Returns true if this event provides format mimeType; otherwise returns false. More...
 
 QDropEvent (const QPoint &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type=Drop)
 Constructs a drop event of a certain type corresponding to a drop at the point specified by pos in the destination widget's coordinate system. More...
 
void setDropAction (Qt::DropAction action)
 Sets the action to be performed on the data by the target. More...
 
QWidgetsource () const
 If the source of the drag operation is a widget in this application, this function returns that source; otherwise it returns 0. More...
 
 ~QDropEvent ()
 
- Public Functions inherited from QEvent
void accept ()
 Sets the accept flag of the event object, the equivalent of calling setAccepted(true). More...
 
void ignore ()
 Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false). More...
 
bool isAccepted () const
 
 QEvent (Type type)
 Contructs an event object of type type. More...
 
void setAccepted (bool accepted)
 
bool spontaneous () const
 Returns true if the event originated outside the application (a system event); otherwise returns false. More...
 
Type type () const
 Returns the event type. More...
 
virtual ~QEvent ()
 Destroys the event. More...
 
- Public Functions inherited from QMimeSource
virtual ~QMimeSource ()
 Destroys the MIME source. More...
 

Protected Variables

Qt::DropActions act
 
Qt::DropAction default_action
 
Qt::DropAction drop_action
 
QList< QByteArrayfmts
 
const QMimeDatamdata
 
Qt::KeyboardModifiers modState
 
Qt::MouseButtons mouseState
 
QPoint p
 
- Protected Variables inherited from QEvent
QEventPrivate * d
 
ushort t
 

Friends

class QApplication
 

Additional Inherited Members

- Public Types inherited from QEvent
enum  Type {
  None = 0, Timer = 1, MouseButtonPress = 2, MouseButtonRelease = 3,
  MouseButtonDblClick = 4, MouseMove = 5, KeyPress = 6, KeyRelease = 7,
  FocusIn = 8, FocusOut = 9, Enter = 10, Leave = 11,
  Paint = 12, Move = 13, Resize = 14, Create = 15,
  Destroy = 16, Show = 17, Hide = 18, Close = 19,
  Quit = 20, ParentChange = 21, ParentAboutToChange = 131, ThreadChange = 22,
  WindowActivate = 24, WindowDeactivate = 25, ShowToParent = 26, HideToParent = 27,
  Wheel = 31, WindowTitleChange = 33, WindowIconChange = 34, ApplicationWindowIconChange = 35,
  ApplicationFontChange = 36, ApplicationLayoutDirectionChange = 37, ApplicationPaletteChange = 38, PaletteChange = 39,
  Clipboard = 40, Speech = 42, MetaCall = 43, SockAct = 50,
  WinEventAct = 132, DeferredDelete = 52, DragEnter = 60, DragMove = 61,
  DragLeave = 62, Drop = 63, DragResponse = 64, ChildAdded = 68,
  ChildPolished = 69, ChildRemoved = 71, ShowWindowRequest = 73, PolishRequest = 74,
  Polish = 75, LayoutRequest = 76, UpdateRequest = 77, UpdateLater = 78,
  EmbeddingControl = 79, ActivateControl = 80, DeactivateControl = 81, ContextMenu = 82,
  InputMethod = 83, AccessibilityPrepare = 86, TabletMove = 87, LocaleChange = 88,
  LanguageChange = 89, LayoutDirectionChange = 90, Style = 91, TabletPress = 92,
  TabletRelease = 93, OkRequest = 94, HelpRequest = 95, IconDrag = 96,
  FontChange = 97, EnabledChange = 98, ActivationChange = 99, StyleChange = 100,
  IconTextChange = 101, ModifiedChange = 102, MouseTrackingChange = 109, WindowBlocked = 103,
  WindowUnblocked = 104, WindowStateChange = 105, ToolTip = 110, WhatsThis = 111,
  StatusTip = 112, ActionChanged = 113, ActionAdded = 114, ActionRemoved = 115,
  FileOpen = 116, Shortcut = 117, ShortcutOverride = 51, WhatsThisClicked = 118,
  ToolBarChange = 120, ApplicationActivate = 121, ApplicationActivated = ApplicationActivate, ApplicationDeactivate = 122,
  ApplicationDeactivated = ApplicationDeactivate, QueryWhatsThis = 123, EnterWhatsThisMode = 124, LeaveWhatsThisMode = 125,
  ZOrderChange = 126, HoverEnter = 127, HoverLeave = 128, HoverMove = 129,
  AccessibilityHelp = 119, AccessibilityDescription = 130, AcceptDropsChange = 152, MenubarUpdated = 153,
  ZeroTimerEvent = 154, GraphicsSceneMouseMove = 155, GraphicsSceneMousePress = 156, GraphicsSceneMouseRelease = 157,
  GraphicsSceneMouseDoubleClick = 158, GraphicsSceneContextMenu = 159, GraphicsSceneHoverEnter = 160, GraphicsSceneHoverMove = 161,
  GraphicsSceneHoverLeave = 162, GraphicsSceneHelp = 163, GraphicsSceneDragEnter = 164, GraphicsSceneDragMove = 165,
  GraphicsSceneDragLeave = 166, GraphicsSceneDrop = 167, GraphicsSceneWheel = 168, KeyboardLayoutChange = 169,
  DynamicPropertyChange = 170, TabletEnterProximity = 171, TabletLeaveProximity = 172, NonClientAreaMouseMove = 173,
  NonClientAreaMouseButtonPress = 174, NonClientAreaMouseButtonRelease = 175, NonClientAreaMouseButtonDblClick = 176, MacSizeChange = 177,
  ContentsRectChange = 178, MacGLWindowChange = 179, FutureCallOut = 180, GraphicsSceneResize = 181,
  GraphicsSceneMove = 182, CursorChange = 183, ToolTipChange = 184, NetworkReplyUpdated = 185,
  GrabMouse = 186, UngrabMouse = 187, GrabKeyboard = 188, UngrabKeyboard = 189,
  MacGLClearDrawable = 191, StateMachineSignal = 192, StateMachineWrapped = 193, TouchBegin = 194,
  TouchUpdate = 195, TouchEnd = 196, NativeGesture = 197, RequestSoftwareInputPanel = 199,
  CloseSoftwareInputPanel = 200, UpdateSoftKeys = 201, WinIdChange = 203, Gesture = 198,
  GestureOverride = 202, PlatformPanel = 212, User = 1000, MaxUser = 65535
}
 This enum type defines the valid event types in Qt. More...
 
- Static Public Functions inherited from QEvent
static int registerEventType (int hint=-1)
 Registers and returns a custom event type. More...
 

Detailed Description

The QDropEvent class provides an event which is sent when a drag and drop action is completed.

When a widget accepts drop events, it will receive this event if it has accepted the most recent QDragEnterEvent or QDragMoveEvent sent to it.

The drop event contains a proposed action, available from proposedAction(), for the widget to either accept or ignore. If the action can be handled by the widget, you should call the acceptProposedAction() function. Since the proposed action can be a combination of Qt::DropAction values, it may be useful to either select one of these values as a default action or ask the user to select their preferred action.

If the proposed drop action is not suitable, perhaps because your custom widget does not support that action, you can replace it with any of the possible drop actions by calling setDropAction() with your preferred action. If you set a value that is not present in the bitwise OR combination of values returned by possibleActions(), the default copy action will be used. Once a replacement drop action has been set, call accept() instead of acceptProposedAction() to complete the drop operation.

The mimeData() function provides the data dropped on the widget in a QMimeData object. This contains information about the MIME type of the data in addition to the data itself.

See also
QMimeData, QDrag, {Drag and Drop}

Definition at line 476 of file qevent.h.

Constructors and Destructors

◆ QDropEvent()

QDropEvent::QDropEvent ( const QPoint pos,
Qt::DropActions  actions,
const QMimeData data,
Qt::MouseButtons  buttons,
Qt::KeyboardModifiers  modifiers,
Type  type = Drop 
)

Constructs a drop event of a certain type corresponding to a drop at the point specified by pos in the destination widget's coordinate system.

The actions indicate which types of drag and drop operation can be performed, and the drag data is stored as MIME-encoded data in data.

The states of the mouse buttons and keyboard modifiers at the time of the drop are specified by buttons and modifiers.

Definition at line 2645 of file qevent.cpp.

2647  : QEvent(type), p(pos), mouseState(buttons),
2648  modState(modifiers), act(actions),
2649  mdata(data)
2650 {
2653  ignore();
2654 }
Qt::DropActions act
Definition: qevent.h:522
Qt::DropAction defaultAction(Qt::DropActions possibleActions, Qt::KeyboardModifiers modifiers) const
Definition: qdnd.cpp:194
static Qt::MouseButtons buttons
Qt::DropAction default_action
Definition: qevent.h:524
Qt::KeyboardModifiers modState
Definition: qevent.h:521
QEvent(Type type)
Contructs an event object of type type.
Definition: qcoreevent.cpp:289
const QMimeData * mdata
Definition: qevent.h:525
static QDragManager * self()
Definition: qdnd.cpp:163
Qt::MouseButtons mouseState
Definition: qevent.h:520
Qt::DropAction drop_action
Definition: qevent.h:523
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310
QPoint p
Definition: qevent.h:519
Type type() const
Returns the event type.
Definition: qcoreevent.h:303

◆ ~QDropEvent()

QDropEvent::~QDropEvent ( )
Warning
This function is not part of the public interface.

Definition at line 2657 of file qevent.cpp.

2658 {
2659 }

Functions

◆ acceptProposedAction()

void QDropEvent::acceptProposedAction ( )
inline

Sets the drop action to be the proposed action.

See also
setDropAction(), proposedAction(), {QEvent::accept()}{accept()}

Definition at line 492 of file qevent.h.

Referenced by QLineEdit::dragMoveEvent(), QLineEdit::dropEvent(), and QTextControl::processEvent().

Qt::DropAction default_action
Definition: qevent.h:524
Qt::DropAction drop_action
Definition: qevent.h:523
void accept()
Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
Definition: qcoreevent.h:309

◆ dropAction()

Qt::DropAction QDropEvent::dropAction ( ) const
inline

Returns the action to be performed on the data by the target.

This may be different from the action supplied in proposedAction() if you have called setDropAction() to explicitly choose a drop action.

See also
setDropAction()

Definition at line 494 of file qevent.h.

Referenced by QAbstractItemViewPrivate::canDecode(), QOleDropTarget::DragOver(), QOleDropTarget::Drop(), QLineEdit::dropEvent(), handle_xdnd_position(), QX11Data::motifdndHandle(), QGraphicsViewPrivate::populateSceneDragDropEvent(), QTextControl::processEvent(), QOleDropTarget::sendDragEnterEvent(), and QX11Data::xdndHandleDrop().

494 { return drop_action; }
Qt::DropAction drop_action
Definition: qevent.h:523

◆ encodedData()

QByteArray QDropEvent::encodedData ( const char *  format) const
virtual

Returns a byte array containing the drag's data, in format.

data() normally needs to get the data from the drag source, which is potentially very slow, so it's advisable to call this function only if you're sure that you will need the data in that particular format.

The resulting data will have a size of 0 if the format was not available.

See also
format() QByteArray::size()

Implements QMimeSource.

Definition at line 2679 of file qevent.cpp.

2680 {
2681  return mdata->data(QLatin1String(format));
2682 }
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
QByteArray data(const QString &mimetype) const
Returns the data stored in the object in the format described by the MIME type specified by mimeType...
Definition: qmimedata.cpp:524
const QMimeData * mdata
Definition: qevent.h:525

◆ format()

const char * QDropEvent::format ( int  n = 0) const
virtual

Returns a string describing one of the available data types for this drag.

Common examples are "text/plain" and "image/gif". If n is less than zero or greater than the number of available data types, format() returns 0.

This function is provided mainly for debugging. Most drop targets will use provides().

See also
data() provides()

Implements QMimeSource.

Definition at line 2700 of file qevent.cpp.

2701 {
2702  if (fmts.isEmpty()) {
2703  QStringList formats = mdata->formats();
2704  for (int i = 0; i < formats.size(); ++i)
2705  fmts.append(formats.at(i).toLatin1());
2706  }
2707  if (n < 0 || n >= fmts.size())
2708  return 0;
2709  return fmts.at(n).constData();
2710 }
virtual QStringList formats() const
Returns a list of formats supported by the object.
Definition: qmimedata.cpp:579
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
QByteArray toLatin1() const Q_REQUIRED_RESULT
Returns a Latin-1 representation of the string as a QByteArray.
Definition: qstring.cpp:3993
QList< QByteArray > fmts
Definition: qevent.h:526
const QMimeData * mdata
Definition: qevent.h:525
const char * constData() const
Returns a pointer to the data stored in the byte array.
Definition: qbytearray.h:433
int size() const
Returns the number of items in the list.
Definition: qlist.h:137

◆ keyboardModifiers()

Qt::KeyboardModifiers QDropEvent::keyboardModifiers ( ) const
inline

Returns the modifier keys that are pressed.

Definition at line 488 of file qevent.h.

Referenced by QOleDropTarget::DragOver(), QApplication::notify(), and QGraphicsViewPrivate::populateSceneDragDropEvent().

488 { return modState; }
Qt::KeyboardModifiers modState
Definition: qevent.h:521

◆ mimeData()

const QMimeData * QDropEvent::mimeData ( ) const
inline

◆ mouseButtons()

Qt::MouseButtons QDropEvent::mouseButtons ( ) const
inline

Returns the mouse buttons that are pressed.

Definition at line 487 of file qevent.h.

Referenced by QApplication::notify(), and QGraphicsViewPrivate::populateSceneDragDropEvent().

487 { return mouseState; }
Qt::MouseButtons mouseState
Definition: qevent.h:520

◆ pos()

const QPoint & QDropEvent::pos ( ) const
inline

◆ possibleActions()

Qt::DropActions QDropEvent::possibleActions ( ) const
inline

Returns an OR-combination of possible drop actions.

See also
dropAction()

Definition at line 490 of file qevent.h.

Referenced by QApplication::notify(), and QGraphicsViewPrivate::populateSceneDragDropEvent().

490 { return act; }
Qt::DropActions act
Definition: qevent.h:522

◆ proposedAction()

Qt::DropAction QDropEvent::proposedAction ( ) const
inline

Returns the proposed drop action.

See also
dropAction()

Definition at line 491 of file qevent.h.

Referenced by QGraphicsViewPrivate::populateSceneDragDropEvent().

491 { return default_action; }
Qt::DropAction default_action
Definition: qevent.h:524

◆ provides()

bool QDropEvent::provides ( const char *  mimeType) const
virtual

Returns true if this event provides format mimeType; otherwise returns false.

See also
data()

Reimplemented from QMimeSource.

Definition at line 2723 of file qevent.cpp.

2724 {
2725  return mdata->formats().contains(QLatin1String(mimeType));
2726 }
virtual QStringList formats() const
Returns a list of formats supported by the object.
Definition: qmimedata.cpp:579
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
QBool contains(const QString &str, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the list contains the string str; otherwise returns false.
Definition: qstringlist.h:172
const QMimeData * mdata
Definition: qevent.h:525

◆ setDropAction()

void QDropEvent::setDropAction ( Qt::DropAction  action)

Sets the action to be performed on the data by the target.

Use this to override the proposed action with one of the possible actions.

If you set a drop action that is not one of the possible actions, the drag and drop operation will default to a copy operation.

Once you have supplied a replacement drop action, call accept() instead of acceptProposedAction().

See also
dropAction()

Definition at line 2746 of file qevent.cpp.

Referenced by QGraphicsProxyWidget::dragMoveEvent(), QGraphicsView::dragMoveEvent(), QOleDropTarget::DragOver(), QOleDropTarget::Drop(), QGraphicsView::dropEvent(), QAbstractItemView::dropEvent(), handle_xdnd_position(), QX11Data::motifdndHandle(), and QOleDropTarget::sendDragEnterEvent().

2747 {
2748  if (!(action & act) && action != Qt::IgnoreAction)
2749  action = default_action;
2750  drop_action = action;
2751 }
Qt::DropActions act
Definition: qevent.h:522
Qt::DropAction default_action
Definition: qevent.h:524
Qt::DropAction drop_action
Definition: qevent.h:523

◆ source()

QWidget * QDropEvent::source ( ) const

If the source of the drag operation is a widget in this application, this function returns that source; otherwise it returns 0.

The source of the operation is the first parameter to the QDrag object used instantiate the drag.

This is useful if your widget needs special behavior when dragging to itself.

See also
QDrag::QDrag()

Definition at line 2739 of file qevent.cpp.

Referenced by QAbstractItemView::dragEnterEvent(), QAbstractItemView::dragMoveEvent(), QLineEdit::dropEvent(), QListWidget::dropEvent(), QTableWidget::dropEvent(), QAbstractItemView::dropEvent(), QTreeWidget::dropEvent(), QAbstractItemViewPrivate::droppingOnItself(), QIconModeViewBase::filterDragMoveEvent(), QIconModeViewBase::filterDropEvent(), QGraphicsViewPrivate::populateSceneDragDropEvent(), and QTextControl::processEvent().

2740 {
2741  QDragManager *manager = QDragManager::self();
2742  return manager ? manager->source() : 0;
2743 }
QWidget * source() const
Definition: qdnd_p.h:230
static QDragManager * self()
Definition: qdnd.cpp:163

Friends and Related Functions

◆ QApplication

friend class QApplication
friend

Definition at line 518 of file qevent.h.

Properties

◆ act

Qt::DropActions QDropEvent::act
protected

Definition at line 522 of file qevent.h.

Referenced by QDropEvent(), and setDropAction().

◆ default_action

Qt::DropAction QDropEvent::default_action
protected

Definition at line 524 of file qevent.h.

Referenced by QDropEvent(), and setDropAction().

◆ drop_action

Qt::DropAction QDropEvent::drop_action
protected

Definition at line 523 of file qevent.h.

Referenced by QDropEvent(), and setDropAction().

◆ fmts

QList<QByteArray> QDropEvent::fmts
mutableprotected

Definition at line 526 of file qevent.h.

Referenced by format().

◆ mdata

const QMimeData* QDropEvent::mdata
protected

Definition at line 525 of file qevent.h.

Referenced by encodedData(), format(), and provides().

◆ modState

Qt::KeyboardModifiers QDropEvent::modState
protected

Definition at line 521 of file qevent.h.

◆ mouseState

Qt::MouseButtons QDropEvent::mouseState
protected

Definition at line 520 of file qevent.h.

◆ p

QPoint QDropEvent::p
protected

Definition at line 519 of file qevent.h.

Referenced by QApplication::notify().


The documentation for this class was generated from the following files: