Skip to content

Commit fa78ccf

Browse files
author
Hugo Mercier
committed
Deprecate old WkbType in QgsDataSourceUri
1 parent e2123c7 commit fa78ccf

10 files changed

+101
-24
lines changed

python/core/qgsdatasourceuri.sip

+13-2
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,19 @@ class QgsDataSourceURI
126126
QString keyColumn() const;
127127
void setKeyColumn( const QString& column );
128128

129-
QGis::WkbType wkbType() const;
130-
void setWkbType( QGis::WkbType type );
129+
/** The (old) wkb type.
130+
@deprecated Will return QgsWKBTypes::Type in 3.0. Prefer newWkbType() in the meantime */
131+
QGis::WkbType wkbType() const /Deprecated/;
132+
133+
/** The wkb type.
134+
@note Will be removed in 3.0 */
135+
QgsWKBTypes::Type newWkbType() const;
136+
137+
//! @deprecated See setWkbType( QgsWKBTypes::Type )
138+
void setWkbType( QGis::WkbType type ) /Deprecated/;
139+
140+
//! Sets the wkb type
141+
void setWkbType( QgsWKBTypes::Type type );
131142

132143
QString srid() const;
133144
void setSrid( const QString& srid );

src/core/qgsdatasourceuri.cpp

+15-5
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ QgsDataSourceURI::QgsDataSourceURI()
3030
, mKeyColumn( "" )
3131
, mUseEstimatedMetadata( false )
3232
, mSelectAtIdDisabled( false )
33-
, mWkbType( QGis::WKBUnknown )
33+
, mWkbType( QgsWKBTypes::Unknown )
3434
{
3535
// do nothing
3636
}
@@ -40,7 +40,7 @@ QgsDataSourceURI::QgsDataSourceURI( QString uri )
4040
, mKeyColumn( "" )
4141
, mUseEstimatedMetadata( false )
4242
, mSelectAtIdDisabled( false )
43-
, mWkbType( QGis::WKBUnknown )
43+
, mWkbType( QgsWKBTypes::Unknown )
4444
{
4545
int i = 0;
4646
while ( i < uri.length() )
@@ -139,7 +139,7 @@ QgsDataSourceURI::QgsDataSourceURI( QString uri )
139139
}
140140
else if ( pname == "type" )
141141
{
142-
mWkbType = QGis::fromNewWkbType( QgsWKBTypes::parseType( pval ) );
142+
mWkbType = QgsWKBTypes::parseType( pval );
143143
}
144144
else if ( pname == "selectatid" )
145145
{
@@ -540,10 +540,10 @@ QString QgsDataSourceURI::uri( bool expandAuthConfig ) const
540540
theUri += QString( " srid=%1" ).arg( mSrid );
541541
}
542542

543-
if ( mWkbType != QGis::WKBUnknown && mWkbType != QGis::WKBNoGeometry )
543+
if ( mWkbType != QgsWKBTypes::Unknown && mWkbType != QgsWKBTypes::NoGeometry )
544544
{
545545
theUri += " type=";
546-
theUri += QgsWKBTypes::displayString( QgsWKBTypes::Type( mWkbType ) );
546+
theUri += QgsWKBTypes::displayString( mWkbType );
547547
}
548548

549549
if ( mSelectAtIdDisabled )
@@ -671,11 +671,21 @@ void QgsDataSourceURI::setDatabase( const QString &database )
671671
}
672672

673673
QGis::WkbType QgsDataSourceURI::wkbType() const
674+
{
675+
return QGis::fromNewWkbType( mWkbType );
676+
}
677+
678+
QgsWKBTypes::Type QgsDataSourceURI::newWkbType() const
674679
{
675680
return mWkbType;
676681
}
677682

678683
void QgsDataSourceURI::setWkbType( QGis::WkbType wkbType )
684+
{
685+
mWkbType = QGis::fromOldWkbType( wkbType );
686+
}
687+
688+
void QgsDataSourceURI::setWkbType( QgsWKBTypes::Type wkbType )
679689
{
680690
mWkbType = wkbType;
681691
}

src/core/qgsdatasourceuri.h

+40-3
Original file line numberDiff line numberDiff line change
@@ -125,42 +125,79 @@ class CORE_EXPORT QgsDataSourceURI
125125

126126
//! Any associated authentication configuration ID
127127
QString authConfigId() const;
128+
129+
//! Returns the username
128130
QString username() const;
131+
132+
//! Returns the schema
129133
QString schema() const;
134+
135+
//! Returns the table
130136
QString table() const;
137+
138+
//! Returns the SQL query
131139
QString sql() const;
140+
141+
//! Return the name of the geometry column
132142
QString geometryColumn() const;
133143

134144
//! set use Estimated Metadata
135145
void setUseEstimatedMetadata( bool theFlag );
146+
147+
//! Returns true if estimated metadata are used
136148
bool useEstimatedMetadata() const;
137149

150+
//! Set to true to disable selection by id
138151
void disableSelectAtId( bool theFlag );
152+
//! Returns whether the selection by id is disabled
139153
bool selectAtIdDisabled() const;
140154

155+
//! Clears the schema
141156
void clearSchema();
142157

143158
//! set the table schema
144159
// @note added in 2.11
145160
void setSchema( const QString& schema );
146161

162+
//! Sets the SQL query
147163
void setSql( const QString& sql );
148164

165+
//! Returns the host
149166
QString host() const;
167+
//! Returns the database
150168
QString database() const;
169+
//! Returns the port
151170
QString port() const;
171+
//! Returns the password
152172
QString password() const;
173+
//! Returns the SSL mode
153174
enum SSLmode sslMode() const;
154175

176+
//! Returns the service name
155177
QString service() const;
156178

179+
//! Returns the name of the (primary) key column
157180
QString keyColumn() const;
181+
//! Sets the name of the (primary) key column
158182
void setKeyColumn( const QString& column );
159183

160-
QGis::WkbType wkbType() const;
161-
void setWkbType( QGis::WkbType type );
184+
/** The (old) wkb type.
185+
@deprecated Will return QgsWKBTypes::Type in 3.0. Prefer newWkbType() in the meantime */
186+
Q_DECL_DEPRECATED QGis::WkbType wkbType() const;
187+
188+
/** The wkb type.
189+
@note Will be removed in 3.0 */
190+
QgsWKBTypes::Type newWkbType() const;
191+
192+
//! @deprecated See setWkbType( QgsWKBTypes::Type )
193+
Q_DECL_DEPRECATED void setWkbType( QGis::WkbType type );
194+
195+
//! Sets the wkb type
196+
void setWkbType( QgsWKBTypes::Type type );
162197

198+
//! Returns the srid
163199
QString srid() const;
200+
//! Sets the srid
164201
void setSrid( const QString& srid );
165202

166203
private:
@@ -201,7 +238,7 @@ class CORE_EXPORT QgsDataSourceURI
201238
//! Disable SelectAtId capability (eg. to trigger the attribute table memory model for expensive views)
202239
bool mSelectAtIdDisabled;
203240
//! geometry type (or QGis::WKBUnknown if not specified)
204-
QGis::WkbType mWkbType;
241+
QgsWKBTypes::Type mWkbType;
205242
//! SRID or a null string if not specified
206243
QString mSrid;
207244
//! Generic params store

src/providers/mssql/qgsmssqldataitems.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ QString QgsMssqlLayerItem::createUri()
505505
QgsDataSourceURI uri = QgsDataSourceURI( connItem->connInfo() );
506506
uri.setDataSource( mLayerProperty.schemaName, mLayerProperty.tableName, mLayerProperty.geometryColName, mLayerProperty.sql, pkColName );
507507
uri.setSrid( mLayerProperty.srid );
508-
uri.setWkbType( QgsMssqlTableModel::wkbTypeFromMssql( mLayerProperty.type ) );
508+
uri.setWkbType( QGis::fromOldWkbType( QgsMssqlTableModel::wkbTypeFromMssql( mLayerProperty.type ) ) );
509509
QgsDebugMsg( QString( "layer uri: %1" ).arg( uri.uri() ) );
510510
return uri.uri();
511511
}

src/providers/mssql/qgsmssqlprovider.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ QgsMssqlProvider::QgsMssqlProvider( const QString& uri )
6666
else
6767
mSRId = -1;
6868

69-
mWkbType = anUri.wkbType();
69+
mWkbType = QGis::fromNewWkbType( anUri.newWkbType() );
7070

7171
mValid = true;
7272

src/providers/mssql/qgsmssqltablemodel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ QString QgsMssqlTableModel::layerURI( const QModelIndex &index, const QString &c
393393
QgsDataSourceURI uri( connInfo );
394394
uri.setDataSource( schemaName, tableName, geomColumnName, sql, pkColumnName );
395395
uri.setUseEstimatedMetadata( useEstimatedMetadata );
396-
uri.setWkbType( wkbType );
396+
uri.setWkbType( QGis::fromOldWkbType( wkbType ) );
397397
uri.setSrid( srid );
398398
uri.disableSelectAtId( !selectAtId );
399399

src/providers/postgres/qgspgtablemodel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ QString QgsPgTableModel::layerURI( const QModelIndex &index, const QString& conn
372372

373373
uri.setDataSource( schemaName, tableName, geomColumnName, sql, cols.join( "," ) );
374374
uri.setUseEstimatedMetadata( useEstimatedMetadata );
375-
uri.setWkbType( wkbType );
375+
uri.setWkbType( QGis::fromOldWkbType( wkbType ) );
376376
uri.setSrid( srid );
377377
uri.disableSelectAtId( !selectAtId );
378378

src/providers/postgres/qgspostgresdataitems.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,8 @@ QString QgsPGLayerItem::createUri()
449449

450450
QgsDataSourceURI uri( QgsPostgresConn::connUri( connItem->name() ).connectionInfo( false ) );
451451
uri.setDataSource( mLayerProperty.schemaName, mLayerProperty.tableName, mLayerProperty.geometryColName, mLayerProperty.sql, pkColName );
452-
uri.setWkbType( mLayerProperty.types[0] );
453-
if ( uri.wkbType() != QGis::WKBNoGeometry )
452+
uri.setWkbType( QGis::fromOldWkbType( mLayerProperty.types[0] ) );
453+
if ( uri.newWkbType() != QgsWKBTypes::NoGeometry )
454454
uri.setSrid( QString::number( mLayerProperty.srids[0] ) );
455455
QgsDebugMsg( QString( "layer uri: %1" ).arg( uri.uri( false ) ) );
456456
return uri.uri( false );

src/providers/postgres/qgspostgresprovider.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ QgsPostgresProvider::QgsPostgresProvider( QString const & uri )
6969
mGeometryColumn = mUri.geometryColumn();
7070
mSqlWhereClause = mUri.sql();
7171
mRequestedSrid = mUri.srid();
72-
mRequestedGeomType = mUri.wkbType();
72+
mRequestedGeomType = QGis::fromNewWkbType( mUri.newWkbType() );
7373

7474
if ( mSchemaName.isEmpty() && mTableName.startsWith( '(' ) && mTableName.endsWith( ')' ) )
7575
{

tests/src/core/testqgsdatasourceuri.cpp

+26-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/***************************************************************************
2-
testqgsrectangle.cpp
2+
testqgsdatasourceuri.cpp
33
--------------------------------------
44
Date : Thu Apr 16 2015
55
Copyright : (C) 2015 by Sandro Mani
@@ -18,7 +18,7 @@
1818
//header for class being tested
1919
#include <qgsdatasourceuri.h>
2020

21-
Q_DECLARE_METATYPE( QGis::WkbType )
21+
Q_DECLARE_METATYPE( QgsWKBTypes::Type )
2222
Q_DECLARE_METATYPE( QgsDataSourceURI::SSLmode )
2323

2424
class TestQgsDataSourceUri: public QObject
@@ -37,7 +37,7 @@ void TestQgsDataSourceUri::checkparser_data()
3737
QTest::addColumn<QString>( "key" );
3838
QTest::addColumn<bool>( "estimatedmetadata" );
3939
QTest::addColumn<QString>( "srid" );
40-
QTest::addColumn<QGis::WkbType>( "type" );
40+
QTest::addColumn<QgsWKBTypes::Type>( "type" );
4141
QTest::addColumn<bool>( "selectatid" );
4242
QTest::addColumn<QString>( "service" );
4343
QTest::addColumn<QString>( "user" );
@@ -56,7 +56,7 @@ void TestQgsDataSourceUri::checkparser_data()
5656
<< "" // key
5757
<< true // estimatedmetadata
5858
<< "1000003007" // srid
59-
<< QGis::WKBUnknown // type
59+
<< QgsWKBTypes::Unknown // type
6060
<< false // selectatid
6161
<< "" // service
6262
<< "myname" // user
@@ -76,7 +76,7 @@ void TestQgsDataSourceUri::checkparser_data()
7676
<< "" // key
7777
<< false // estimatedmetadata
7878
<< "" // srid
79-
<< QGis::WKBUnknown // type
79+
<< QgsWKBTypes::Unknown // type
8080
<< false // selectatid
8181
<< "" // service
8282
<< "myname" // user
@@ -89,6 +89,25 @@ void TestQgsDataSourceUri::checkparser_data()
8989
<< "" // myparam
9090
;
9191

92+
QTest::newRow( "pgmlsz" )
93+
<< "PG: dbname=mydb host=myhost user=myname password=mypasswd port=5432 mode=2 schema=public column=geom table=mytable type=MultiLineStringZ"
94+
<< "mytable" // table
95+
<< "" // geometrycolumn
96+
<< "" // key
97+
<< false // estimatedmetadata
98+
<< "" // srid
99+
<< QgsWKBTypes::MultiLineStringZ // type
100+
<< false // selectatid
101+
<< "" // service
102+
<< "myname" // user
103+
<< "mypasswd" // password
104+
<< "mydb" // dbname
105+
<< "myhost" // host
106+
<< "5432" // port
107+
<< QgsDataSourceURI::SSLprefer // sslmode
108+
<< "" // sql
109+
<< "" // myparam
110+
;
92111
}
93112

94113
void TestQgsDataSourceUri::checkparser()
@@ -99,7 +118,7 @@ void TestQgsDataSourceUri::checkparser()
99118
QFETCH( QString, key );
100119
QFETCH( bool, estimatedmetadata );
101120
QFETCH( QString, srid );
102-
QFETCH( QGis::WkbType, type );
121+
QFETCH( QgsWKBTypes::Type, type );
103122
QFETCH( bool, selectatid );
104123
QFETCH( QString, service );
105124
QFETCH( QString, user );
@@ -117,7 +136,7 @@ void TestQgsDataSourceUri::checkparser()
117136
QCOMPARE( ds.keyColumn(), key );
118137
QCOMPARE( ds.useEstimatedMetadata(), estimatedmetadata );
119138
QCOMPARE( ds.srid(), srid );
120-
QCOMPARE( ds.wkbType(), type );
139+
QCOMPARE( ds.newWkbType(), type );
121140
QCOMPARE( ds.selectAtIdDisabled(), selectatid );
122141
QCOMPARE( ds.service(), service );
123142
QCOMPARE( ds.username(), user );

0 commit comments

Comments
 (0)