Skip to content

Commit

Permalink
Don't show 'None' for provider column in handle bad layers dialog for…
Browse files Browse the repository at this point in the history
… non-vector layers
  • Loading branch information
nyalldawson committed Mar 9, 2021
1 parent 1bef866 commit 62b8f08
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 11 deletions.
23 changes: 12 additions & 11 deletions src/app/qgshandlebadlayers.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -123,24 +123,24 @@ QgsHandleBadLayers::QgsHandleBadLayers( const QList<QDomNode> &layers )
{ {
const QDomNode &node = mLayers[i]; const QDomNode &node = mLayers[i];


QString name = node.namedItem( QStringLiteral( "layername" ) ).toElement().text(); const QString name = node.namedItem( QStringLiteral( "layername" ) ).toElement().text();
QString type = node.toElement().attribute( QStringLiteral( "type" ) ); const QString type = node.toElement().attribute( QStringLiteral( "type" ) );
QString id = node.namedItem( QStringLiteral( "id" ) ).toElement().text(); const QString layerId = node.namedItem( QStringLiteral( "id" ) ).toElement().text();
QString datasource = node.namedItem( QStringLiteral( "datasource" ) ).toElement().text(); const QString datasource = node.namedItem( QStringLiteral( "datasource" ) ).toElement().text();
const QString provider = node.namedItem( QStringLiteral( "provider" ) ).toElement().text(); const QString provider = node.namedItem( QStringLiteral( "provider" ) ).toElement().text();


bool providerFileBased = false; bool providerFileBased = false;
if ( const QgsProviderMetadata *metadata = QgsProviderRegistry::instance()->providerMetadata( provider ) ) if ( const QgsProviderMetadata *metadata = QgsProviderRegistry::instance()->providerMetadata( provider ) )
providerFileBased = metadata->providerCapabilities() & QgsProviderMetadata::FileBasedUris; providerFileBased = metadata->providerCapabilities() & QgsProviderMetadata::FileBasedUris;


const QString basepath = QFileInfo( datasource ).absolutePath(); const QString basepath = QFileInfo( datasource ).absolutePath();
mOriginalFileBase[ node.namedItem( QStringLiteral( "id" ) ).toElement().text() ].append( basepath ); mOriginalFileBase[ layerId ].append( basepath );


QgsDebugMsg( QStringLiteral( "name=%1 type=%2 provider=%3 datasource='%4'" ) QgsDebugMsgLevel( QStringLiteral( "name=%1 type=%2 provider=%3 datasource='%4'" )
.arg( name, .arg( name,
type, type,
vectorProvider, provider,
datasource ) ); datasource ), 2 );


mLayerList->setRowCount( j + 1 ); mLayerList->setRowCount( j + 1 );


Expand All @@ -153,10 +153,11 @@ QgsHandleBadLayers::QgsHandleBadLayers( const QList<QDomNode> &layers )


item = new QTableWidgetItem( type ); item = new QTableWidgetItem( type );
item->setData( static_cast< int >( CustomRoles::ProviderIsFileBased ), providerFileBased ); item->setData( static_cast< int >( CustomRoles::ProviderIsFileBased ), providerFileBased );
item->setData( static_cast< int >( CustomRoles::LayerId ), layerId );
item->setFlags( item->flags() & ~Qt::ItemIsEditable ); item->setFlags( item->flags() & ~Qt::ItemIsEditable );
mLayerList->setItem( j, 1, item ); mLayerList->setItem( j, 1, item );


item = new QTableWidgetItem( vectorProvider ); item = new QTableWidgetItem( provider );
item->setFlags( item->flags() & ~Qt::ItemIsEditable ); item->setFlags( item->flags() & ~Qt::ItemIsEditable );
mLayerList->setItem( j, 2, item ); mLayerList->setItem( j, 2, item );


Expand Down
1 change: 1 addition & 0 deletions src/app/qgshandlebadlayers.h
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ class APP_EXPORT QgsHandleBadLayers
Index = Qt::UserRole, Index = Qt::UserRole,
ProviderIsFileBased, ProviderIsFileBased,
DataSourceIsChanged, DataSourceIsChanged,
LayerId,
}; };


QPushButton *mBrowseButton = nullptr; QPushButton *mBrowseButton = nullptr;
Expand Down

0 comments on commit 62b8f08

Please sign in to comment.