diff --git a/src/providers/postgres/qgspostgresdataitemguiprovider.cpp b/src/providers/postgres/qgspostgresdataitemguiprovider.cpp index 6a40f57fbb5..9244bf9613f 100644 --- a/src/providers/postgres/qgspostgresdataitemguiprovider.cpp +++ b/src/providers/postgres/qgspostgresdataitemguiprovider.cpp @@ -133,6 +133,8 @@ bool QgsPostgresDataItemGuiProvider::acceptDrop( QgsDataItem *item, QgsDataItemG { if ( qobject_cast< QgsPGConnectionItem * >( item ) ) return true; + if ( qobject_cast< QgsPGSchemaItem * >( item ) ) + return true; return false; } @@ -143,6 +145,14 @@ bool QgsPostgresDataItemGuiProvider::handleDrop( QgsDataItem *item, QgsDataItemG { return connItem->handleDrop( data, QString() ); } + else if ( QgsPGSchemaItem *schemaItem = qobject_cast< QgsPGSchemaItem * >( item ) ) + { + QgsPGConnectionItem *connItem = qobject_cast( schemaItem->parent() ); + if ( !connItem ) + return false; + + return connItem->handleDrop( data, schemaItem->name() ); + } return false; } diff --git a/src/providers/postgres/qgspostgresdataitems.cpp b/src/providers/postgres/qgspostgresdataitems.cpp index 5f023cff6df..f729c0b475d 100644 --- a/src/providers/postgres/qgspostgresdataitems.cpp +++ b/src/providers/postgres/qgspostgresdataitems.cpp @@ -502,18 +502,6 @@ QgsPGLayerItem *QgsPGSchemaItem::createLayer( QgsPostgresLayerProperty layerProp return layerItem; } -bool QgsPGSchemaItem::handleDrop( const QMimeData *data, Qt::DropAction ) -{ - QgsPGConnectionItem *conn = qobject_cast( parent() ); - if ( !conn ) - return false; - - bool result = conn->handleDrop( data, mName ); - if ( result ) - refresh(); - - return result; -} // --------------------------------------------------------------------------- QgsPGRootItem::QgsPGRootItem( QgsDataItem *parent, const QString &name, const QString &path ) diff --git a/src/providers/postgres/qgspostgresdataitems.h b/src/providers/postgres/qgspostgresdataitems.h index e03450dd14b..d0fd4ba7777 100644 --- a/src/providers/postgres/qgspostgresdataitems.h +++ b/src/providers/postgres/qgspostgresdataitems.h @@ -81,9 +81,6 @@ class QgsPGSchemaItem : public QgsDataCollectionItem QVector createChildren() override; - bool acceptDrop() override { return true; } - bool handleDrop( const QMimeData *data, Qt::DropAction action ) override; - QString connectionName() const { return mConnectionName; } private: