Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Remove redundant QgsProviderSublayerItem::isFile()
  • Loading branch information
nyalldawson committed Jul 27, 2021
1 parent b2dc48a commit f3bf350
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 24 deletions.
12 changes: 3 additions & 9 deletions src/core/browser/qgsfilebaseddataitemprovider.cpp
Expand Up @@ -36,10 +36,9 @@
//

QgsProviderSublayerItem::QgsProviderSublayerItem( QgsDataItem *parent, const QString &name,
const QgsProviderSublayerDetails &details, bool isFile )
const QgsProviderSublayerDetails &details )
: QgsLayerItem( parent, name, details.uri(), details.uri(), layerTypeFromSublayer( details ), details.providerKey() )
, mDetails( details )
, mIsFile( isFile )
{
mToolTip = details.uri();

Expand All @@ -66,11 +65,6 @@ QVector<QgsDataItem *> QgsProviderSublayerItem::createChildren()
return children;
}

bool QgsProviderSublayerItem::isFile() const
{
return mIsFile;
}

Qgis::BrowserLayerType QgsProviderSublayerItem::layerTypeFromSublayer( const QgsProviderSublayerDetails &sublayer )
{
switch ( sublayer.type() )
Expand Down Expand Up @@ -148,7 +142,7 @@ QVector<QgsDataItem *> QgsFileDataCollectionItem::createChildren()
children.reserve( mSublayers.size() );
for ( const QgsProviderSublayerDetails &sublayer : std::as_const( mSublayers ) )
{
QgsProviderSublayerItem *item = new QgsProviderSublayerItem( this, sublayer.name(), sublayer, true );
QgsProviderSublayerItem *item = new QgsProviderSublayerItem( this, sublayer.name(), sublayer );
children.append( item );
}

Expand Down Expand Up @@ -335,7 +329,7 @@ QgsDataItem *QgsFileBasedDataItemProvider::createDataItem( const QString &path,
|| ( !( queryFlags & Qgis::SublayerQueryFlag::FastScan ) && !QgsProviderUtils::sublayerDetailsAreIncomplete( sublayers, QgsProviderUtils::SublayerCompletenessFlag::IgnoreUnknownFeatureCount ) ) )
)
{
QgsProviderSublayerItem *item = new QgsProviderSublayerItem( parentItem, name, sublayers.at( 0 ), false );
QgsProviderSublayerItem *item = new QgsProviderSublayerItem( parentItem, name, sublayers.at( 0 ) );
if ( item->path() == path )
item->setCapabilities( item->capabilities2() | Qgis::BrowserItemCapability::ItemRepresentsFile );
return item;
Expand Down
11 changes: 1 addition & 10 deletions src/core/browser/qgsfilebaseddataitemprovider.h
Expand Up @@ -51,25 +51,16 @@ class CORE_EXPORT QgsProviderSublayerItem final: public QgsLayerItem
* \param parent parent item
* \param name data item name (this should match either the layer's name or the filename of a single-layer file)
* \param details sublayer details
* \param isFile set to TRUE if the item represents a single-layer file, or FALSE if the item is a sublayer from a
* collection item.
*/
QgsProviderSublayerItem( QgsDataItem *parent, const QString &name, const QgsProviderSublayerDetails &details, bool isFile );
QgsProviderSublayerItem( QgsDataItem *parent, const QString &name, const QgsProviderSublayerDetails &details );
QString layerName() const override;
QVector<QgsDataItem *> createChildren() override;

/**
* Returns TRUE if this item directly represents a file, i.e. it is not a sublayer
* of a QgsFileDataCollectionItem.
*/
bool isFile() const;

private:

static Qgis::BrowserLayerType layerTypeFromSublayer( const QgsProviderSublayerDetails &sublayer );

QgsProviderSublayerDetails mDetails;
bool mIsFile = false;

};

Expand Down
7 changes: 2 additions & 5 deletions src/gui/providers/ogr/qgsogritemguiprovider.cpp
Expand Up @@ -30,7 +30,6 @@
#include "qgsdatacollectionitem.h"
#include "qgsogrproviderutils.h"
#include "qgsgeopackagedataitems.h"
#include "qgsfilebaseddataitemprovider.h"

void QgsOgrItemGuiProvider::populateContextMenu(
QgsDataItem *item,
Expand All @@ -43,12 +42,10 @@ void QgsOgrItemGuiProvider::populateContextMenu(
if ( layerItem->providerKey() == QLatin1String( "ogr" ) && !qobject_cast< QgsGeoPackageAbstractLayerItem * >( item ) )
{
// Messages are different for files and tables
QgsProviderSublayerItem *sublayerItem = qobject_cast< QgsProviderSublayerItem * >( layerItem );

QString message = sublayerItem && !sublayerItem->isFile() ? QObject::tr( "Delete Layer “%1”…" ).arg( layerItem->name() ) : QObject::tr( "Delete File “%1”…" ).arg( layerItem->name() );
QString message = !( layerItem->capabilities2() & Qgis::BrowserItemCapability::ItemRepresentsFile ) ? QObject::tr( "Delete Layer “%1”…" ).arg( layerItem->name() ) : QObject::tr( "Delete File “%1”…" ).arg( layerItem->name() );
QAction *actionDeleteLayer = new QAction( message, menu );
QVariantMap data;
data.insert( QStringLiteral( "isSubLayer" ), sublayerItem && !sublayerItem->isFile() );
data.insert( QStringLiteral( "isSubLayer" ), !( layerItem->capabilities2() & Qgis::BrowserItemCapability::ItemRepresentsFile ) );
data.insert( QStringLiteral( "uri" ), layerItem->uri() );
data.insert( QStringLiteral( "name" ), layerItem->name() );
data.insert( QStringLiteral( "parent" ), QVariant::fromValue( QPointer< QgsDataItem >( layerItem->parent() ) ) );
Expand Down

0 comments on commit f3bf350

Please sign in to comment.