Skip to content

Commit 79d761d

Browse files
committedJun 28, 2018
change mesh UI to tabs instead of collapsible groups
1 parent c971ab9 commit 79d761d

13 files changed

+1005
-214
lines changed
 

‎images/images.qrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,9 @@
518518
<file>themes/default/propertyicons/labeltext.svg</file>
519519
<file>themes/default/propertyicons/locale.svg</file>
520520
<file>themes/default/propertyicons/map_tools.svg</file>
521+
<file>themes/default/propertyicons/meshcontours.svg</file>
522+
<file>themes/default/propertyicons/meshframe.svg</file>
523+
<file>themes/default/propertyicons/meshvectors.svg</file>
521524
<file>themes/default/propertyicons/metadata.svg</file>
522525
<file>themes/default/propertyicons/network_and_proxy.svg</file>
523526
<file>themes/default/propertyicons/overlay.svg</file>
Lines changed: 170 additions & 0 deletions
Loading
Lines changed: 207 additions & 0 deletions
Loading
Lines changed: 213 additions & 0 deletions
Loading

‎src/app/mesh/qgsmeshdatasetgrouptreeview.cpp

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,44 @@ void QgsMeshDatasetGroupTreeView::syncToLayer()
281281

282282
mModel.setupModelData( mGroups.keys() );
283283

284-
if ( mGroups.size() > 0 )
285-
setCurrentIndex( mModel.index( 0, 0 ) );
284+
int index = setActiveGroupFromActiveDataset();
285+
286+
if ( mGroups.size() > index )
287+
setCurrentIndex( mModel.index( index, 0 ) );
288+
}
289+
290+
int QgsMeshDatasetGroupTreeView::setActiveGroupFromActiveDataset()
291+
{
292+
// find active dataset
293+
int activeDataset = -1;
294+
if ( mMeshLayer )
295+
{
296+
activeDataset = mMeshLayer->activeScalarDataset();
297+
if ( activeDataset == -1 )
298+
activeDataset = mMeshLayer->activeVectorDataset();
299+
}
300+
301+
// find group that contains active dataset
302+
int index = 0;
303+
if ( activeDataset > -1 )
304+
{
305+
for ( auto it = mGroups.constBegin(); it != mGroups.constEnd(); ++it )
306+
{
307+
int datasetIndex = it.value().indexOf( activeDataset );
308+
if ( datasetIndex > -1 )
309+
{
310+
mActiveGroup = it.key();
311+
return index;
312+
}
313+
else
314+
{
315+
++index;
316+
}
317+
}
318+
}
319+
320+
321+
// not found return first item in the list
322+
mActiveGroup = QString();
323+
return 0;
286324
}

‎src/app/mesh/qgsmeshdatasetgrouptreeview.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ class APP_EXPORT QgsMeshDatasetGroupTreeView : public QTreeView
126126

127127
private:
128128
void extractGroups();
129+
int setActiveGroupFromActiveDataset();
129130

130131
QgsMeshDatasetGroupTreeModel mModel;
131132
QgsMeshLayer *mMeshLayer = nullptr; // not owned

‎src/app/mesh/qgsmeshrendereractivedatasetwidget.cpp

Lines changed: 21 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ QgsMeshRendererActiveDatasetWidget::QgsMeshRendererActiveDatasetWidget( QWidget
2626
setupUi( this );
2727
connect( mDatasetGroupTreeView, &QgsMeshDatasetGroupTreeView::activeGroupChanged, this, &QgsMeshRendererActiveDatasetWidget::onActiveGroupChanged );
2828
connect( mDatasetSlider, &QSlider::valueChanged, this, &QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged );
29-
connect( mDisplayScalarsCheckBox, &QCheckBox::stateChanged, this, &QgsMeshRendererActiveDatasetWidget::onScalarChecked );
30-
connect( mDisplayVectorsCheckBox, &QCheckBox::stateChanged, this, &QgsMeshRendererActiveDatasetWidget::onVectorChecked );
31-
connect( mDisplayNativeMeshCheckBox, &QCheckBox::stateChanged, this, &QgsMeshRendererActiveDatasetWidget::onNativeMeshChecked );
32-
connect( mDisplayTriangularMeshCheckBox, &QCheckBox::stateChanged, this, &QgsMeshRendererActiveDatasetWidget::onTringularMeshChecked );
3329
}
3430

3531
void QgsMeshRendererActiveDatasetWidget::setLayer( QgsMeshLayer *layer )
@@ -39,40 +35,19 @@ void QgsMeshRendererActiveDatasetWidget::setLayer( QgsMeshLayer *layer )
3935
mMeshLayer = layer;
4036
}
4137

38+
mDatasetGroupTreeView->setLayer( layer );
4239
setEnabled( mMeshLayer );
4340
syncToLayer();
44-
45-
mDatasetGroupTreeView->setLayer( layer );
4641
}
4742

4843
int QgsMeshRendererActiveDatasetWidget::activeScalarDataset() const
4944
{
50-
if ( isEnabled() &&
51-
mDisplayScalarsCheckBox->isEnabled() &&
52-
mDisplayScalarsCheckBox->isChecked() )
53-
return datasetIndex();
54-
else
55-
return -1;
45+
return mActiveScalarDataset;
5646
}
5747

5848
int QgsMeshRendererActiveDatasetWidget::activeVectorDataset() const
5949
{
60-
if ( isEnabled() &&
61-
mDisplayVectorsCheckBox->isEnabled() &&
62-
mDisplayVectorsCheckBox->isChecked() )
63-
return datasetIndex();
64-
else
65-
return -1;
66-
}
67-
68-
bool QgsMeshRendererActiveDatasetWidget::isNativeMeshEnabled() const
69-
{
70-
return isEnabled() && mDisplayNativeMeshCheckBox->isChecked();
71-
}
72-
73-
bool QgsMeshRendererActiveDatasetWidget::isTriangularMeshEnabled() const
74-
{
75-
return isEnabled() && mDisplayTriangularMeshCheckBox->isChecked();
50+
return mActiveVectorDataset;
7651
}
7752

7853
void QgsMeshRendererActiveDatasetWidget::onActiveGroupChanged()
@@ -88,17 +63,16 @@ void QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged( int value )
8863
{
8964
int datasetIndex = -1;
9065
const QVector<int> datasets = mDatasetGroupTreeView->datasetsInActiveGroup();
91-
if ( datasets.size() < value || !mMeshLayer || !mMeshLayer->dataProvider() )
92-
{
93-
mDisplayScalarsCheckBox->setEnabled( false );
94-
mDisplayVectorsCheckBox->setEnabled( false );
95-
}
96-
else
66+
mActiveScalarDataset = -1;
67+
mActiveVectorDataset = -1;
68+
69+
if ( datasets.size() > value && mMeshLayer && mMeshLayer->dataProvider() )
9770
{
9871
datasetIndex = datasets[value];
9972
const QgsMeshDatasetMetadata meta = mMeshLayer->dataProvider()->datasetMetadata( datasetIndex );
100-
mDisplayScalarsCheckBox->setEnabled( true );
101-
mDisplayVectorsCheckBox->setEnabled( meta.isVector() );
73+
mActiveScalarDataset = datasetIndex;
74+
if ( meta.isVector() )
75+
mActiveVectorDataset = datasetIndex;
10276
}
10377

10478
updateMetadata( datasetIndex );
@@ -109,39 +83,11 @@ void QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged( int value )
10983
emit widgetChanged();
11084
}
11185

112-
void QgsMeshRendererActiveDatasetWidget::onScalarChecked( int toggle )
113-
{
114-
Q_UNUSED( toggle );
115-
emit activeScalarDatasetChanged( activeScalarDataset() );
116-
emit widgetChanged();
117-
}
118-
119-
void QgsMeshRendererActiveDatasetWidget::onVectorChecked( int toggle )
120-
{
121-
Q_UNUSED( toggle );
122-
emit activeVectorDatasetChanged( activeVectorDataset() );
123-
emit widgetChanged();
124-
}
125-
126-
void QgsMeshRendererActiveDatasetWidget::onNativeMeshChecked( int toggle )
127-
{
128-
Q_UNUSED( toggle );
129-
emit nativeMeshEnabledChanged( isNativeMeshEnabled() );
130-
emit widgetChanged();
131-
}
132-
133-
void QgsMeshRendererActiveDatasetWidget::onTringularMeshChecked( int toggle )
134-
{
135-
Q_UNUSED( toggle );
136-
emit triangularMeshEnabledChanged( isTriangularMeshEnabled() );
137-
emit widgetChanged();
138-
}
139-
14086
void QgsMeshRendererActiveDatasetWidget::updateMetadata( int datasetIndex )
14187
{
14288
if ( datasetIndex == -1 )
14389
{
144-
mActiveDatasetMetadata->setText( tr( "N/A" ) );
90+
mActiveDatasetMetadata->setText( tr( "No dataset selected" ) );
14591
}
14692
else
14793
{
@@ -186,9 +132,15 @@ void QgsMeshRendererActiveDatasetWidget::syncToLayer()
186132

187133
if ( mMeshLayer )
188134
{
189-
whileBlocking( mDisplayNativeMeshCheckBox )->setChecked( mMeshLayer->rendererNativeMeshSettings().isEnabled() );
190-
whileBlocking( mDisplayTriangularMeshCheckBox )->setChecked( mMeshLayer->rendererTriangularMeshSettings().isEnabled() );
191-
whileBlocking( mDisplayScalarsCheckBox )->setChecked( mMeshLayer->activeScalarDataset() != -1 );
192-
whileBlocking( mDisplayVectorsCheckBox )->setChecked( mMeshLayer->activeVectorDataset() != -1 );
135+
mActiveScalarDataset = mMeshLayer->activeScalarDataset();
136+
mActiveVectorDataset = mMeshLayer->activeVectorDataset();
193137
}
138+
else
139+
{
140+
mActiveScalarDataset = -1;
141+
mActiveVectorDataset = -1;
142+
}
143+
144+
if ( mActiveScalarDataset != -1 )
145+
whileBlocking( mDatasetSlider )->setValue( mActiveScalarDataset );
194146
}

‎src/app/mesh/qgsmeshrendereractivedatasetwidget.h

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ class QgsMeshLayer;
2626
/**
2727
* Widget for selection of active dataset group from tree view.
2828
* Also selects the active scalar and vector dataset by slider
29-
* and whether mesh rendering is enabled by checkboxes.
29+
*
30+
* At the moment, it is not possible to select different vector and
31+
* scalar dataset
3032
*/
3133
class APP_EXPORT QgsMeshRendererActiveDatasetWidget : public QWidget, private Ui::QgsMeshRendererActiveDatasetWidgetBase
3234
{
@@ -50,12 +52,6 @@ class APP_EXPORT QgsMeshRendererActiveDatasetWidget : public QWidget, private Ui
5052
//! Gets index of the selected/active vector dataset
5153
int activeVectorDataset() const;
5254

53-
//! Returns whether rendering of the native mesh is enabled
54-
bool isNativeMeshEnabled() const;
55-
56-
//! Returns whether rendering of the triangular mesh is enabled
57-
bool isTriangularMeshEnabled() const;
58-
5955
//! Synchronizes widgets state with associated mesh layer
6056
void syncToLayer();
6157

@@ -67,28 +63,20 @@ class APP_EXPORT QgsMeshRendererActiveDatasetWidget : public QWidget, private Ui
6763
//! Emitted when active vector dataset changed
6864
void activeVectorDatasetChanged( int index );
6965

70-
//! Emitted when rendering of the native mesh changed
71-
void nativeMeshEnabledChanged( bool on );
72-
73-
//! Emitted when rendering of the triangular mesh changed
74-
void triangularMeshEnabledChanged( bool on );
75-
7666
//! Emitted when any settings related to rendering changed
7767
void widgetChanged();
7868

7969
private slots:
8070
void onActiveGroupChanged();
8171
void onActiveDatasetChanged( int value );
82-
void onScalarChecked( int toggle );
83-
void onVectorChecked( int toggle );
84-
void onNativeMeshChecked( int toggle );
85-
void onTringularMeshChecked( int toggle );
8672
void updateMetadata( int datasetIndex );
8773

8874
private:
8975
int datasetIndex() const;
9076

9177
QgsMeshLayer *mMeshLayer = nullptr; // not owned
78+
int mActiveScalarDataset = -1;
79+
int mActiveVectorDataset = -1;
9280
};
9381

9482
#endif // QGSMESHRENDERERSCALARSETTINGSWIDGET_H

‎src/app/mesh/qgsrenderermeshpropertieswidget.cpp

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ QgsRendererMeshPropertiesWidget::QgsRendererMeshPropertiesWidget( QgsMeshLayer *
4747
mMeshRendererScalarSettingsWidget, &QgsMeshRendererScalarSettingsWidget::setActiveDataset );
4848
connect( mMeshRendererActiveDatasetWidget, &QgsMeshRendererActiveDatasetWidget::activeVectorDatasetChanged,
4949
mMeshRendererVectorSettingsWidget, &QgsMeshRendererVectorSettingsWidget::setActiveDataset );
50+
connect( mMeshRendererActiveDatasetWidget, &QgsMeshRendererActiveDatasetWidget::activeVectorDatasetChanged,
51+
this, &QgsRendererMeshPropertiesWidget::enableVectorRenderingTab );
52+
53+
connect( mNativeMeshGroup, &QGroupBox::toggled, this, &QgsPanelWidget::widgetChanged );
54+
connect( mTriangularMeshGroup, &QGroupBox::toggled, this, &QgsPanelWidget::widgetChanged );
55+
connect( mContoursGroupBox, &QGroupBox::toggled, this, &QgsPanelWidget::widgetChanged );
56+
connect( mVectorsGroupBox, &QGroupBox::toggled, this, &QgsPanelWidget::widgetChanged );
5057

5158
connect( mMeshRendererActiveDatasetWidget, &QgsMeshRendererActiveDatasetWidget::widgetChanged, this, &QgsPanelWidget::widgetChanged );
5259
connect( mMeshRendererScalarSettingsWidget, &QgsMeshRendererScalarSettingsWidget::widgetChanged, this, &QgsPanelWidget::widgetChanged );
@@ -63,19 +70,19 @@ void QgsRendererMeshPropertiesWidget::apply()
6370
return;
6471

6572
// MESH
66-
bool meshRenderingIsEnabled = mMeshRendererActiveDatasetWidget->isNativeMeshEnabled();
73+
bool meshRenderingIsEnabled = mNativeMeshGroup->isChecked();
6774
QgsMeshRendererMeshSettings meshSettings = mNativeMeshSettingsWidget->settings();
6875
meshSettings.setEnabled( meshRenderingIsEnabled );
6976
whileBlocking( mMeshLayer )->setRendererNativeMeshSettings( meshSettings );
7077

7178
// TRIANGULAR MESH
72-
bool triangularMeshRenderingIsEnabled = mMeshRendererActiveDatasetWidget->isTriangularMeshEnabled();
79+
bool triangularMeshRenderingIsEnabled = mTriangularMeshGroup->isChecked();
7380
QgsMeshRendererMeshSettings triangularMeshSettings = mTriangularMeshSettingsWidget->settings();
7481
triangularMeshSettings.setEnabled( triangularMeshRenderingIsEnabled );
7582
whileBlocking( mMeshLayer )->setRendererTriangularMeshSettings( triangularMeshSettings );
7683

7784
// SCALAR
78-
int activeScalarDatasetIndex = mMeshRendererActiveDatasetWidget->activeScalarDataset();
85+
int activeScalarDatasetIndex = activeScalarDataset();
7986
whileBlocking( mMeshLayer )->setActiveScalarDataset( activeScalarDatasetIndex );
8087
if ( activeScalarDatasetIndex != -1 )
8188
{
@@ -84,7 +91,7 @@ void QgsRendererMeshPropertiesWidget::apply()
8491
}
8592

8693
// VECTOR
87-
int activeVectorDatasetIndex = mMeshRendererActiveDatasetWidget->activeVectorDataset();
94+
int activeVectorDatasetIndex = activeVectorDataset();
8895
whileBlocking( mMeshLayer )->setActiveVectorDataset( activeVectorDatasetIndex );
8996
if ( activeVectorDatasetIndex != -1 )
9097
{
@@ -102,4 +109,29 @@ void QgsRendererMeshPropertiesWidget::syncToLayer()
102109
mNativeMeshSettingsWidget->syncToLayer();
103110
mTriangularMeshSettingsWidget->syncToLayer();
104111
mMeshRendererVectorSettingsWidget->syncToLayer();
112+
113+
enableVectorRenderingTab( activeVectorDataset() );
114+
}
115+
116+
void QgsRendererMeshPropertiesWidget::enableVectorRenderingTab( int vectorDatasetIndex )
117+
{
118+
mVectorsGroupBox->setEnabled( vectorDatasetIndex != -1 );
119+
}
120+
121+
int QgsRendererMeshPropertiesWidget::activeScalarDataset() const
122+
{
123+
int activeScalarDatasetIndex = mMeshRendererActiveDatasetWidget->activeScalarDataset();
124+
if ( activeScalarDatasetIndex != -1 && mContoursGroupBox->isChecked() )
125+
return activeScalarDatasetIndex;
126+
else
127+
return -1;
128+
}
129+
130+
int QgsRendererMeshPropertiesWidget::activeVectorDataset() const
131+
{
132+
int activeScalarDatasetIndex = mMeshRendererActiveDatasetWidget->activeVectorDataset();
133+
if ( activeScalarDatasetIndex != -1 && mVectorsGroupBox->isChecked() )
134+
return activeScalarDatasetIndex;
135+
else
136+
return -1;
105137
}

‎src/app/mesh/qgsrenderermeshpropertieswidget.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,16 @@ class APP_EXPORT QgsRendererMeshPropertiesWidget : public QgsMapLayerConfigWidge
5353
//! Synchronize widgets state with associated mesh layer
5454
void syncToLayer();
5555

56+
private slots:
57+
void enableVectorRenderingTab( int vectorDatasetIndex );
58+
5659
private:
60+
//! Gets index of the selected/active scalar dataset
61+
int activeScalarDataset() const;
62+
63+
//! Gets index of the selected/active vector dataset
64+
int activeVectorDataset() const;
65+
5766
QgsMeshLayer *mMeshLayer = nullptr; //not owned
5867
};
5968

‎src/ui/mesh/qgsmeshrendereractivedatasetwidgetbase.ui

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<rect>
1010
<x>0</x>
1111
<y>0</y>
12-
<width>254</width>
13-
<height>304</height>
12+
<width>319</width>
13+
<height>317</height>
1414
</rect>
1515
</property>
1616
<property name="windowTitle">
@@ -47,45 +47,6 @@
4747
</property>
4848
</widget>
4949
</item>
50-
<item>
51-
<widget class="QLabel" name="label">
52-
<property name="text">
53-
<string>Display</string>
54-
</property>
55-
</widget>
56-
</item>
57-
<item>
58-
<layout class="QGridLayout" name="gridLayout_3">
59-
<item row="0" column="0">
60-
<widget class="QCheckBox" name="mDisplayScalarsCheckBox">
61-
<property name="text">
62-
<string>Contours</string>
63-
</property>
64-
</widget>
65-
</item>
66-
<item row="0" column="1">
67-
<widget class="QCheckBox" name="mDisplayVectorsCheckBox">
68-
<property name="text">
69-
<string> Vectors</string>
70-
</property>
71-
</widget>
72-
</item>
73-
<item row="1" column="0">
74-
<widget class="QCheckBox" name="mDisplayNativeMeshCheckBox">
75-
<property name="text">
76-
<string> Mesh</string>
77-
</property>
78-
</widget>
79-
</item>
80-
<item row="1" column="1">
81-
<widget class="QCheckBox" name="mDisplayTriangularMeshCheckBox">
82-
<property name="text">
83-
<string> Triangular Mesh</string>
84-
</property>
85-
</widget>
86-
</item>
87-
</layout>
88-
</item>
8950
<item>
9051
<widget class="QgsCollapsibleGroupBox" name="mActiveDatasetMetadataGroup">
9152
<property name="title">

‎src/ui/mesh/qgsmeshrenderermeshsettingswidgetbase.ui

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,47 @@
1010
<height>84</height>
1111
</rect>
1212
</property>
13+
<property name="sizePolicy">
14+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
15+
<horstretch>0</horstretch>
16+
<verstretch>0</verstretch>
17+
</sizepolicy>
18+
</property>
1319
<property name="windowTitle">
1420
<string>Form</string>
1521
</property>
1622
<layout class="QHBoxLayout" name="horizontalLayout_2">
1723
<item>
1824
<widget class="QGroupBox" name="groupBox">
25+
<property name="sizePolicy">
26+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
27+
<horstretch>0</horstretch>
28+
<verstretch>0</verstretch>
29+
</sizepolicy>
30+
</property>
1931
<property name="title">
2032
<string>Line Width and Color</string>
2133
</property>
2234
<layout class="QHBoxLayout" name="horizontalLayout">
2335
<item>
24-
<widget class="QgsDoubleSpinBox" name="mLineWidthSpinBox"/>
36+
<widget class="QgsDoubleSpinBox" name="mLineWidthSpinBox">
37+
<property name="sizePolicy">
38+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
39+
<horstretch>0</horstretch>
40+
<verstretch>0</verstretch>
41+
</sizepolicy>
42+
</property>
43+
</widget>
2544
</item>
2645
<item>
27-
<widget class="QgsColorButton" name="mColorWidget"/>
46+
<widget class="QgsColorButton" name="mColorWidget">
47+
<property name="sizePolicy">
48+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
49+
<horstretch>0</horstretch>
50+
<verstretch>0</verstretch>
51+
</sizepolicy>
52+
</property>
53+
</widget>
2854
</item>
2955
</layout>
3056
</widget>

‎src/ui/mesh/qgsrenderermeshpropswidgetbase.ui

Lines changed: 270 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -6,94 +6,261 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>386</width>
9+
<width>774</width>
1010
<height>593</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
1414
<string>Form</string>
1515
</property>
16-
<layout class="QVBoxLayout" name="verticalLayout_2">
16+
<layout class="QVBoxLayout" name="verticalLayout">
1717
<item>
18-
<widget class="QgsCollapsibleGroupBox" name="mActiveDatasetGroup">
19-
<property name="title">
20-
<string>Active Dataset</string>
18+
<widget class="QTabWidget" name="mStyleOptionsTab">
19+
<property name="sizePolicy">
20+
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
21+
<horstretch>0</horstretch>
22+
<verstretch>0</verstretch>
23+
</sizepolicy>
2124
</property>
22-
<layout class="QVBoxLayout" name="verticalLayout_3">
23-
<item>
24-
<widget class="QgsMeshRendererActiveDatasetWidget" name="mMeshRendererActiveDatasetWidget" native="true">
25-
<property name="enabled">
26-
<bool>true</bool>
27-
</property>
28-
<property name="minimumSize">
29-
<size>
30-
<width>0</width>
31-
<height>0</height>
32-
</size>
33-
</property>
34-
</widget>
35-
</item>
36-
</layout>
37-
</widget>
38-
</item>
39-
<item>
40-
<widget class="QgsCollapsibleGroupBox" name="mScalarRenderingGroup">
41-
<property name="title">
42-
<string>Scalar rendering</string>
25+
<property name="tabPosition">
26+
<enum>QTabWidget::North</enum>
4327
</property>
44-
<layout class="QVBoxLayout" name="verticalLayout">
45-
<item>
46-
<widget class="QgsMeshRendererScalarSettingsWidget" name="mMeshRendererScalarSettingsWidget" native="true"/>
47-
</item>
48-
</layout>
49-
</widget>
50-
</item>
51-
<item>
52-
<widget class="QgsCollapsibleGroupBox" name="mVectorRenderingGroup">
53-
<property name="title">
54-
<string>Vector rendering</string>
28+
<property name="tabShape">
29+
<enum>QTabWidget::Rounded</enum>
5530
</property>
56-
<layout class="QGridLayout" name="gridLayout2">
57-
<item row="0" column="0">
58-
<widget class="QgsMeshRendererVectorSettingsWidget" name="mMeshRendererVectorSettingsWidget" native="true"/>
59-
</item>
60-
</layout>
61-
</widget>
62-
</item>
63-
<item>
64-
<widget class="QgsCollapsibleGroupBox" name="mMeshRenderingGroup">
65-
<property name="title">
66-
<string>Mesh rendering</string>
31+
<property name="currentIndex">
32+
<number>0</number>
6733
</property>
68-
<property name="checkable">
34+
<property name="iconSize">
35+
<size>
36+
<width>20</width>
37+
<height>20</height>
38+
</size>
39+
</property>
40+
<property name="elideMode">
41+
<enum>Qt::ElideNone</enum>
42+
</property>
43+
<property name="documentMode">
44+
<bool>true</bool>
45+
</property>
46+
<property name="tabsClosable">
6947
<bool>false</bool>
7048
</property>
71-
<layout class="QVBoxLayout" name="verticalLayout_4">
72-
<item>
73-
<widget class="QLabel" name="label">
74-
<property name="text">
75-
<string>Native mesh</string>
76-
</property>
77-
</widget>
78-
</item>
79-
<item>
80-
<widget class="QgsMeshRendererMeshSettingsWidget" name="mNativeMeshSettingsWidget" native="true"/>
81-
</item>
82-
<item>
83-
<widget class="QLabel" name="label_2">
84-
<property name="text">
85-
<string>Triangular mesh</string>
86-
</property>
87-
</widget>
88-
</item>
89-
<item>
90-
<widget class="QgsMeshRendererMeshSettingsWidget" name="mTriangularMeshSettingsWidget" native="true"/>
91-
</item>
92-
</layout>
49+
<widget class="QWidget" name="mActiveDatasetTab">
50+
<attribute name="icon">
51+
<iconset resource="../../../images/images.qrc">
52+
<normaloff>:/images/themes/default/propertyicons/general.svg</normaloff>:/images/themes/default/propertyicons/general.svg</iconset>
53+
</attribute>
54+
<attribute name="title">
55+
<string/>
56+
</attribute>
57+
<layout class="QVBoxLayout" name="verticalLayout_11">
58+
<item>
59+
<widget class="QgsMeshRendererActiveDatasetWidget" name="mMeshRendererActiveDatasetWidget" native="true">
60+
<property name="enabled">
61+
<bool>true</bool>
62+
</property>
63+
<property name="minimumSize">
64+
<size>
65+
<width>0</width>
66+
<height>0</height>
67+
</size>
68+
</property>
69+
</widget>
70+
</item>
71+
<item>
72+
<spacer name="verticalSpacer_3">
73+
<property name="orientation">
74+
<enum>Qt::Vertical</enum>
75+
</property>
76+
<property name="sizeHint" stdset="0">
77+
<size>
78+
<width>20</width>
79+
<height>40</height>
80+
</size>
81+
</property>
82+
</spacer>
83+
</item>
84+
</layout>
85+
</widget>
86+
<widget class="QWidget" name="mContoursTab">
87+
<attribute name="icon">
88+
<iconset resource="../../../images/images.qrc">
89+
<normaloff>:/images/themes/default/propertyicons/meshcontours.svg</normaloff>:/images/themes/default/propertyicons/meshcontours.svg</iconset>
90+
</attribute>
91+
<attribute name="title">
92+
<string/>
93+
</attribute>
94+
<layout class="QVBoxLayout" name="verticalLayout_10">
95+
<item>
96+
<widget class="QGroupBox" name="mContoursGroupBox">
97+
<property name="title">
98+
<string>Show contours</string>
99+
</property>
100+
<property name="checkable">
101+
<bool>true</bool>
102+
</property>
103+
<property name="checked">
104+
<bool>false</bool>
105+
</property>
106+
<layout class="QVBoxLayout" name="verticalLayout_6">
107+
<item>
108+
<widget class="QgsMeshRendererScalarSettingsWidget" name="mMeshRendererScalarSettingsWidget" native="true"/>
109+
</item>
110+
<item>
111+
<spacer name="verticalSpacer_4">
112+
<property name="orientation">
113+
<enum>Qt::Vertical</enum>
114+
</property>
115+
<property name="sizeHint" stdset="0">
116+
<size>
117+
<width>20</width>
118+
<height>40</height>
119+
</size>
120+
</property>
121+
</spacer>
122+
</item>
123+
</layout>
124+
</widget>
125+
</item>
126+
</layout>
127+
</widget>
128+
<widget class="QWidget" name="mVectorsTab">
129+
<attribute name="icon">
130+
<iconset resource="../../../images/images.qrc">
131+
<normaloff>:/images/themes/default/propertyicons/meshvectors.svg</normaloff>:/images/themes/default/propertyicons/meshvectors.svg</iconset>
132+
</attribute>
133+
<attribute name="title">
134+
<string/>
135+
</attribute>
136+
<layout class="QVBoxLayout" name="verticalLayout_2">
137+
<item>
138+
<widget class="QGroupBox" name="mVectorsGroupBox">
139+
<property name="title">
140+
<string>Show Vectors</string>
141+
</property>
142+
<property name="checkable">
143+
<bool>true</bool>
144+
</property>
145+
<property name="checked">
146+
<bool>false</bool>
147+
</property>
148+
<layout class="QVBoxLayout" name="verticalLayout_5">
149+
<item>
150+
<widget class="QgsMeshRendererVectorSettingsWidget" name="mMeshRendererVectorSettingsWidget" native="true">
151+
<property name="sizePolicy">
152+
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
153+
<horstretch>0</horstretch>
154+
<verstretch>0</verstretch>
155+
</sizepolicy>
156+
</property>
157+
</widget>
158+
</item>
159+
<item>
160+
<spacer name="verticalSpacer_5">
161+
<property name="orientation">
162+
<enum>Qt::Vertical</enum>
163+
</property>
164+
<property name="sizeHint" stdset="0">
165+
<size>
166+
<width>20</width>
167+
<height>40</height>
168+
</size>
169+
</property>
170+
</spacer>
171+
</item>
172+
</layout>
173+
</widget>
174+
</item>
175+
</layout>
176+
</widget>
177+
<widget class="QWidget" name="mMeshTab">
178+
<attribute name="icon">
179+
<iconset resource="../../../images/images.qrc">
180+
<normaloff>:/images/themes/default/propertyicons/meshframe.svg</normaloff>:/images/themes/default/propertyicons/meshframe.svg</iconset>
181+
</attribute>
182+
<attribute name="title">
183+
<string/>
184+
</attribute>
185+
<layout class="QVBoxLayout" name="verticalLayout_12">
186+
<item>
187+
<widget class="QGroupBox" name="mNativeMeshGroup">
188+
<property name="sizePolicy">
189+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
190+
<horstretch>0</horstretch>
191+
<verstretch>0</verstretch>
192+
</sizepolicy>
193+
</property>
194+
<property name="title">
195+
<string>Native Mesh rendering</string>
196+
</property>
197+
<property name="checkable">
198+
<bool>true</bool>
199+
</property>
200+
<layout class="QVBoxLayout" name="verticalLayout_4">
201+
<item>
202+
<widget class="QgsMeshRendererMeshSettingsWidget" name="mNativeMeshSettingsWidget" native="true">
203+
<property name="sizePolicy">
204+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
205+
<horstretch>0</horstretch>
206+
<verstretch>0</verstretch>
207+
</sizepolicy>
208+
</property>
209+
</widget>
210+
</item>
211+
</layout>
212+
</widget>
213+
</item>
214+
<item>
215+
<widget class="QGroupBox" name="mTriangularMeshGroup">
216+
<property name="sizePolicy">
217+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
218+
<horstretch>0</horstretch>
219+
<verstretch>0</verstretch>
220+
</sizepolicy>
221+
</property>
222+
<property name="title">
223+
<string>Triangular Mesh Rendering</string>
224+
</property>
225+
<property name="checkable">
226+
<bool>true</bool>
227+
</property>
228+
<property name="checked">
229+
<bool>false</bool>
230+
</property>
231+
<layout class="QVBoxLayout" name="verticalLayout_3">
232+
<item>
233+
<widget class="QgsMeshRendererMeshSettingsWidget" name="mTriangularMeshSettingsWidget" native="true">
234+
<property name="sizePolicy">
235+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
236+
<horstretch>0</horstretch>
237+
<verstretch>0</verstretch>
238+
</sizepolicy>
239+
</property>
240+
</widget>
241+
</item>
242+
</layout>
243+
</widget>
244+
</item>
245+
<item>
246+
<spacer name="verticalSpacer_2">
247+
<property name="orientation">
248+
<enum>Qt::Vertical</enum>
249+
</property>
250+
<property name="sizeHint" stdset="0">
251+
<size>
252+
<width>20</width>
253+
<height>40</height>
254+
</size>
255+
</property>
256+
</spacer>
257+
</item>
258+
</layout>
259+
</widget>
93260
</widget>
94261
</item>
95262
<item>
96-
<spacer name="verticalSpacer_2">
263+
<spacer name="verticalSpacer">
97264
<property name="orientation">
98265
<enum>Qt::Vertical</enum>
99266
</property>
@@ -108,12 +275,6 @@
108275
</layout>
109276
</widget>
110277
<customwidgets>
111-
<customwidget>
112-
<class>QgsCollapsibleGroupBox</class>
113-
<extends>QGroupBox</extends>
114-
<header>qgscollapsiblegroupbox.h</header>
115-
<container>1</container>
116-
</customwidget>
117278
<customwidget>
118279
<class>QgsMeshRendererScalarSettingsWidget</class>
119280
<extends>QWidget</extends>
@@ -139,6 +300,36 @@
139300
<container>1</container>
140301
</customwidget>
141302
</customwidgets>
142-
<resources/>
303+
<resources>
304+
<include location="../../../images/images.qrc"/>
305+
<include location="../../../images/images.qrc"/>
306+
<include location="../../../images/images.qrc"/>
307+
<include location="../../../images/images.qrc"/>
308+
<include location="../../../images/images.qrc"/>
309+
<include location="../../../images/images.qrc"/>
310+
<include location="../../../images/images.qrc"/>
311+
<include location="../../../images/images.qrc"/>
312+
<include location="../../../images/images.qrc"/>
313+
<include location="../../../images/images.qrc"/>
314+
<include location="../../../images/images.qrc"/>
315+
<include location="../../../images/images.qrc"/>
316+
<include location="../../../images/images.qrc"/>
317+
<include location="../../../images/images.qrc"/>
318+
<include location="../../../images/images.qrc"/>
319+
<include location="../../../images/images.qrc"/>
320+
<include location="../../../images/images.qrc"/>
321+
<include location="../../../images/images.qrc"/>
322+
<include location="../../../images/images.qrc"/>
323+
<include location="../../../images/images.qrc"/>
324+
<include location="../../../images/images.qrc"/>
325+
<include location="../../../images/images.qrc"/>
326+
<include location="../../../images/images.qrc"/>
327+
<include location="../../../images/images.qrc"/>
328+
<include location="../../../images/images.qrc"/>
329+
<include location="../../../images/images.qrc"/>
330+
<include location="../../../images/images.qrc"/>
331+
<include location="../../../images/images.qrc"/>
332+
<include location="../../../images/images.qrc"/>
333+
</resources>
143334
<connections/>
144335
</ui>

0 commit comments

Comments
 (0)
Please sign in to comment.