@@ -40,33 +40,9 @@ QgsVectorLayer *QgsNewMemoryLayerDialog::runAndCreateLayer( QWidget *parent )
4040
4141 QgsWkbTypes::Type geometrytype = dialog.selectedType ();
4242
43- QString geomType;
44- switch ( geometrytype )
45- {
46- case QgsWkbTypes::Point:
47- geomType = QStringLiteral ( " point" );
48- break ;
49- case QgsWkbTypes::LineString:
50- geomType = QStringLiteral ( " linestring" );
51- break ;
52- case QgsWkbTypes::Polygon:
53- geomType = QStringLiteral ( " polygon" );
54- break ;
55- case QgsWkbTypes::MultiPoint:
56- geomType = QStringLiteral ( " multipoint" );
57- break ;
58- case QgsWkbTypes::MultiLineString:
59- geomType = QStringLiteral ( " multilinestring" );
60- break ;
61- case QgsWkbTypes::MultiPolygon:
62- geomType = QStringLiteral ( " multipolygon" );
63- break ;
64- case QgsWkbTypes::NoGeometry:
65- geomType = QStringLiteral ( " none" );
66- break ;
67- default :
68- geomType = QStringLiteral ( " point" );
69- }
43+ QString geomType = QgsWkbTypes::displayString (geometrytype);
44+ if ( geomType.isNull ())
45+ geomType = " none" ;
7046
7147 QString layerProperties = QStringLiteral ( " %1?" ).arg ( geomType );
7248 if ( QgsWkbTypes::NoGeometry != geometrytype )
@@ -103,35 +79,40 @@ QgsNewMemoryLayerDialog::~QgsNewMemoryLayerDialog()
10379
10480QgsWkbTypes::Type QgsNewMemoryLayerDialog::selectedType () const
10581{
82+ QgsWkbTypes::Type wkbType = QgsWkbTypes::Unknown;
10683 if ( !buttonGroupGeometry->isChecked () )
10784 {
108- return QgsWkbTypes::NoGeometry;
85+ wkbType = QgsWkbTypes::NoGeometry;
10986 }
11087 else if ( mPointRadioButton ->isChecked () )
11188 {
112- return QgsWkbTypes::Point;
89+ wkbType = QgsWkbTypes::Point;
11390 }
11491 else if ( mLineRadioButton ->isChecked () )
11592 {
116- return QgsWkbTypes::LineString;
93+ wkbType = QgsWkbTypes::LineString;
11794 }
11895 else if ( mPolygonRadioButton ->isChecked () )
11996 {
120- return QgsWkbTypes::Polygon;
97+ wkbType = QgsWkbTypes::Polygon;
12198 }
12299 else if ( mMultiPointRadioButton ->isChecked () )
123100 {
124- return QgsWkbTypes::MultiPoint;
101+ wkbType = QgsWkbTypes::MultiPoint;
125102 }
126103 else if ( mMultiLineRadioButton ->isChecked () )
127104 {
128- return QgsWkbTypes::MultiLineString;
105+ wkbType = QgsWkbTypes::MultiLineString;
129106 }
130107 else if ( mMultiPolygonRadioButton ->isChecked () )
131108 {
132- return QgsWkbTypes::MultiPolygon;
109+ wkbType = QgsWkbTypes::MultiPolygon;
133110 }
134- return QgsWkbTypes::Unknown;
111+
112+ if (mGeometryWithZCheckBox ->isChecked () && wkbType != QgsWkbTypes::Unknown && wkbType != QgsWkbTypes::NoGeometry)
113+ wkbType = QgsWkbTypes::to25D (wkbType);
114+
115+ return wkbType;
135116}
136117
137118QgsCoordinateReferenceSystem QgsNewMemoryLayerDialog::crs () const
0 commit comments