Skip to content

Commit

Permalink
Merge pull request #7613 from wonder-sk/mesh-gui-fixes
Browse files Browse the repository at this point in the history
Mesh layer fixes and improvements
  • Loading branch information
wonder-sk committed Aug 16, 2018
2 parents 0be9de5 + c0f190d commit f37aa8c
Show file tree
Hide file tree
Showing 39 changed files with 1,107 additions and 493 deletions.
11 changes: 11 additions & 0 deletions python/core/auto_generated/mesh/qgsmeshdataprovider.sip.in
Expand Up @@ -317,6 +317,11 @@ Datasets are grouped in the dataset groups. A dataset group represents a measure
Associate dataset with the mesh

emits dataChanged when successful
%End

virtual QStringList extraDatasets() const = 0;
%Docstring
Returns list of additional dataset file URIs added using addDataset() calls.
%End

virtual int datasetGroupCount( ) const = 0;
Expand Down Expand Up @@ -387,6 +392,12 @@ Ctor
Returns the extent of the layer

:return: QgsRectangle containing the extent of the layer
%End

signals:
void datasetGroupsAdded( int count );
%Docstring
Emitted when some new dataset groups have been added
%End
};

Expand Down
59 changes: 3 additions & 56 deletions python/core/auto_generated/mesh/qgsmeshlayer.sip.in
Expand Up @@ -129,66 +129,13 @@ Returns the provider type for this layer



QgsMeshRendererMeshSettings rendererNativeMeshSettings() const;
QgsMeshRendererSettings rendererSettings() const;
%Docstring
Returns renderer settings
%End

void setRendererNativeMeshSettings( const QgsMeshRendererMeshSettings &settings );
%Docstring
Sets new renderer settings, triggers repaint
%End

QgsMeshRendererMeshSettings rendererTriangularMeshSettings() const;
%Docstring
Returns renderer settings
%End

void setRendererTriangularMeshSettings( const QgsMeshRendererMeshSettings &settings );
%Docstring
Sets new renderer settings, triggers repaint
%End

QgsMeshRendererScalarSettings rendererScalarSettings() const;
%Docstring
Returns renderer settings
%End

void setRendererScalarSettings( const QgsMeshRendererScalarSettings &settings );
%Docstring
Sets new renderer settings, triggers repaint
%End

QgsMeshRendererVectorSettings rendererVectorSettings() const;
%Docstring
Returns renderer settings
%End

void setRendererVectorSettings( const QgsMeshRendererVectorSettings &settings );
%Docstring
Sets new renderer settings, triggers repaint
%End

void setActiveScalarDataset( QgsMeshDatasetIndex index = QgsMeshDatasetIndex() );
%Docstring
Sets active scalar dataset for rendering

Triggers repaint
%End
QgsMeshDatasetIndex activeScalarDataset() const;
%Docstring
Returns active scalar dataset
%End

void setActiveVectorDataset( QgsMeshDatasetIndex index = QgsMeshDatasetIndex() );
%Docstring
Sets active vector dataset for rendering.

If dataset is not vector based, do nothing. Triggers repaint
%End
QgsMeshDatasetIndex activeVectorDataset() const;
void setRendererSettings( const QgsMeshRendererSettings &settings );
%Docstring
Returns active vector dataset
Sets new renderer settings
%End

QgsMeshDatasetValue datasetValue( const QgsMeshDatasetIndex &index, const QgsPointXY &point ) const;
Expand Down
112 changes: 110 additions & 2 deletions python/core/auto_generated/mesh/qgsmeshrenderersettings.sip.in
Expand Up @@ -53,6 +53,15 @@ Returns color used for rendering
void setColor( const QColor &color );
%Docstring
Sets color used for rendering of the mesh
%End

QDomElement writeXml( QDomDocument &doc ) const;
%Docstring
Writes configuration to a new DOM element
%End
void readXml( const QDomElement &elem );
%Docstring
Reads configuration from the given DOM element
%End

};
Expand Down Expand Up @@ -83,10 +92,15 @@ Returns color ramp shader function
Sets color ramp shader function
%End

bool isEnabled() const;
QDomElement writeXml( QDomDocument &doc ) const;
%Docstring
Writes configuration to a new DOM element
%End
void readXml( const QDomElement &elem );
%Docstring
Returns whether color ramp has any items assigned
Reads configuration from the given DOM element
%End

};

class QgsMeshRendererVectorSettings
Expand All @@ -106,6 +120,7 @@ Represents a mesh renderer settings for vector datasets
#include "qgsmeshrenderersettings.h"
%End
public:

enum ArrowScalingMethod
{

Expand Down Expand Up @@ -245,6 +260,99 @@ Returns ratio of the head length of the arrow (range 0-1)
void setArrowHeadLengthRatio( double arrowHeadLengthRatio );
%Docstring
Sets ratio of the head length of the arrow (range 0-1)
%End

QDomElement writeXml( QDomDocument &doc ) const;
%Docstring
Writes configuration to a new DOM element
%End
void readXml( const QDomElement &elem );
%Docstring
Reads configuration from the given DOM element
%End

};


class QgsMeshRendererSettings
{
%Docstring

Represents all mesh renderer settings

.. note::

The API is considered EXPERIMENTAL and can be changed without a notice

.. versionadded:: 3.4
%End

%TypeHeaderCode
#include "qgsmeshrenderersettings.h"
%End
public:

QgsMeshRendererMeshSettings nativeMeshSettings() const;
%Docstring
Returns renderer settings
%End
void setNativeMeshSettings( const QgsMeshRendererMeshSettings &settings );
%Docstring
Sets new renderer settings, triggers repaint
%End

QgsMeshRendererMeshSettings triangularMeshSettings() const;
%Docstring
Returns renderer settings
%End
void setTriangularMeshSettings( const QgsMeshRendererMeshSettings &settings );
%Docstring
Sets new renderer settings
%End

QgsMeshRendererScalarSettings scalarSettings( int groupIndex ) const;
%Docstring
Returns renderer settings
%End
void setScalarSettings( int groupIndex, const QgsMeshRendererScalarSettings &settings );
%Docstring
Sets new renderer settings
%End

QgsMeshRendererVectorSettings vectorSettings( int groupIndex ) const;
%Docstring
Returns renderer settings
%End
void setVectorSettings( int groupIndex, const QgsMeshRendererVectorSettings &settings );
%Docstring
Sets new renderer settings
%End

QgsMeshDatasetIndex activeScalarDataset() const;
%Docstring
Returns active scalar dataset
%End
void setActiveScalarDataset( QgsMeshDatasetIndex index = QgsMeshDatasetIndex() );
%Docstring
Sets active scalar dataset for rendering
%End

QgsMeshDatasetIndex activeVectorDataset() const;
%Docstring
Returns active vector dataset
%End
void setActiveVectorDataset( QgsMeshDatasetIndex index = QgsMeshDatasetIndex() );
%Docstring
Sets active vector dataset for rendering.
%End

QDomElement writeXml( QDomDocument &doc ) const;
%Docstring
Writes configuration to a new DOM element
%End
void readXml( const QDomElement &elem );
%Docstring
Reads configuration from the given DOM element
%End

};
Expand Down
28 changes: 28 additions & 0 deletions python/core/auto_generated/qgsmaplayerlegend.sip.in
Expand Up @@ -61,6 +61,11 @@ Create new legend implementation for vector layer
static QgsMapLayerLegend *defaultRasterLegend( QgsRasterLayer *rl ) /Factory/;
%Docstring
Create new legend implementation for raster layer
%End

static QgsMapLayerLegend *defaultMeshLegend( QgsMeshLayer *ml ) /Factory/;
%Docstring
Create new legend implementation for mesh layer
%End

signals:
Expand Down Expand Up @@ -192,6 +197,29 @@ Default legend implementation for raster layers
};


class QgsDefaultMeshLayerLegend : QgsMapLayerLegend
{
%Docstring
Default legend implementation for mesh layers

.. versionadded:: 3.4
%End

%TypeHeaderCode
#include "qgsmaplayerlegend.h"
%End
public:
explicit QgsDefaultMeshLayerLegend( QgsMeshLayer *ml );
%Docstring
Creates an instance for the given mesh layer
%End

virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) /Factory/;


};


/************************************************************************
* This file has been generated automatically from *
* *
Expand Down
16 changes: 15 additions & 1 deletion python/core/auto_generated/raster/qgscolorrampshader.sip.in
Expand Up @@ -82,7 +82,7 @@ Returns the custom colormap.
Returns the color ramp type.
%End

QString colorRampTypeAsQString();
QString colorRampTypeAsQString() const;
%Docstring
Returns the color ramp type as a string.
%End
Expand Down Expand Up @@ -160,6 +160,20 @@ Generates and new RGB value based on original RGB value
virtual void legendSymbologyItems( QList< QPair< QString, QColor > > &symbolItems /Out/ ) const;


QDomElement writeXml( QDomDocument &doc ) const;
%Docstring
Writes configuration to a new DOM element

.. versionadded:: 3.4
%End

void readXml( const QDomElement &elem );
%Docstring
Reads configuration from the given DOM element

.. versionadded:: 3.4
%End

void setClassificationMode( ClassificationMode classificationMode );
%Docstring
Sets classification mode
Expand Down
10 changes: 3 additions & 7 deletions src/app/mesh/qgsmeshdatasetgrouptreeview.cpp
Expand Up @@ -272,21 +272,17 @@ int QgsMeshDatasetGroupTreeView::setActiveGroupFromActiveDataset()
QgsMeshDatasetIndex activeDataset;
if ( mMeshLayer )
{
activeDataset = mMeshLayer->activeScalarDataset();
const QgsMeshRendererSettings rendererSettings = mMeshLayer->rendererSettings();
activeDataset = rendererSettings.activeScalarDataset();
if ( !activeDataset.isValid() )
activeDataset = mMeshLayer->activeVectorDataset();
activeDataset = rendererSettings.activeVectorDataset();
}

// find group that contains active dataset
if ( activeDataset.isValid() && activeDataset.group() < mGroups.size() )
{
group = activeDataset.group();
}
else if ( !mGroups.empty() )
{
// not found, select first item
group = 0;
}

if ( mActiveGroup != group )
{
Expand Down
19 changes: 10 additions & 9 deletions src/app/mesh/qgsmeshrendereractivedatasetwidget.cpp
Expand Up @@ -30,14 +30,8 @@ QgsMeshRendererActiveDatasetWidget::QgsMeshRendererActiveDatasetWidget( QWidget

void QgsMeshRendererActiveDatasetWidget::setLayer( QgsMeshLayer *layer )
{
if ( layer != mMeshLayer )
{
mMeshLayer = layer;
}

mMeshLayer = layer;
mDatasetGroupTreeView->setLayer( layer );
setEnabled( mMeshLayer );
syncToLayer();
}

QgsMeshDatasetIndex QgsMeshRendererActiveDatasetWidget::activeScalarDataset() const
Expand Down Expand Up @@ -73,6 +67,8 @@ void QgsMeshRendererActiveDatasetWidget::onActiveGroupChanged()

mDatasetSlider->setValue( val );
onActiveDatasetChanged( val );
mActiveDatasetGroup = mDatasetGroupTreeView->activeGroup();
emit activeDatasetGroupChanged( mActiveDatasetGroup );
}

void QgsMeshRendererActiveDatasetWidget::onActiveDatasetChanged( int value )
Expand Down Expand Up @@ -161,15 +157,20 @@ QgsMeshDatasetIndex QgsMeshRendererActiveDatasetWidget::datasetIndex() const

void QgsMeshRendererActiveDatasetWidget::syncToLayer()
{
setEnabled( mMeshLayer );

whileBlocking( mDatasetGroupTreeView )->syncToLayer();

if ( mMeshLayer )
{
mActiveScalarDataset = mMeshLayer->activeScalarDataset();
mActiveVectorDataset = mMeshLayer->activeVectorDataset();
const QgsMeshRendererSettings rendererSettings = mMeshLayer->rendererSettings();
mActiveDatasetGroup = mDatasetGroupTreeView->activeGroup();
mActiveScalarDataset = rendererSettings.activeScalarDataset();
mActiveVectorDataset = rendererSettings.activeVectorDataset();
}
else
{
mActiveDatasetGroup = -1;
mActiveScalarDataset = QgsMeshDatasetIndex();
mActiveVectorDataset = QgsMeshDatasetIndex();
}
Expand Down

0 comments on commit f37aa8c

Please sign in to comment.