Skip to content

Commit 010cb15

Browse files
authoredDec 9, 2017
Merge pull request #5819 from nyalldawson/dialogs
New layer dialog improvements
2 parents fb28adf + a603a3d commit 010cb15

9 files changed

+397
-112
lines changed
 

‎src/gui/qgsnewgeopackagelayerdialog.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,18 @@ QgsNewGeoPackageLayerDialog::QgsNewGeoPackageLayerDialog( QWidget *parent, Qt::W
6868
mGeometryTypeBox->addItem( tr( "Point" ), wkbPoint );
6969
mGeometryTypeBox->addItem( tr( "Line" ), wkbLineString );
7070
mGeometryTypeBox->addItem( tr( "Polygon" ), wkbPolygon );
71-
mGeometryTypeBox->addItem( tr( "Multi point" ), wkbMultiPoint );
72-
mGeometryTypeBox->addItem( tr( "Multi line" ), wkbMultiLineString );
73-
mGeometryTypeBox->addItem( tr( "Multi polygon" ), wkbMultiPolygon );
71+
mGeometryTypeBox->addItem( tr( "MultiPoint" ), wkbMultiPoint );
72+
mGeometryTypeBox->addItem( tr( "MultiLine" ), wkbMultiLineString );
73+
mGeometryTypeBox->addItem( tr( "MultiPolygon" ), wkbMultiPolygon );
7474

7575
#if 0
7676
// QGIS always create CompoundCurve and there's no real interest of having just CircularString. CompoundCurve are more useful
77-
mGeometryTypeBox->addItem( tr( "Circular string" ), wkbCircularString );
77+
mGeometryTypeBox->addItem( tr( "CircularString" ), wkbCircularString );
7878
#endif
79-
mGeometryTypeBox->addItem( tr( "Compound curve" ), wkbCompoundCurve );
80-
mGeometryTypeBox->addItem( tr( "Curve polygon" ), wkbCurvePolygon );
81-
mGeometryTypeBox->addItem( tr( "Multi curve" ), wkbMultiCurve );
82-
mGeometryTypeBox->addItem( tr( "Multi surface" ), wkbMultiSurface );
79+
mGeometryTypeBox->addItem( tr( "CompoundCurve" ), wkbCompoundCurve );
80+
mGeometryTypeBox->addItem( tr( "CurvePolygon" ), wkbCurvePolygon );
81+
mGeometryTypeBox->addItem( tr( "MultiCurve" ), wkbMultiCurve );
82+
mGeometryTypeBox->addItem( tr( "MultiSurface" ), wkbMultiSurface );
8383

8484
mGeometryWithZCheckBox->setEnabled( false );
8585
mGeometryWithMCheckBox->setEnabled( false );

‎src/gui/qgsnewmemorylayerdialog.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ QgsNewMemoryLayerDialog::QgsNewMemoryLayerDialog( QWidget *parent, Qt::WindowFla
5858
mGeometryTypeBox->addItem( tr( "Point" ), QgsWkbTypes::Point );
5959
mGeometryTypeBox->addItem( tr( "Line" ), QgsWkbTypes::LineString );
6060
mGeometryTypeBox->addItem( tr( "Polygon" ), QgsWkbTypes::Polygon );
61-
mGeometryTypeBox->addItem( tr( "Multi point" ), QgsWkbTypes::MultiPoint );
62-
mGeometryTypeBox->addItem( tr( "Multi line" ), QgsWkbTypes::MultiLineString );
63-
mGeometryTypeBox->addItem( tr( "Multi polygon" ), QgsWkbTypes::MultiPolygon );
61+
mGeometryTypeBox->addItem( tr( "MultiPoint" ), QgsWkbTypes::MultiPoint );
62+
mGeometryTypeBox->addItem( tr( "MultiLine" ), QgsWkbTypes::MultiLineString );
63+
mGeometryTypeBox->addItem( tr( "MultiPolygon" ), QgsWkbTypes::MultiPolygon );
6464

6565
mGeometryWithZCheckBox->setEnabled( false );
6666
mGeometryWithMCheckBox->setEnabled( false );
@@ -69,6 +69,7 @@ QgsNewMemoryLayerDialog::QgsNewMemoryLayerDialog( QWidget *parent, Qt::WindowFla
6969

7070
connect( mGeometryTypeBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsNewMemoryLayerDialog::geometryTypeChanged );
7171
connect( mButtonBox, &QDialogButtonBox::helpRequested, this, &QgsNewMemoryLayerDialog::showHelp );
72+
geometryTypeChanged( mGeometryTypeBox->currentIndex() );
7273
}
7374

7475
QgsNewMemoryLayerDialog::~QgsNewMemoryLayerDialog()

‎src/gui/qgsnewvectorlayerdialog.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,11 @@ QgsWkbTypes::Type QgsNewVectorLayerDialog::selectedType() const
167167
wkbType = static_cast<QgsWkbTypes::Type>
168168
( mGeometryTypeBox->currentData( Qt::UserRole ).toInt() );
169169

170-
if ( mGeometryWithZCheckBox->isChecked() && wkbType != QgsWkbTypes::Unknown )
171-
wkbType = QgsWkbTypes::to25D( wkbType );
170+
if ( mGeometryWithZCheckBox->isChecked() )
171+
wkbType = QgsWkbTypes::addZ( wkbType );
172+
173+
if ( mGeometryWithMCheckBox->isChecked() )
174+
wkbType = QgsWkbTypes::addM( wkbType );
172175

173176
return wkbType;
174177
}

‎src/providers/ogr/qgsogrdataitems.cpp

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -361,34 +361,23 @@ static QgsOgrLayerItem *dataItemForLayer( QgsDataItem *parentItem, QString name,
361361

362362
QgsLayerItem::LayerType layerType = QgsLayerItem::Vector;
363363
OGRwkbGeometryType ogrType = QgsOgrProvider::getOgrGeomType( hLayer );
364-
switch ( ogrType )
364+
QgsWkbTypes::Type wkbType = QgsOgrProviderUtils::qgisTypeFromOgrType( ogrType );
365+
switch ( QgsWkbTypes::geometryType( wkbType ) )
365366
{
366-
case wkbUnknown:
367-
case wkbGeometryCollection:
367+
case QgsWkbTypes::UnknownGeometry:
368368
break;
369-
case wkbNone:
369+
case QgsWkbTypes::NullGeometry:
370370
layerType = QgsLayerItem::TableLayer;
371371
break;
372-
case wkbPoint:
373-
case wkbMultiPoint:
374-
case wkbPoint25D:
375-
case wkbMultiPoint25D:
372+
case QgsWkbTypes::PointGeometry:
376373
layerType = QgsLayerItem::Point;
377374
break;
378-
case wkbLineString:
379-
case wkbMultiLineString:
380-
case wkbLineString25D:
381-
case wkbMultiLineString25D:
375+
case QgsWkbTypes::LineGeometry:
382376
layerType = QgsLayerItem::Line;
383377
break;
384-
case wkbPolygon:
385-
case wkbMultiPolygon:
386-
case wkbPolygon25D:
387-
case wkbMultiPolygon25D:
378+
case QgsWkbTypes::PolygonGeometry:
388379
layerType = QgsLayerItem::Polygon;
389380
break;
390-
default:
391-
break;
392381
}
393382

394383
QgsDebugMsgLevel( QString( "ogrType = %1 layertype = %2" ).arg( ogrType ).arg( layerType ), 2 );

0 commit comments

Comments
 (0)
Please sign in to comment.