Skip to content

Commit

Permalink
[needs-docs][ui] UI/UX revamp of the 3D map configuration dialog (#39448
Browse files Browse the repository at this point in the history
)
  • Loading branch information
nirvn committed Oct 18, 2020
1 parent 0675d99 commit 2626ad6
Show file tree
Hide file tree
Showing 7 changed files with 797 additions and 348 deletions.
2 changes: 2 additions & 0 deletions images/images.qrc
Expand Up @@ -453,6 +453,7 @@
<file>themes/default/mActionFirst.svg</file>
<file>themes/default/mIconAtlas.svg</file>
<file>themes/default/mIconAutoPlacementSettings.svg</file>
<file>themes/default/mIconCamera.svg</file>
<file>themes/default/mIconCertificate.svg</file>
<file>themes/default/mIconCertificateMissing.svg</file>
<file>themes/default/mIconCertificateTrusted.svg</file>
Expand Down Expand Up @@ -523,6 +524,7 @@
<file>themes/default/mIconRasterGroup.svg</file>
<file>themes/default/mIconRasterLink.svg</file>
<file>themes/default/mIconRasterLayer.svg</file>
<file>themes/default/mIconShadow.svg</file>
<file>themes/default/mIconSelectAdd.svg</file>
<file>themes/default/mIconSelected.svg</file>
<file>themes/default/mIconSelectIntersect.svg</file>
Expand Down
18 changes: 18 additions & 0 deletions images/themes/default/mIconCamera.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions images/themes/default/mIconShadow.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/app/3d/qgs3dmapcanvasdockwidget.cpp
Expand Up @@ -255,7 +255,7 @@ void Qgs3DMapCanvasDockWidget::configure()
QDialog dlg;
dlg.setWindowTitle( tr( "3D Configuration" ) );
dlg.setObjectName( QStringLiteral( "3DConfigurationDialog" ) );
dlg.setMinimumSize( 380, 460 );
dlg.setMinimumSize( 600, 460 );
QgsGui::instance()->enableAutoGeometryRestore( &dlg );

Qgs3DMapSettings *map = mCanvas->map();
Expand Down
29 changes: 29 additions & 0 deletions src/app/3d/qgs3dmapconfigwidget.cpp
Expand Up @@ -22,12 +22,14 @@
#include "qgsmeshterraingenerator.h"
#include "qgs3dutils.h"

#include "qgsguiutils.h"
#include "qgsmapcanvas.h"
#include "qgsmapthemecollection.h"
#include "qgsrasterlayer.h"
#include "qgsmeshlayer.h"
#include "qgsproject.h"
#include "qgsmesh3dsymbolwidget.h"
#include "qgssettings.h"
#include "qgsskyboxrenderingsettingswidget.h"
#include "qgsshadowrenderingsettingswidget.h"
#include "qgs3dmapcanvas.h"
Expand All @@ -43,6 +45,26 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
Q_ASSERT( map );
Q_ASSERT( mainCanvas );

QgsSettings settings;

const int iconSize = QgsGuiUtils::scaleIconSize( 20 );
m3DOptionsListWidget->setIconSize( QSize( iconSize, iconSize ) ) ;

// get rid of annoying outer focus rect on Mac
m3DOptionsListWidget->setAttribute( Qt::WA_MacShowFocusRect, false );
m3DOptionsListWidget->setCurrentRow( settings.value( QStringLiteral( "Windows/3DMapConfig/Tab" ), 0 ).toInt() );

connect( m3DOptionsListWidget, &QListWidget::currentRowChanged, this, [ = ]( int index ) { m3DOptionsStackedWidget->setCurrentIndex( index ); } );

if ( !settings.contains( QStringLiteral( "Windows/3DMapConfig/OptionsSplitState" ) ) )
{
// set left list widget width on initial showing
QList<int> splitsizes;
splitsizes << 115;
m3DOptionsSplitter->setSizes( splitsizes );
}
m3DOptionsSplitter->restoreState( settings.value( QStringLiteral( "Windows/3DMapConfig/OptionsSplitState" ) ).toByteArray() );

mMeshSymbolWidget = new QgsMesh3dSymbolWidget( nullptr, groupMeshTerrainShading );
mMeshSymbolWidget->configureForTerrain();

Expand Down Expand Up @@ -138,6 +160,13 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
groupShadowRendering->setChecked( map->shadowSettings().renderShadows() );
}

Qgs3DMapConfigWidget::~Qgs3DMapConfigWidget()
{
QgsSettings settings;
settings.setValue( QStringLiteral( "Windows/3DMapConfig/OptionsSplitState" ), m3DOptionsSplitter->saveState() );
settings.setValue( QStringLiteral( "Windows/3DMapConfig/Tab" ), m3DOptionsListWidget->currentRow() );
}

void Qgs3DMapConfigWidget::apply()
{
bool needsUpdateOrigin = false;
Expand Down
2 changes: 2 additions & 0 deletions src/app/3d/qgs3dmapconfigwidget.h
Expand Up @@ -35,6 +35,8 @@ class Qgs3DMapConfigWidget : public QWidget, private Ui::Map3DConfigWidget
//! construct widget. does not take ownership of the passed map.
explicit Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas *mainCanvas, QWidget *parent = nullptr );

~Qgs3DMapConfigWidget() override;

void apply();

signals:
Expand Down

0 comments on commit 2626ad6

Please sign in to comment.