From b4fe9002d8a4c48bd629468d023863fb84ca2060 Mon Sep 17 00:00:00 2001 From: Martin Dobias Date: Tue, 9 Aug 2016 08:49:42 +0200 Subject: [PATCH] [FEATURE] API to allow drag'n'drop of custom browser items QgsDataItem implementations may provide hasDragEnabled(), mimeUri() and QgsCustomDropHandler implementation to deal with drop of custom items. --- doc/api_break.dox | 6 +++ python/core/qgsdataitem.sip | 30 +++++++++++--- python/core/qgsmimedatautils.sip | 17 +++++++- python/gui/gui.sip | 1 + python/gui/qgisinterface.sip | 12 ++++++ python/gui/qgscustomdrophandler.sip | 21 ++++++++++ src/app/qgisapp.cpp | 64 +++++++++++++++++++++-------- src/app/qgisapp.h | 13 ++++++ src/app/qgisappinterface.cpp | 10 +++++ src/app/qgisappinterface.h | 12 ++++++ src/app/qgsbrowserdockwidget.cpp | 23 ++--------- src/core/qgsbrowsermodel.cpp | 11 +++-- src/core/qgsdataitem.cpp | 29 ++++++++++++- src/core/qgsdataitem.h | 32 ++++++++++++--- src/core/qgsmimedatautils.cpp | 20 +-------- src/core/qgsmimedatautils.h | 17 +++++++- src/gui/CMakeLists.txt | 2 + src/gui/qgisinterface.h | 13 ++++++ src/gui/qgscustomdrophandler.cpp | 20 +++++++++ src/gui/qgscustomdrophandler.h | 39 ++++++++++++++++++ 20 files changed, 316 insertions(+), 76 deletions(-) create mode 100644 python/gui/qgscustomdrophandler.sip create mode 100644 src/gui/qgscustomdrophandler.cpp create mode 100644 src/gui/qgscustomdrophandler.h diff --git a/doc/api_break.dox b/doc/api_break.dox index 398d8505d52..fda505a516c 100644 --- a/doc/api_break.dox +++ b/doc/api_break.dox @@ -450,6 +450,12 @@ be returned instead of a null pointer if no transformation is required. plugins calling this method will need to be updated. +\subsection qgis_api_break_3_0_QgsMimeDataUtils QgsMimeDataUtils + + + \subsection qgis_api_break_3_0_QgsOSMElement QgsOSMElement