Skip to content

Commit 6bff7f0

Browse files
committed
[mesh] Misc GUI fixes for mesh layers
- correct rounding of time - correct display of time (was off by an hour) - fixed time combo box when not time-varying dataset group is loaded - fixed switching of active dataset groups - bonus: added missing space for arrows on grid ("10 px" not "10px")
1 parent d2fdfe8 commit 6bff7f0

File tree

4 files changed

+12
-29
lines changed

4 files changed

+12
-29
lines changed

src/app/mesh/qgsmeshdatasetgrouptreeview.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,6 @@ class APP_EXPORT QgsMeshDatasetGroupTreeView : public QTreeView
191191
//! Selected dataset group for vectors changed. -1 for invalid group
192192
void activeVectorGroupChanged( int groupIndex );
193193

194-
private slots:
195-
// void onSelectionChanged( const QItemSelection &selected, const QItemSelection &deselected );
196-
197194
private:
198195
void setActiveGroupFromActiveDataset();
199196

src/app/mesh/qgsmeshrendereractivedatasetwidget.cpp

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ QgsMeshRendererActiveDatasetWidget::QgsMeshRendererActiveDatasetWidget( QWidget
2727
{
2828
setupUi( this );
2929

30-
connect( mTimeComboBox, qgis::overload<int>::of( &QComboBox::currentIndexChanged ), this, &QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged );
30+
connect( mTimeComboBox, qgis::overload<int>::of( &QComboBox::currentIndexChanged ), this, &QgsMeshRendererActiveDatasetWidget::onActiveTimeChanged );
3131
connect( mDatasetSlider, &QSlider::valueChanged, mTimeComboBox, &QComboBox::setCurrentIndex );
3232

3333
connect( mFirstDatasetButton, &QToolButton::clicked, this, &QgsMeshRendererActiveDatasetWidget::onFirstTimeClicked );
@@ -69,9 +69,10 @@ QgsMeshDatasetIndex QgsMeshRendererActiveDatasetWidget::activeVectorDataset() co
6969

7070
void QgsMeshRendererActiveDatasetWidget::setTimeRange()
7171
{
72-
int datasetCount = 1;
72+
// figure out which dataset group contains the greatest number of datasets.
73+
// this group will be used to initialize the time combo box.
74+
int datasetCount = 0;
7375
int groupWithMaximumDatasets = -1;
74-
7576
if ( mMeshLayer && mMeshLayer->dataProvider() )
7677
{
7778
for ( int i = 0; i < mMeshLayer->dataProvider()->datasetGroupCount(); ++i )
@@ -120,8 +121,7 @@ void QgsMeshRendererActiveDatasetWidget::onActiveScalarGroupChanged( int groupIn
120121
mActiveScalarDatasetGroup = groupIndex;
121122

122123
// keep the same timestep if possible
123-
int val = mTimeComboBox->currentIndex();
124-
mTimeComboBox->setCurrentIndex( val );
124+
onActiveTimeChanged( mTimeComboBox->currentIndex() );
125125
emit activeScalarGroupChanged( mActiveScalarDatasetGroup );
126126
}
127127

@@ -133,12 +133,11 @@ void QgsMeshRendererActiveDatasetWidget::onActiveVectorGroupChanged( int groupIn
133133
mActiveVectorDatasetGroup = groupIndex;
134134

135135
// keep the same timestep if possible
136-
int val = mTimeComboBox->currentIndex();
137-
mTimeComboBox->setCurrentIndex( val );
136+
onActiveTimeChanged( mTimeComboBox->currentIndex() );
138137
emit activeVectorGroupChanged( mActiveVectorDatasetGroup );
139138
}
140139

141-
void QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged( int value )
140+
void QgsMeshRendererActiveDatasetWidget::onActiveTimeChanged( int value )
142141
{
143142
if ( !mMeshLayer || !mMeshLayer->dataProvider() )
144143
return;
@@ -153,7 +152,6 @@ void QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged( int value )
153152
{
154153
mActiveScalarDataset = activeScalarDataset;
155154
changed = true;
156-
emit activeScalarDatasetChanged( mActiveScalarDataset );
157155
}
158156

159157
QgsMeshDatasetIndex activeVectorDataset(
@@ -164,7 +162,6 @@ void QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged( int value )
164162
{
165163
mActiveVectorDataset = activeVectorDataset;
166164
changed = true;
167-
emit activeVectorDatasetChanged( mActiveVectorDataset );
168165
}
169166

170167
if ( changed )
@@ -251,14 +248,9 @@ void QgsMeshRendererActiveDatasetWidget::updateMetadata()
251248
QString QgsMeshRendererActiveDatasetWidget::timeToString( double val )
252249
{
253250
// time val should be in hours
254-
#if QT_VERSION >= 0x050800
255-
qint64 seconds = static_cast<qint64>( val * 3600.0 );
256-
return QDateTime::fromSecsSinceEpoch( seconds ).toString( "hh:mm:ss" );
257-
#else
258-
QDateTime t;
259-
t.setTime_t( static_cast<uint>( val * 3600.0 ) );
260-
return t.toString( "hh:mm:ss" );
261-
#endif
251+
int seconds = static_cast<int>( qgsRound( val * 3600.0, 0 ) );
252+
QTime t = QTime( 0, 0 ).addSecs( seconds );
253+
return t.toString(); // the format is "HH:mm:ss"
262254
}
263255

264256
QString QgsMeshRendererActiveDatasetWidget::metadata( QgsMeshDatasetIndex datasetIndex )

src/app/mesh/qgsmeshrendereractivedatasetwidget.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,6 @@ class APP_EXPORT QgsMeshRendererActiveDatasetWidget : public QWidget, private Ui
6363

6464
signals:
6565

66-
//! Emitted when active scalar dataset changed
67-
void activeScalarDatasetChanged( QgsMeshDatasetIndex index );
68-
69-
//! Emitted when active vector dataset changed
70-
void activeVectorDatasetChanged( QgsMeshDatasetIndex index );
71-
7266
//! Emitted when the current scalar group gets changed
7367
void activeScalarGroupChanged( int groupIndex );
7468

@@ -81,7 +75,7 @@ class APP_EXPORT QgsMeshRendererActiveDatasetWidget : public QWidget, private Ui
8175
private slots:
8276
void onActiveScalarGroupChanged( int groupIndex );
8377
void onActiveVectorGroupChanged( int groupIndex );
84-
void onActiveDatasetChanged( int value );
78+
void onActiveTimeChanged( int value );
8579
void onFirstTimeClicked();
8680
void onPreviousTimeClicked();
8781
void onNextTimeClicked();

src/ui/mesh/qgsmeshrenderervectorsettingswidgetbase.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<item row="1" column="1">
112112
<widget class="QSpinBox" name="mYSpacingSpinBox">
113113
<property name="suffix">
114-
<string>px</string>
114+
<string> px</string>
115115
</property>
116116
<property name="minimum">
117117
<number>1</number>

0 commit comments

Comments
 (0)