|
136 | 136 | #include "qgsmaptip.h" |
137 | 137 | #include "qgsmergeattributesdialog.h" |
138 | 138 | #include "qgsmessageviewer.h" |
| 139 | +#include "qgsmimedatautils.h" |
139 | 140 | #include "qgsnewvectorlayerdialog.h" |
140 | 141 | #include "qgsoptions.h" |
141 | 142 | #include "qgspastetransformations.h" |
@@ -681,31 +682,18 @@ void QgisApp::dropEvent( QDropEvent *event ) |
681 | 682 | openFile( fileName ); |
682 | 683 | } |
683 | 684 | } |
684 | | - if ( event->mimeData()->hasFormat( "application/x-vnd.qgis.qgis.uri" ) ) |
| 685 | + if ( QgsMimeDataUtils::isUriList( event->mimeData() ) ) |
685 | 686 | { |
686 | | - QByteArray encodedData = event->mimeData()->data( "application/x-vnd.qgis.qgis.uri" ); |
687 | | - QDataStream stream( &encodedData, QIODevice::ReadOnly ); |
688 | | - QString xUri; // extended uri: layer_type:provider_key:uri |
689 | | - while ( !stream.atEnd() ) |
| 687 | + QgsMimeDataUtils::UriList lst = QgsMimeDataUtils::decodeUriList( event->mimeData() ); |
| 688 | + foreach( const QgsMimeDataUtils::Uri& u, lst ) |
690 | 689 | { |
691 | | - stream >> xUri; |
692 | | - QgsDebugMsg( xUri ); |
693 | | - QRegExp rx( "^([^:]+):([^:]+):([^:]+):(.+)" ); |
694 | | - if ( rx.indexIn( xUri ) != -1 ) |
| 690 | + if ( u.layerType == "vector" ) |
695 | 691 | { |
696 | | - QString layerType = rx.cap( 1 ); |
697 | | - QString providerKey = rx.cap( 2 ); |
698 | | - QString name = rx.cap( 3 ); |
699 | | - QString uri = rx.cap( 4 ); |
700 | | - QgsDebugMsg( "type: " + layerType + " key: " + providerKey + " name: " + name + " uri: " + uri ); |
701 | | - if ( layerType == "vector" ) |
702 | | - { |
703 | | - addVectorLayer( uri, name, providerKey ); |
704 | | - } |
705 | | - else if ( layerType == "raster" ) |
706 | | - { |
707 | | - addRasterLayer( uri, name, providerKey, QStringList(), QStringList(), QString(), QString() ); |
708 | | - } |
| 692 | + addVectorLayer( u.uri, u.name, u.providerKey ); |
| 693 | + } |
| 694 | + else if ( u.layerType == "raster" ) |
| 695 | + { |
| 696 | + addRasterLayer( u.uri, u.name, u.providerKey, QStringList(), QStringList(), QString(), QString() ); |
709 | 697 | } |
710 | 698 | } |
711 | 699 | } |
|
0 commit comments