Skip to content

Commit

Permalink
add simple browser integration
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterPetrik authored and nyalldawson committed Oct 26, 2020
1 parent 9c27d4a commit 13ecb8c
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 8 deletions.
3 changes: 2 additions & 1 deletion python/core/auto_generated/qgsdataitem.sip.in
Expand Up @@ -490,7 +490,8 @@ Item that represents a layer that can be opened with one of the providers
Table,
Plugin,
Mesh,
VectorTile
VectorTile,
PointCloud
};


Expand Down
4 changes: 4 additions & 0 deletions src/app/qgisapp.cpp
Expand Up @@ -2094,6 +2094,10 @@ void QgisApp::handleDropUriList( const QgsMimeDataUtils::UriList &lst )
{
addMeshLayer( uri, u.name, u.providerKey );
}
else if ( u.layerType == QLatin1String( "pointcloud" ) )
{
addPointCloudLayer( uri, u.name );
}
else if ( u.layerType == QLatin1String( "vector-tile" ) )
{
QgsTemporaryCursorOverride busyCursor( Qt::WaitCursor );
Expand Down
6 changes: 3 additions & 3 deletions src/core/pointcloud/qgspointclouddataitems.cpp
Expand Up @@ -25,8 +25,8 @@
///@cond PRIVATE

QgsPointCloudLayerItem::QgsPointCloudLayerItem( QgsDataItem *parent,
const QString &name, const QString &path, const QString &uri )
: QgsLayerItem( parent, name, path, uri, QgsLayerItem::Mesh, QStringLiteral( "pointcloud" ) )
const QString &name, const QString &path, const QString &uri )
: QgsLayerItem( parent, name, path, uri, QgsLayerItem::PointCloud, QStringLiteral( "pointcloud" ) )
{
mToolTip = uri;
setState( Populated );
Expand Down Expand Up @@ -66,7 +66,7 @@ QgsDataItem *QgsPointCloudDataItemProvider::createDataItem( const QString &path,
return nullptr;

// Filter files by extension
if ( name != QStringLiteral("ept.json") )
if ( !path.endsWith( QStringLiteral( "ept.json" ) ) )
return nullptr;

return new QgsPointCloudLayerItem( parentItem, name, path, path );
Expand Down
11 changes: 11 additions & 0 deletions src/core/qgsdataitem.cpp
Expand Up @@ -828,6 +828,9 @@ QgsMapLayerType QgsLayerItem::mapLayerType() const
case QgsLayerItem::Plugin:
return QgsMapLayerType::PluginLayer;

case QgsLayerItem::PointCloud:
return QgsMapLayerType::PointCloudLayer;

case QgsLayerItem::NoType:
case QgsLayerItem::Vector:
case QgsLayerItem::Point:
Expand Down Expand Up @@ -875,6 +878,8 @@ QgsLayerItem::LayerType QgsLayerItem::typeFromMapLayer( QgsMapLayer *layer )
return Plugin;
case QgsMapLayerType::MeshLayer:
return Mesh;
case QgsMapLayerType::PointCloudLayer:
return PointCloud;
case QgsMapLayerType::VectorTileLayer:
return VectorTile;
case QgsMapLayerType::AnnotationLayer:
Expand Down Expand Up @@ -909,6 +914,8 @@ QString QgsLayerItem::iconName( QgsLayerItem::LayerType layerType )
return QStringLiteral( "/mIconRaster.svg" );
case Mesh:
return QStringLiteral( "/mIconMeshLayer.svg" );
case PointCloud:
return QStringLiteral( "/mIconPointCloudLayer.svg" );
default:
return QStringLiteral( "/mIconLayer.png" );
}
Expand Down Expand Up @@ -964,6 +971,7 @@ QgsMimeDataUtils::Uri QgsLayerItem::mimeUri() const
case Raster:
case Plugin:
case Mesh:
case PointCloud:
case VectorTile:
break;
}
Expand All @@ -977,6 +985,9 @@ QgsMimeDataUtils::Uri QgsLayerItem::mimeUri() const
case QgsMapLayerType::VectorTileLayer:
u.layerType = QStringLiteral( "vector-tile" );
break;
case QgsMapLayerType::PointCloudLayer:
u.layerType = QStringLiteral( "pointcloud" );
break;
case QgsMapLayerType::PluginLayer:
u.layerType = QStringLiteral( "plugin" );
break;
Expand Down
3 changes: 2 additions & 1 deletion src/core/qgsdataitem.h
Expand Up @@ -521,7 +521,8 @@ class CORE_EXPORT QgsLayerItem : public QgsDataItem
Table,
Plugin, //!< Added in 2.10
Mesh, //!< Added in 3.2
VectorTile //!< Added in 3.14
VectorTile, //!< Added in 3.14
PointCloud //!< Added in 3.18
};

Q_ENUM( LayerType )
Expand Down
4 changes: 2 additions & 2 deletions src/core/qgsproviderregistry.cpp
Expand Up @@ -140,8 +140,8 @@ void QgsProviderRegistry::init()
}
{
QgsScopedRuntimeProfile profile( QObject::tr( "Create point cloud provider" ) );
QgsProviderMetadata *vt = new QgsPointCloudProviderMetadata();
mProviders[ vt->key() ] = vt;
QgsProviderMetadata *pc = new QgsPointCloudProviderMetadata();
mProviders[ pc->key() ] = pc;
}
#ifdef HAVE_STATIC_PROVIDERS
mProviders[ QgsWmsProvider::providerKey() ] = new QgsWmsProviderMetadata();
Expand Down
2 changes: 1 addition & 1 deletion src/gui/qgsdatasourcemanagerdialog.cpp
Expand Up @@ -189,7 +189,7 @@ void QgsDataSourceManagerDialog::makeConnections( QgsAbstractDataSourceWidget *d
connect( dlg, &QgsAbstractDataSourceWidget::addMeshLayer, this, &QgsDataSourceManagerDialog::addMeshLayer );
// Vector tile
connect( dlg, &QgsAbstractDataSourceWidget::addVectorTileLayer, this, &QgsDataSourceManagerDialog::addVectorTileLayer );
// Vector tile
// Point Cloud
connect( dlg, &QgsAbstractDataSourceWidget::addPointCloudLayer, this, &QgsDataSourceManagerDialog::addPointCloudLayer );
// Virtual
connect( dlg, &QgsAbstractDataSourceWidget::replaceVectorLayer,
Expand Down

0 comments on commit 13ecb8c

Please sign in to comment.