Add driver name to QgsProviderSublayerDetails

This commit is contained in:
Nyall Dawson 2021-07-21 14:04:35 +10:00
parent 8b1c8d10e8
commit 6c2d7bd7c9
4 changed files with 49 additions and 3 deletions

View File

@ -121,6 +121,22 @@ Returns the layer's description.
Sets the layer's ``description``. Sets the layer's ``description``.
.. seealso:: :py:func:`description` .. seealso:: :py:func:`description`
%End
QString driverName() const;
%Docstring
Returns the layer's driver name.
This is supported only for providers which handle multiple drivers.
.. seealso:: :py:func:`setDriverName`
%End
void setDriverName( const QString &driver );
%Docstring
Sets the layer's ``driver`` name.
.. seealso:: :py:func:`driverName`
%End %End
QStringList path() const; QStringList path() const;

View File

@ -37,7 +37,8 @@ bool QgsProviderSublayerDetails::operator==( const QgsProviderSublayerDetails &o
&& mFeatureCount == other.mFeatureCount && mFeatureCount == other.mFeatureCount
&& mGeometryColumnName == other.mGeometryColumnName && mGeometryColumnName == other.mGeometryColumnName
&& mPath == other.mPath && mPath == other.mPath
&& mWkbType == other.mWkbType; && mWkbType == other.mWkbType
&& mDriverName == other.mDriverName;
} }
bool QgsProviderSublayerDetails::operator!=( const QgsProviderSublayerDetails &other ) const bool QgsProviderSublayerDetails::operator!=( const QgsProviderSublayerDetails &other ) const

View File

@ -142,6 +142,22 @@ class CORE_EXPORT QgsProviderSublayerDetails
*/ */
void setDescription( const QString &description ) { mDescription = description; } void setDescription( const QString &description ) { mDescription = description; }
/**
* Returns the layer's driver name.
*
* This is supported only for providers which handle multiple drivers.
*
* \see setDriverName()
*/
QString driverName() const { return mDriverName; }
/**
* Sets the layer's \a driver name.
*
* \see driverName()
*/
void setDriverName( const QString &driver ) { mDriverName = driver; }
/** /**
* Returns the path to the sublayer. * Returns the path to the sublayer.
* *
@ -250,6 +266,7 @@ class CORE_EXPORT QgsProviderSublayerDetails
QString mGeometryColumnName; QString mGeometryColumnName;
QStringList mPath; QStringList mPath;
QgsWkbTypes::Type mWkbType = QgsWkbTypes::Unknown; QgsWkbTypes::Type mWkbType = QgsWkbTypes::Unknown;
QString mDriverName;
}; };

View File

@ -69,6 +69,9 @@ class TestQgsProviderSublayerDetails(unittest.TestCase):
d.setLayerNumber(13) d.setLayerNumber(13)
self.assertEqual(d.layerNumber(), 13) self.assertEqual(d.layerNumber(), 13)
d.setDriverName('drv')
self.assertEqual(d.driverName(), 'drv')
def test_equality(self): def test_equality(self):
""" """
Test equality operator Test equality operator
@ -116,10 +119,19 @@ class TestQgsProviderSublayerDetails(unittest.TestCase):
self.assertEqual(d, d2) self.assertEqual(d, d2)
d.setGeometryColumnName('geom_col') d.setGeometryColumnName('geom_col')
self.assertEqual(d.geometryColumnName(), 'geom_col') self.assertNotEqual(d, d2)
d2.setGeometryColumnName('geom_col')
self.assertEqual(d, d2)
d.setLayerNumber(13) d.setLayerNumber(13)
self.assertEqual(d.layerNumber(), 13) self.assertNotEqual(d, d2)
d2.setLayerNumber(13)
self.assertEqual(d, d2)
d.setDriverName('drv')
self.assertNotEqual(d, d2)
d2.setDriverName('drv')
self.assertEqual(d, d2)
def test_to_layer(self): def test_to_layer(self):
""" """