Skip to content

Commit

Permalink
Use currentIndex instead of currentText for combobox
Browse files Browse the repository at this point in the history
  • Loading branch information
NEDJIMAbelgacem committed Aug 6, 2020
1 parent 736b3e6 commit 0d685a4
Showing 1 changed file with 15 additions and 14 deletions.
29 changes: 15 additions & 14 deletions src/app/3d/qgsskyboxrenderingsettingswidget.cpp
Expand Up @@ -27,23 +27,29 @@ QgsSkyboxRenderingSettingsWidget::QgsSkyboxRenderingSettingsWidget( QWidget *par
layoutGroupBoxes.push_back( panoramicTextureGroupBox );
layoutGroupBoxes.push_back( faceTexturesGroupBox );

// To future maintainers: make sure the order of added items is the same as the order at QgsSkyboxEntity::SkyboxType
skyboxTypeComboBox->addItem( tr( "Panoramic texture" ) );
skyboxTypeComboBox->addItem( tr( "Distinct Faces" ) );
connect( skyboxTypeComboBox, &QComboBox::currentTextChanged, [&]( const QString & skyboxType )
connect( skyboxTypeComboBox, QOverload<int>::of( &QComboBox::currentIndexChanged ), [&]( int index )
{
for ( QGroupBox *groupBox : layoutGroupBoxes )
groupBox->setVisible( false );
if ( skyboxType == tr( "Panoramic texture" ) )
panoramicTextureGroupBox->setVisible( true );
if ( skyboxType == tr( "Distinct Faces" ) )
faceTexturesGroupBox->setVisible( true );
switch ( index )
{
case 0: // Panoramic texture
panoramicTextureGroupBox->setVisible( true );
break;
case 1: // Distinct Faces
faceTexturesGroupBox->setVisible( true );
break;
}
} );
skyboxTypeComboBox->setCurrentIndex( 1 );
skyboxTypeComboBox->setCurrentIndex( 0 );
}

void QgsSkyboxRenderingSettingsWidget::setSkyboxSettings( const QgsSkyboxSettings &skyboxSettings )
{
skyboxEnabledCheckBox->setCheckState( skyboxSettings.isSkyboxEnabled() ? Qt::CheckState::Checked : Qt::CheckState::Unchecked );
skyboxEnabledCheckBox->setChecked( skyboxSettings.isSkyboxEnabled() );

switch ( skyboxSettings.skyboxType() )
{
Expand All @@ -68,13 +74,8 @@ void QgsSkyboxRenderingSettingsWidget::setSkyboxSettings( const QgsSkyboxSetting
QgsSkyboxSettings QgsSkyboxRenderingSettingsWidget::toSkyboxSettings()
{
QgsSkyboxSettings settings;
settings.setIsSkyboxEnabled( skyboxEnabledCheckBox->checkState() == Qt::CheckState::Checked );

if ( skyboxTypeComboBox->currentText() == tr( "Panoramic texture" ) )
settings.setSkyboxType( QgsSkyboxEntity::PanoramicSkybox );
else if ( skyboxTypeComboBox->currentText() == tr( "Distinct Faces" ) )
settings.setSkyboxType( QgsSkyboxEntity::DistinctTexturesSkybox );

settings.setIsSkyboxEnabled( skyboxEnabledCheckBox->isChecked() );
settings.setSkyboxType( static_cast< QgsSkyboxEntity::SkyboxType >( skyboxTypeComboBox->currentIndex() ) );
settings.setPanoramicTexturePath( panoramicTextureImageSource->source() );
settings.setCubeMapFace( QStringLiteral( "posX" ), posXImageSource->source() );
settings.setCubeMapFace( QStringLiteral( "posY" ), posYImageSource->source() );
Expand Down

0 comments on commit 0d685a4

Please sign in to comment.