class QDropEvent;
class QMimeData;
class QAbstractItemView;
-class QBrush;
-class QRect;
class QWidget;
/**
* @brief Helper class for having a common drag and drop behavior.
*
* The class is used by DolphinIconsView, DolphinDetailsView,
- * DolphinColumnView and SidebarTreeView to have a consistent
+ * DolphinColumnView and PanelTreeView to have a consistent
* drag and drop behavior between all views.
*/
class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper : public QObject
public:
static DragAndDropHelper& instance();
-
+
/**
* Returns true, if Dolphin supports the dragging of
* the given mime data.
*/
bool isMimeDataSupported(const QMimeData* mimeData) const;
-
+
/**
* Creates a drag object for the view \a itemView for all selected items.
*/
void startDrag(QAbstractItemView* itemView,
Qt::DropActions supportedActions,
DolphinController* controller = 0);
-
+
+ /**
+ * Returns true if and only if the view \a itemView was the last view to
+ * be passed to startDrag(...), and that drag is still in progress.
+ */
+ bool isDragSource(QAbstractItemView* itemView);
+
/**
* Handles the dropping of URLs to the given
* destination. A context menu with the options
QWidget* widget);
signals:
void errorMessage(const QString& msg);
-
+
private:
DragAndDropHelper();
-
+ // The last view passed in startDrag(...), or 0 if
+ // no startDrag(...) initiated drag is in progress.
+ QAbstractItemView *m_dragSource;
+
friend class DragAndDropHelperSingleton;
};