Skip to content

Commit 3f8bc29

Browse files
vcloarecnyalldawson
authored andcommittedOct 25, 2020
slider instead combo box
1 parent 40891e7 commit 3f8bc29

File tree

2 files changed

+54
-17
lines changed

2 files changed

+54
-17
lines changed
 

‎src/app/3d/qgsmesh3dsymbolwidget.cpp

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ QgsMesh3dSymbolWidget::QgsMesh3dSymbolWidget( QgsMeshLayer *meshLayer, QWidget *
4141
connect( mColorButtonWireframe, &QgsColorButton::colorChanged, this, &QgsMesh3dSymbolWidget::changed );
4242
connect( mSpinBoxWireframeLineWidth, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ),
4343
this, &QgsMesh3dSymbolWidget::changed );
44-
connect( mComboBoxTriangleCount, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ),
45-
this, &QgsMesh3dSymbolWidget::changed );
44+
connect( mLodSlider, &QSlider::valueChanged, this, &QgsMesh3dSymbolWidget::changed );
4645

4746
connect( mColorRampShaderMinMaxReloadButton, &QPushButton::clicked, this, &QgsMesh3dSymbolWidget::reloadColorRampShaderMinMax );
4847
connect( mColorRampShaderWidget, &QgsColorRampShaderWidget::widgetChanged, this, &QgsMesh3dSymbolWidget::changed );
@@ -80,7 +79,11 @@ void QgsMesh3dSymbolWidget::setSymbol( const QgsMesh3DSymbol *symbol )
8079
mGroupBoxWireframe->setChecked( symbol->wireframeEnabled() );
8180
mColorButtonWireframe->setColor( symbol->wireframeLineColor() );
8281
mSpinBoxWireframeLineWidth->setValue( symbol->wireframeLineWidth() );
83-
mComboBoxTriangleCount->setCurrentIndex( symbol->levelOfDetailIndex() );
82+
if ( mLayer )
83+
mLodSlider->setValue( mLayer->triangularMeshLevelOfDetailCount() - symbol->levelOfDetailIndex() - 1 );
84+
else
85+
mLodSlider->setValue( mLodSlider->maximum() );
86+
8487

8588
mSpinBoxVerticaleScale->setValue( symbol->verticalScale() );
8689
mComboBoxTextureType->setCurrentIndex( mComboBoxTextureType->findData( symbol->renderingStyle() ) );
@@ -121,26 +124,17 @@ void QgsMesh3dSymbolWidget::setLayer( QgsMeshLayer *meshLayer, bool updateSymbol
121124
{
122125
mLayer = meshLayer;
123126

124-
mComboBoxTriangleCount->clear();
125127
if ( meshLayer && meshLayer->meshSimplificationSettings().isEnabled() )
126128
{
127-
mComboBoxTriangleCount->setVisible( true );
129+
mLodSlider->setVisible( true );
128130
mLabelTriangleCount->setVisible( true );
129131
int lodCount = meshLayer->triangularMeshLevelOfDetailCount();
130-
int originalMeshTrianglesCount = meshLayer->triangularMeshByLodIndex( 0 )->triangles().count();
131-
QString text = tr( "Original (%1 triangles)" ).arg( originalMeshTrianglesCount );
132-
mComboBoxTriangleCount->addItem( text );
133-
for ( int i = 1; i < lodCount; ++i )
134-
{
135-
int triangleCount = meshLayer->triangularMeshByLodIndex( i )->triangles().count();
136-
int reduction = originalMeshTrianglesCount / triangleCount;
137-
text = tr( "1/%1 (%2 triangles)" ).arg( reduction ).arg( triangleCount );
138-
mComboBoxTriangleCount->addItem( text );
139-
}
132+
mLodSlider->setTickInterval( 1 );
133+
mLodSlider->setMaximum( lodCount - 1 );
140134
}
141135
else
142136
{
143-
mComboBoxTriangleCount->setVisible( false );
137+
mLodSlider->setVisible( false );
144138
mLabelTriangleCount->setVisible( false );
145139
}
146140

@@ -185,7 +179,11 @@ std::unique_ptr<QgsMesh3DSymbol> QgsMesh3dSymbolWidget::symbol() const
185179
sym->setWireframeEnabled( mGroupBoxWireframe->isChecked() );
186180
sym->setWireframeLineColor( mColorButtonWireframe->color() );
187181
sym->setWireframeLineWidth( mSpinBoxWireframeLineWidth->value() );
188-
sym->setLevelOfDetailIndex( mComboBoxTriangleCount->currentIndex() );
182+
if ( mLayer )
183+
sym->setLevelOfDetailIndex( mLayer->triangularMeshLevelOfDetailCount() - mLodSlider->sliderPosition() - 1 );
184+
else
185+
sym->setLevelOfDetailIndex( 0 );
186+
189187
sym->setVerticalScale( mSpinBoxVerticaleScale->value() );
190188
sym->setRenderingStyle( static_cast<QgsMesh3DSymbol::RenderingStyle>( mComboBoxTextureType->currentData().toInt() ) );
191189
sym->setSingleMeshColor( mMeshSingleColorButton->color() );

‎src/ui/3d/qgsmesh3dpropswidget.ui

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,45 @@
308308
</layout>
309309
</widget>
310310
</item>
311+
<item row="0" column="0">
312+
<widget class="QLabel" name="label_5">
313+
<property name="text">
314+
<string>Rendering Style</string>
315+
</property>
316+
</widget>
317+
</item>
318+
<item row="2" column="0" colspan="2">
319+
<widget class="QWidget" name="mMeshSingleColorWidget" native="true">
320+
<layout class="QHBoxLayout" name="horizontalLayout_3">
321+
<property name="leftMargin">
322+
<number>0</number>
323+
</property>
324+
<property name="topMargin">
325+
<number>0</number>
326+
</property>
327+
<property name="rightMargin">
328+
<number>0</number>
329+
</property>
330+
<property name="bottomMargin">
331+
<number>0</number>
332+
</property>
333+
<item>
334+
<widget class="QLabel" name="label_6">
335+
<property name="text">
336+
<string>Mesh Color</string>
337+
</property>
338+
</widget>
339+
</item>
340+
<item>
341+
<widget class="QgsColorButton" name="mMeshSingleColorButton">
342+
<property name="text">
343+
<string/>
344+
</property>
345+
</widget>
346+
</item>
347+
</layout>
348+
</widget>
349+
</item>
311350
</layout>
312351
</widget>
313352
</item>

0 commit comments

Comments
 (0)
Please sign in to comment.