Skip to content

Commit bac80aa

Browse files
DelazJnirvn
authored andcommitted
[need-docs] Reorganize the new memory layer (#5804)
1 parent 571bf54 commit bac80aa

File tree

3 files changed

+76
-129
lines changed

3 files changed

+76
-129
lines changed

src/gui/qgsnewmemorylayerdialog.cpp

+30-34
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,20 @@ QgsNewMemoryLayerDialog::QgsNewMemoryLayerDialog( QWidget *parent, Qt::WindowFla
5454
QgsSettings settings;
5555
restoreGeometry( settings.value( QStringLiteral( "Windows/NewMemoryLayer/geometry" ) ).toByteArray() );
5656

57-
mPointRadioButton->setChecked( true );
57+
mGeometryTypeBox->addItem( tr( "Non spatial" ), QgsWkbTypes::NoGeometry );
58+
mGeometryTypeBox->addItem( tr( "Point" ), QgsWkbTypes::Point );
59+
mGeometryTypeBox->addItem( tr( "Line" ), QgsWkbTypes::LineString );
60+
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 );
64+
65+
mGeometryWithZCheckBox->setEnabled( false );
66+
mGeometryWithMCheckBox->setEnabled( false );
67+
5868
mNameLineEdit->setText( tr( "New scratch layer" ) );
5969

70+
connect( mGeometryTypeBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsNewMemoryLayerDialog::geometryTypeChanged );
6071
connect( mButtonBox, &QDialogButtonBox::helpRequested, this, &QgsNewMemoryLayerDialog::showHelp );
6172
}
6273

@@ -68,45 +79,30 @@ QgsNewMemoryLayerDialog::~QgsNewMemoryLayerDialog()
6879

6980
QgsWkbTypes::Type QgsNewMemoryLayerDialog::selectedType() const
7081
{
71-
QgsWkbTypes::Type wkbType = QgsWkbTypes::Unknown;
72-
if ( !buttonGroupGeometry->isChecked() )
73-
{
74-
wkbType = QgsWkbTypes::NoGeometry;
75-
}
76-
else if ( mPointRadioButton->isChecked() )
77-
{
78-
wkbType = QgsWkbTypes::Point;
79-
}
80-
else if ( mLineRadioButton->isChecked() )
81-
{
82-
wkbType = QgsWkbTypes::LineString;
83-
}
84-
else if ( mPolygonRadioButton->isChecked() )
85-
{
86-
wkbType = QgsWkbTypes::Polygon;
87-
}
88-
else if ( mMultiPointRadioButton->isChecked() )
89-
{
90-
wkbType = QgsWkbTypes::MultiPoint;
91-
}
92-
else if ( mMultiLineRadioButton->isChecked() )
93-
{
94-
wkbType = QgsWkbTypes::MultiLineString;
95-
}
96-
else if ( mMultiPolygonRadioButton->isChecked() )
97-
{
98-
wkbType = QgsWkbTypes::MultiPolygon;
99-
}
82+
QgsWkbTypes::Type geomType = QgsWkbTypes::Unknown;
83+
geomType = static_cast<QgsWkbTypes::Type>
84+
( mGeometryTypeBox->currentData( Qt::UserRole ).toInt() );
10085

101-
if ( wkbType != QgsWkbTypes::Unknown && wkbType != QgsWkbTypes::NoGeometry )
86+
if ( geomType != QgsWkbTypes::Unknown && geomType != QgsWkbTypes::NoGeometry )
10287
{
10388
if ( mGeometryWithZCheckBox->isChecked() )
104-
wkbType = QgsWkbTypes::addZ( wkbType );
89+
geomType = QgsWkbTypes::addZ( geomType );
10590
if ( mGeometryWithMCheckBox->isChecked() )
106-
wkbType = QgsWkbTypes::addM( wkbType );
91+
geomType = QgsWkbTypes::addM( geomType );
10792
}
10893

109-
return wkbType;
94+
return geomType;
95+
}
96+
97+
void QgsNewMemoryLayerDialog::geometryTypeChanged( int )
98+
{
99+
QgsWkbTypes::Type geomType = static_cast<QgsWkbTypes::Type>
100+
( mGeometryTypeBox->currentData( Qt::UserRole ).toInt() );
101+
102+
bool isSpatial = geomType != QgsWkbTypes::NoGeometry;
103+
mGeometryWithZCheckBox->setEnabled( isSpatial );
104+
mGeometryWithMCheckBox->setEnabled( isSpatial );
105+
mCrsSelector->setEnabled( isSpatial );
110106
}
111107

112108
void QgsNewMemoryLayerDialog::setCrs( const QgsCoordinateReferenceSystem &crs )

src/gui/qgsnewmemorylayerdialog.h

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class GUI_EXPORT QgsNewMemoryLayerDialog: public QDialog, private Ui::QgsNewMemo
7171

7272
private slots:
7373

74+
void geometryTypeChanged( int index );
7475
void showHelp();
7576
};
7677

src/ui/qgsnewmemorylayerdialogbase.ui

+45-95
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>444</width>
10-
<height>304</height>
10+
<height>233</height>
1111
</rect>
1212
</property>
1313
<property name="sizePolicy">
@@ -24,100 +24,54 @@
2424
</property>
2525
<layout class="QVBoxLayout" name="verticalLayout">
2626
<item>
27-
<widget class="QGroupBox" name="buttonGroupGeometry">
28-
<property name="title">
29-
<string>Geometry type and CRS</string>
30-
</property>
31-
<property name="checkable">
32-
<bool>true</bool>
33-
</property>
34-
<layout class="QVBoxLayout" name="verticalLayout_2">
35-
<item>
36-
<layout class="QGridLayout" name="gridLayout">
37-
<item row="1" column="0">
38-
<widget class="QRadioButton" name="mMultiPointRadioButton">
39-
<property name="text">
40-
<string>Multipoint</string>
41-
</property>
42-
</widget>
43-
</item>
44-
<item row="1" column="2">
45-
<widget class="QRadioButton" name="mMultiPolygonRadioButton">
46-
<property name="text">
47-
<string>Multipolygon</string>
48-
</property>
49-
</widget>
50-
</item>
51-
<item row="0" column="2">
52-
<widget class="QRadioButton" name="mPolygonRadioButton">
53-
<property name="text">
54-
<string>Polygon</string>
55-
</property>
56-
</widget>
57-
</item>
58-
<item row="0" column="0">
59-
<widget class="QRadioButton" name="mPointRadioButton">
60-
<property name="text">
61-
<string>Point</string>
62-
</property>
63-
</widget>
64-
</item>
65-
<item row="0" column="1">
66-
<widget class="QRadioButton" name="mLineRadioButton">
67-
<property name="text">
68-
<string>Line</string>
69-
</property>
70-
</widget>
71-
</item>
72-
<item row="1" column="1">
73-
<widget class="QRadioButton" name="mMultiLineRadioButton">
74-
<property name="text">
75-
<string>Multiline</string>
76-
</property>
77-
</widget>
78-
</item>
79-
</layout>
80-
</item>
81-
<item>
82-
<layout class="QHBoxLayout" name="horizontalLayout_21">
83-
<item>
84-
<widget class="QCheckBox" name="mGeometryWithZCheckBox">
85-
<property name="text">
86-
<string>Include Z dimension</string>
87-
</property>
88-
</widget>
89-
</item>
90-
<item>
91-
<widget class="QCheckBox" name="mGeometryWithMCheckBox">
92-
<property name="text">
93-
<string>Include M values</string>
94-
</property>
95-
</widget>
96-
</item>
97-
</layout>
98-
</item>
99-
<item>
100-
<widget class="QgsProjectionSelectionWidget" name="mCrsSelector" native="true">
101-
<property name="focusPolicy">
102-
<enum>Qt::StrongFocus</enum>
103-
</property>
104-
</widget>
105-
</item>
106-
</layout>
107-
</widget>
108-
</item>
109-
<item>
110-
<layout class="QHBoxLayout" name="horizontalLayout_2">
111-
<item>
27+
<layout class="QGridLayout" name="gridLayout">
28+
<item row="2" column="2">
29+
<widget class="QCheckBox" name="mGeometryWithMCheckBox">
30+
<property name="text">
31+
<string>Include M values</string>
32+
</property>
33+
</widget>
34+
</item>
35+
<item row="1" column="0">
36+
<widget class="QLabel" name="label_3">
37+
<property name="text">
38+
<string>Geometry type</string>
39+
</property>
40+
</widget>
41+
</item>
42+
<item row="0" column="0">
11243
<widget class="QLabel" name="label">
11344
<property name="text">
11445
<string>Layer name</string>
11546
</property>
11647
</widget>
11748
</item>
118-
<item>
49+
<item row="2" column="1">
50+
<widget class="QCheckBox" name="mGeometryWithZCheckBox">
51+
<property name="text">
52+
<string>Include Z dimension</string>
53+
</property>
54+
</widget>
55+
</item>
56+
<item row="1" column="1" colspan="2">
57+
<widget class="QComboBox" name="mGeometryTypeBox"/>
58+
</item>
59+
<item row="0" column="1" colspan="2">
11960
<widget class="QLineEdit" name="mNameLineEdit"/>
12061
</item>
62+
<item row="3" column="0" colspan="3">
63+
<widget class="QgsProjectionSelectionWidget" name="mCrsSelector" native="true">
64+
<property name="minimumSize">
65+
<size>
66+
<width>0</width>
67+
<height>0</height>
68+
</size>
69+
</property>
70+
<property name="focusPolicy">
71+
<enum>Qt::StrongFocus</enum>
72+
</property>
73+
</widget>
74+
</item>
12175
</layout>
12276
</item>
12377
<item>
@@ -168,15 +122,11 @@
168122
</customwidget>
169123
</customwidgets>
170124
<tabstops>
171-
<tabstop>buttonGroupGeometry</tabstop>
172-
<tabstop>mPointRadioButton</tabstop>
173-
<tabstop>mLineRadioButton</tabstop>
174-
<tabstop>mPolygonRadioButton</tabstop>
175-
<tabstop>mMultiPointRadioButton</tabstop>
176-
<tabstop>mMultiLineRadioButton</tabstop>
177-
<tabstop>mMultiPolygonRadioButton</tabstop>
178-
<tabstop>mCrsSelector</tabstop>
179125
<tabstop>mNameLineEdit</tabstop>
126+
<tabstop>mGeometryTypeBox</tabstop>
127+
<tabstop>mGeometryWithZCheckBox</tabstop>
128+
<tabstop>mGeometryWithMCheckBox</tabstop>
129+
<tabstop>mCrsSelector</tabstop>
180130
</tabstops>
181131
<resources/>
182132
<connections>

0 commit comments

Comments
 (0)