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``.
.. 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
QStringList path() const;

View File

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

View File

@ -142,6 +142,22 @@ class CORE_EXPORT QgsProviderSublayerDetails
*/
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.
*
@ -250,6 +266,7 @@ class CORE_EXPORT QgsProviderSublayerDetails
QString mGeometryColumnName;
QStringList mPath;
QgsWkbTypes::Type mWkbType = QgsWkbTypes::Unknown;
QString mDriverName;
};

View File

@ -69,6 +69,9 @@ class TestQgsProviderSublayerDetails(unittest.TestCase):
d.setLayerNumber(13)
self.assertEqual(d.layerNumber(), 13)
d.setDriverName('drv')
self.assertEqual(d.driverName(), 'drv')
def test_equality(self):
"""
Test equality operator
@ -116,10 +119,19 @@ class TestQgsProviderSublayerDetails(unittest.TestCase):
self.assertEqual(d, d2)
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)
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):
"""