mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
Review fixes, sip, doc fixes, icons, style panel fix
This commit is contained in:
parent
f069342b35
commit
9875821b04
@ -1,6 +1,7 @@
|
||||
// Include auto-generated SIP files
|
||||
%Include auto_generated/qgs3dtypes.sip
|
||||
%Include auto_generated/qgsphongmaterialsettings.sip
|
||||
%Include auto_generated/qgsrulebased3drenderer.sip
|
||||
%Include auto_generated/qgsvectorlayer3drenderer.sip
|
||||
%Include auto_generated/symbols/qgsabstract3dsymbol.sip
|
||||
%Include auto_generated/symbols/qgsline3dsymbol.sip
|
||||
|
280
python/3d/auto_generated/qgsrulebased3drenderer.sip.in
Normal file
280
python/3d/auto_generated/qgsrulebased3drenderer.sip.in
Normal file
@ -0,0 +1,280 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/3d/qgsrulebased3drenderer.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsRuleBased3DRendererMetadata : Qgs3DRendererAbstractMetadata
|
||||
{
|
||||
%Docstring
|
||||
Metadata for rule-based 3D renderer to allow creation of its instances from XML
|
||||
|
||||
.. warning::
|
||||
|
||||
This is not considered stable API, and may change in future QGIS releases. It is
|
||||
exposed to the Python bindings as a tech preview only.
|
||||
|
||||
.. versionadded:: 3.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsrulebased3drenderer.h"
|
||||
%End
|
||||
public:
|
||||
QgsRuleBased3DRendererMetadata();
|
||||
|
||||
virtual QgsAbstract3DRenderer *createRenderer( QDomElement &elem, const QgsReadWriteContext &context ) /Factory/;
|
||||
|
||||
%Docstring
|
||||
Creates an instance of a 3D renderer based on a DOM element with renderer configuration
|
||||
%End
|
||||
};
|
||||
|
||||
|
||||
class QgsRuleBased3DRenderer : QgsAbstract3DRenderer
|
||||
{
|
||||
%Docstring
|
||||
Rule-based 3D renderer.
|
||||
|
||||
Similar to rule-based 2D renderer and rule-based labeling, it allows specification of rules for 3D symbols.
|
||||
|
||||
.. warning::
|
||||
|
||||
This is not considered stable API, and may change in future QGIS releases. It is
|
||||
exposed to the Python bindings as a tech preview only.
|
||||
|
||||
.. versionadded:: 3.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsrulebased3drenderer.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
typedef QList<QgsRuleBased3DRenderer::Rule *> RuleList;
|
||||
typedef QMap<const QgsRuleBased3DRenderer::Rule *, QgsFeature3DHandler *> RuleToHandlerMap;
|
||||
|
||||
class Rule
|
||||
{
|
||||
%Docstring
|
||||
|
||||
.. versionadded:: 3.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgsrulebased3drenderer.h"
|
||||
%End
|
||||
public:
|
||||
Rule( QgsAbstract3DSymbol *symbol /Transfer/, const QString &filterExp = QString(), const QString &description = QString(), bool elseRule = false );
|
||||
%Docstring
|
||||
takes ownership of symbol, symbol may be None
|
||||
%End
|
||||
~Rule();
|
||||
|
||||
|
||||
enum RegisterResult
|
||||
{
|
||||
Filtered,
|
||||
Inactive,
|
||||
Registered
|
||||
};
|
||||
|
||||
QgsAbstract3DSymbol *symbol() const;
|
||||
%Docstring
|
||||
Gets the labeling settings. May return a null pointer.
|
||||
%End
|
||||
|
||||
QString filterExpression() const;
|
||||
%Docstring
|
||||
A filter that will check if this rule applies
|
||||
|
||||
:return: An expression
|
||||
%End
|
||||
|
||||
QString description() const;
|
||||
%Docstring
|
||||
A human readable description for this rule
|
||||
|
||||
:return: Description
|
||||
%End
|
||||
|
||||
bool active() const;
|
||||
%Docstring
|
||||
Returns if this rule is active
|
||||
|
||||
:return: True if the rule is active
|
||||
%End
|
||||
|
||||
bool isElse() const;
|
||||
%Docstring
|
||||
Check if this rule is an ELSE rule
|
||||
|
||||
:return: True if this rule is an else rule
|
||||
%End
|
||||
|
||||
QString ruleKey() const;
|
||||
%Docstring
|
||||
Unique rule identifier (for identification of rule within labeling, used as provider ID)
|
||||
%End
|
||||
|
||||
void setSymbol( QgsAbstract3DSymbol *symbol /Transfer/ );
|
||||
%Docstring
|
||||
Sets new symbol (or NULL). Deletes old symbol if any.
|
||||
%End
|
||||
|
||||
void setFilterExpression( const QString &filterExp );
|
||||
%Docstring
|
||||
Set the expression used to check if a given feature shall be rendered with this rule
|
||||
|
||||
:param filterExp: An expression
|
||||
%End
|
||||
|
||||
void setDescription( const QString &description );
|
||||
%Docstring
|
||||
Set a human readable description for this rule
|
||||
|
||||
:param description: Description
|
||||
%End
|
||||
|
||||
void setActive( bool state );
|
||||
%Docstring
|
||||
Sets if this rule is active
|
||||
|
||||
:param state: Determines if the rule should be activated or deactivated
|
||||
%End
|
||||
|
||||
void setIsElse( bool iselse );
|
||||
%Docstring
|
||||
Sets if this rule is an ELSE rule
|
||||
|
||||
:param iselse: If true, this rule is an ELSE rule
|
||||
%End
|
||||
|
||||
void setRuleKey( const QString &key );
|
||||
%Docstring
|
||||
Override the assigned rule key (should be used just internally by rule-based renderer)
|
||||
%End
|
||||
|
||||
|
||||
const QgsRuleBased3DRenderer::RuleList &children() const;
|
||||
%Docstring
|
||||
Returns all children rules of this rule
|
||||
|
||||
:return: A list of rules
|
||||
%End
|
||||
|
||||
|
||||
QgsRuleBased3DRenderer::RuleList descendants() const;
|
||||
%Docstring
|
||||
Returns all children, grand-children, grand-grand-children, grand-gra... you get it
|
||||
|
||||
:return: A list of descendant rules
|
||||
%End
|
||||
|
||||
|
||||
QgsRuleBased3DRenderer::Rule *parent();
|
||||
%Docstring
|
||||
The parent rule
|
||||
|
||||
:return: Parent rule
|
||||
%End
|
||||
|
||||
void appendChild( QgsRuleBased3DRenderer::Rule *rule /Transfer/ );
|
||||
%Docstring
|
||||
add child rule, take ownership, sets this as parent
|
||||
%End
|
||||
|
||||
void insertChild( int i, QgsRuleBased3DRenderer::Rule *rule /Transfer/ );
|
||||
%Docstring
|
||||
add child rule, take ownership, sets this as parent
|
||||
%End
|
||||
|
||||
void removeChildAt( int i );
|
||||
%Docstring
|
||||
delete child rule
|
||||
%End
|
||||
|
||||
const QgsRuleBased3DRenderer::Rule *findRuleByKey( const QString &key ) const;
|
||||
%Docstring
|
||||
Try to find a rule given its unique key
|
||||
%End
|
||||
|
||||
|
||||
QgsRuleBased3DRenderer::Rule *clone() const /Factory/;
|
||||
%Docstring
|
||||
clone this rule, return new instance
|
||||
%End
|
||||
|
||||
|
||||
static QgsRuleBased3DRenderer::Rule *create( const QDomElement &ruleElem, const QgsReadWriteContext &context ) /Factory/;
|
||||
%Docstring
|
||||
Create a rule from an XML definition
|
||||
|
||||
:param ruleElem: The XML rule element
|
||||
:param context: reading context
|
||||
|
||||
:return: A new rule
|
||||
%End
|
||||
|
||||
QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) const;
|
||||
%Docstring
|
||||
store labeling info to XML element
|
||||
%End
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
Rule( const QgsRuleBased3DRenderer::Rule &rh );
|
||||
};
|
||||
|
||||
|
||||
QgsRuleBased3DRenderer( QgsRuleBased3DRenderer::Rule *root /Transfer/ );
|
||||
%Docstring
|
||||
Construct renderer with the given root rule (takes ownership)
|
||||
%End
|
||||
~QgsRuleBased3DRenderer();
|
||||
|
||||
void setLayer( QgsVectorLayer *layer );
|
||||
%Docstring
|
||||
Sets vector layer associated with the renderer
|
||||
%End
|
||||
QgsVectorLayer *layer() const;
|
||||
%Docstring
|
||||
Returns vector layer associated with the renderer
|
||||
%End
|
||||
|
||||
QgsRuleBased3DRenderer::Rule *rootRule();
|
||||
%Docstring
|
||||
Returns pointer to the root rule
|
||||
%End
|
||||
|
||||
virtual QString type() const;
|
||||
virtual QgsRuleBased3DRenderer *clone() const /Factory/;
|
||||
|
||||
|
||||
virtual void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const;
|
||||
|
||||
virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context );
|
||||
|
||||
virtual void resolveReferences( const QgsProject &project );
|
||||
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/3d/qgsrulebased3drenderer.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
@ -378,18 +378,26 @@ QgsVector3D Qgs3DUtils::transformWorldCoordinates( const QgsVector3D &worldPoint
|
||||
return mapToWorldCoordinates( mapPoint2, origin2 );
|
||||
}
|
||||
|
||||
QgsAbstract3DSymbol *Qgs3DUtils::symbolForGeometryType( QgsWkbTypes::GeometryType geomType )
|
||||
std::unique_ptr<QgsAbstract3DSymbol> Qgs3DUtils::symbolForGeometryType( QgsWkbTypes::GeometryType geomType )
|
||||
{
|
||||
switch ( geomType )
|
||||
{
|
||||
case QgsWkbTypes::PointGeometry:
|
||||
return new QgsPoint3DSymbol;
|
||||
return std::unique_ptr<QgsAbstract3DSymbol>( new QgsPoint3DSymbol );
|
||||
case QgsWkbTypes::LineGeometry:
|
||||
return new QgsLine3DSymbol;
|
||||
return std::unique_ptr<QgsAbstract3DSymbol>( new QgsLine3DSymbol );
|
||||
case QgsWkbTypes::PolygonGeometry:
|
||||
return new QgsPolygon3DSymbol;
|
||||
return std::unique_ptr<QgsAbstract3DSymbol>( new QgsPolygon3DSymbol );
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
QgsExpressionContext Qgs3DUtils::globalProjectLayerExpressionContext( QgsVectorLayer *layer )
|
||||
{
|
||||
QgsExpressionContext exprContext;
|
||||
exprContext << QgsExpressionContextUtils::globalScope()
|
||||
<< QgsExpressionContextUtils::projectScope( QgsProject::instance() )
|
||||
<< QgsExpressionContextUtils::layerScope( layer );
|
||||
return exprContext;
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ class Qgs3DMapScene;
|
||||
#include "qgs3dtypes.h"
|
||||
#include "qgsaabb.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#ifndef SIP_RUN
|
||||
|
||||
@ -101,7 +102,11 @@ class _3D_EXPORT Qgs3DUtils
|
||||
static QgsVector3D transformWorldCoordinates( const QgsVector3D &worldPoint1, const QgsVector3D &origin1, const QgsCoordinateReferenceSystem &crs1, const QgsVector3D &origin2, const QgsCoordinateReferenceSystem &crs2,
|
||||
const QgsCoordinateTransformContext &context );
|
||||
|
||||
static QgsAbstract3DSymbol *symbolForGeometryType( QgsWkbTypes::GeometryType geomType );
|
||||
//! Returns a new 3D symbol based on given geometry type (or null pointer if geometry type is not supported)
|
||||
static std::unique_ptr<QgsAbstract3DSymbol> symbolForGeometryType( QgsWkbTypes::GeometryType geomType );
|
||||
|
||||
//! Returns expression context for use in preparation of 3D data of a layer
|
||||
static QgsExpressionContext globalProjectLayerExpressionContext( QgsVectorLayer *layer );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "qgsvectorlayer.h"
|
||||
|
||||
#include "qgs3dmapsettings.h"
|
||||
#include "qgs3dutils.h"
|
||||
|
||||
/// @cond PRIVATE
|
||||
|
||||
@ -31,9 +32,7 @@ namespace Qgs3DSymbolImpl
|
||||
{
|
||||
Qgs3DRenderContext context( map );
|
||||
|
||||
QgsExpressionContext exprContext;
|
||||
exprContext << QgsExpressionContextUtils::globalScope()
|
||||
<< QgsExpressionContextUtils::projectScope( QgsProject::instance() );
|
||||
QgsExpressionContext exprContext( Qgs3DUtils::globalProjectLayerExpressionContext( layer ) );
|
||||
exprContext.setFields( layer->fields() );
|
||||
context.setExpressionContext( exprContext );
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "qgsxmlutils.h"
|
||||
|
||||
#include "qgs3dmapsettings.h"
|
||||
#include "qgs3dutils.h"
|
||||
#include "qgsline3dsymbol.h"
|
||||
#include "qgspoint3dsymbol.h"
|
||||
#include "qgspolygon3dsymbol.h"
|
||||
@ -415,7 +416,10 @@ Qt3DCore::QEntity *QgsRuleBased3DRenderer::createEntity( const Qgs3DMapSettings
|
||||
return nullptr;
|
||||
|
||||
Qgs3DRenderContext context( map );
|
||||
// TODO: add expr. context
|
||||
|
||||
QgsExpressionContext exprContext( Qgs3DUtils::globalProjectLayerExpressionContext( vl ) );
|
||||
exprContext.setFields( vl->fields() );
|
||||
context.setExpressionContext( exprContext );
|
||||
|
||||
RuleToHandlerMap handlers;
|
||||
mRootRule->createHandlers( vl, handlers );
|
||||
@ -431,7 +435,7 @@ Qt3DCore::QEntity *QgsRuleBased3DRenderer::createEntity( const Qgs3DMapSettings
|
||||
QgsFeatureIterator fi = vl->getFeatures( req );
|
||||
while ( fi.nextFeature( f ) )
|
||||
{
|
||||
// TODO: set feature in expr context?
|
||||
context.expressionContext().setFeature( f );
|
||||
mRootRule->registerFeature( f, context, handlers );
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,15 @@ class Qgs3DRenderContext;
|
||||
class QgsFeature3DHandler;
|
||||
|
||||
|
||||
/**
|
||||
* \ingroup 3d
|
||||
* Metadata for rule-based 3D renderer to allow creation of its instances from XML
|
||||
*
|
||||
* \warning This is not considered stable API, and may change in future QGIS releases. It is
|
||||
* exposed to the Python bindings as a tech preview only.
|
||||
*
|
||||
* \since QGIS 3.6
|
||||
*/
|
||||
class _3D_EXPORT QgsRuleBased3DRendererMetadata : public Qgs3DRendererAbstractMetadata
|
||||
{
|
||||
public:
|
||||
@ -43,6 +52,10 @@ class _3D_EXPORT QgsRuleBased3DRendererMetadata : public Qgs3DRendererAbstractMe
|
||||
* Rule-based 3D renderer.
|
||||
*
|
||||
* Similar to rule-based 2D renderer and rule-based labeling, it allows specification of rules for 3D symbols.
|
||||
*
|
||||
* \warning This is not considered stable API, and may change in future QGIS releases. It is
|
||||
* exposed to the Python bindings as a tech preview only.
|
||||
*
|
||||
* \since QGIS 3.6
|
||||
*/
|
||||
class _3D_EXPORT QgsRuleBased3DRenderer : public QgsAbstract3DRenderer
|
||||
@ -279,6 +292,7 @@ class _3D_EXPORT QgsRuleBased3DRenderer : public QgsAbstract3DRenderer
|
||||
};
|
||||
|
||||
|
||||
//! Construct renderer with the given root rule (takes ownership)
|
||||
QgsRuleBased3DRenderer( QgsRuleBased3DRenderer::Rule *root SIP_TRANSFER );
|
||||
~QgsRuleBased3DRenderer() override;
|
||||
|
||||
@ -287,7 +301,9 @@ class _3D_EXPORT QgsRuleBased3DRenderer : public QgsAbstract3DRenderer
|
||||
//! Returns vector layer associated with the renderer
|
||||
QgsVectorLayer *layer() const;
|
||||
|
||||
//! Returns pointer to the root rule
|
||||
QgsRuleBased3DRenderer::Rule *rootRule() { return mRootRule; }
|
||||
//! Returns pointer to the root rule
|
||||
const Rule *rootRule() const SIP_SKIP { return mRootRule; }
|
||||
|
||||
QString type() const override { return "rulebased"; }
|
||||
|
@ -26,18 +26,6 @@
|
||||
#include <QMessageBox>
|
||||
|
||||
|
||||
static QList<QgsExpressionContextScope *> _globalProjectLayerScopes( const QgsMapLayer *layer )
|
||||
{
|
||||
QList<QgsExpressionContextScope *> scopes;
|
||||
scopes << QgsExpressionContextUtils::globalScope()
|
||||
<< QgsExpressionContextUtils::projectScope( QgsProject::instance() )
|
||||
<< QgsExpressionContextUtils::layerScope( layer );
|
||||
return scopes;
|
||||
}
|
||||
|
||||
|
||||
// --------
|
||||
|
||||
QgsRuleBased3DRendererWidget::QgsRuleBased3DRendererWidget( QWidget *parent )
|
||||
: QgsPanelWidget( parent )
|
||||
{
|
||||
@ -101,7 +89,7 @@ void QgsRuleBased3DRendererWidget::setLayer( QgsVectorLayer *layer )
|
||||
|
||||
void QgsRuleBased3DRendererWidget::addRule()
|
||||
{
|
||||
QgsRuleBased3DRenderer::Rule *newrule = new QgsRuleBased3DRenderer::Rule( Qgs3DUtils::symbolForGeometryType( mLayer->geometryType() ) );
|
||||
QgsRuleBased3DRenderer::Rule *newrule = new QgsRuleBased3DRenderer::Rule( Qgs3DUtils::symbolForGeometryType( mLayer->geometryType() ).release() );
|
||||
|
||||
QgsRuleBased3DRenderer::Rule *current = currentRule();
|
||||
if ( current )
|
||||
@ -543,7 +531,6 @@ Qgs3DRendererRulePropsWidget::Qgs3DRendererRulePropsWidget( QgsRuleBased3DRender
|
||||
: QgsPanelWidget( parent )
|
||||
, mRule( rule )
|
||||
, mLayer( layer )
|
||||
, mSymbol( nullptr )
|
||||
{
|
||||
setupUi( this );
|
||||
|
||||
@ -557,7 +544,7 @@ Qgs3DRendererRulePropsWidget::Qgs3DRendererRulePropsWidget( QgsRuleBased3DRender
|
||||
if ( mRule->symbol() )
|
||||
{
|
||||
groupSymbol->setChecked( true );
|
||||
mSymbol = mRule->symbol()->clone(); // use a clone!
|
||||
mSymbol.reset( mRule->symbol()->clone() ); // use a clone!
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -566,7 +553,7 @@ Qgs3DRendererRulePropsWidget::Qgs3DRendererRulePropsWidget( QgsRuleBased3DRender
|
||||
}
|
||||
|
||||
mSymbolWidget = new QgsSymbol3DWidget( this );
|
||||
mSymbolWidget->setSymbol( mSymbol, layer );
|
||||
mSymbolWidget->setSymbol( mSymbol.get(), layer );
|
||||
QVBoxLayout *l = new QVBoxLayout;
|
||||
l->addWidget( mSymbolWidget );
|
||||
groupSymbol->setLayout( l );
|
||||
@ -581,16 +568,7 @@ Qgs3DRendererRulePropsWidget::Qgs3DRendererRulePropsWidget( QgsRuleBased3DRender
|
||||
connect( mElseRadio, &QRadioButton::toggled, this, [ = ]( bool toggled ) { if ( toggled ) editFilter->setText( QStringLiteral( "ELSE" ) );} );
|
||||
}
|
||||
|
||||
Qgs3DRendererRulePropsWidget::~Qgs3DRendererRulePropsWidget()
|
||||
{
|
||||
delete mSymbol;
|
||||
}
|
||||
|
||||
void Qgs3DRendererRulePropsWidget::setDockMode( bool dockMode )
|
||||
{
|
||||
QgsPanelWidget::setDockMode( dockMode );
|
||||
// TODO mLabelingGui->setDockMode( dockMode );
|
||||
}
|
||||
Qgs3DRendererRulePropsWidget::~Qgs3DRendererRulePropsWidget() = default;
|
||||
|
||||
void Qgs3DRendererRulePropsWidget::testFilter()
|
||||
{
|
||||
@ -604,7 +582,7 @@ void Qgs3DRendererRulePropsWidget::testFilter()
|
||||
return;
|
||||
}
|
||||
|
||||
QgsExpressionContext context( _globalProjectLayerScopes( mLayer ) );
|
||||
QgsExpressionContext context( Qgs3DUtils::globalProjectLayerExpressionContext( mLayer ) );
|
||||
|
||||
if ( !filter.prepare( &context ) )
|
||||
{
|
||||
@ -637,7 +615,7 @@ void Qgs3DRendererRulePropsWidget::testFilter()
|
||||
|
||||
void Qgs3DRendererRulePropsWidget::buildExpression()
|
||||
{
|
||||
QgsExpressionContext context( _globalProjectLayerScopes( mLayer ) );
|
||||
QgsExpressionContext context( Qgs3DUtils::globalProjectLayerExpressionContext( mLayer ) );
|
||||
|
||||
QgsExpressionBuilderDialog dlg( mLayer, editFilter->text(), this, QStringLiteral( "generic" ), context );
|
||||
|
||||
|
@ -148,8 +148,6 @@ class Qgs3DRendererRulePropsWidget : public QgsPanelWidget, private Ui::Qgs3DRen
|
||||
|
||||
QgsRuleBased3DRenderer::Rule *rule() { return mRule; }
|
||||
|
||||
void setDockMode( bool dockMode ) override;
|
||||
|
||||
public slots:
|
||||
void testFilter();
|
||||
void buildExpression();
|
||||
@ -164,7 +162,7 @@ class Qgs3DRendererRulePropsWidget : public QgsPanelWidget, private Ui::Qgs3DRen
|
||||
QgsVectorLayer *mLayer = nullptr;
|
||||
|
||||
QgsSymbol3DWidget *mSymbolWidget = nullptr;
|
||||
QgsAbstract3DSymbol *mSymbol; // a clone of original symbol
|
||||
std::unique_ptr<QgsAbstract3DSymbol> mSymbol; // a clone of original symbol
|
||||
|
||||
};
|
||||
|
||||
|
@ -72,9 +72,9 @@ QgsVectorLayer3DRendererWidget::QgsVectorLayer3DRendererWidget( QgsVectorLayer *
|
||||
QVBoxLayout *layout = new QVBoxLayout( this );
|
||||
|
||||
cboRendererType = new QComboBox( this );
|
||||
cboRendererType->addItem( tr( "No renderer" ) );
|
||||
cboRendererType->addItem( tr( "Single symbol renderer" ) );
|
||||
cboRendererType->addItem( tr( "Rule-based renderer" ) );
|
||||
cboRendererType->addItem( QgsApplication::getThemeIcon( QStringLiteral( "rendererNullSymbol.svg" ) ), tr( "No symbols" ) );
|
||||
cboRendererType->addItem( QgsApplication::getThemeIcon( QStringLiteral( "rendererSingleSymbol.svg" ) ), tr( "Single symbol" ) );
|
||||
cboRendererType->addItem( QgsApplication::getThemeIcon( QStringLiteral( "rendererRuleBasedSymbol.svg" ) ), tr( "Rule-based" ) );
|
||||
|
||||
widgetRendererStack = new QStackedWidget( this );
|
||||
layout->addWidget( cboRendererType );
|
||||
@ -91,8 +91,11 @@ QgsVectorLayer3DRendererWidget::QgsVectorLayer3DRendererWidget( QgsVectorLayer *
|
||||
connect( cboRendererType, qgis::overload< int >::of( &QComboBox::currentIndexChanged ), this, &QgsVectorLayer3DRendererWidget::onRendererTypeChanged );
|
||||
connect( widgetSingleSymbolRenderer, &QgsSingleSymbol3DRendererWidget::widgetChanged, this, &QgsVectorLayer3DRendererWidget::widgetChanged );
|
||||
connect( widgetRuleBasedRenderer, &QgsRuleBased3DRendererWidget::widgetChanged, this, &QgsVectorLayer3DRendererWidget::widgetChanged );
|
||||
|
||||
connect( widgetRuleBasedRenderer, &QgsRuleBased3DRendererWidget::showPanel, this, &QgsPanelWidget::openPanel );
|
||||
}
|
||||
|
||||
|
||||
void QgsVectorLayer3DRendererWidget::setLayer( QgsVectorLayer *layer )
|
||||
{
|
||||
mLayer = layer;
|
||||
@ -117,6 +120,12 @@ void QgsVectorLayer3DRendererWidget::setLayer( QgsVectorLayer *layer )
|
||||
whileBlocking( cboRendererType )->setCurrentIndex( pageIndex );
|
||||
}
|
||||
|
||||
void QgsVectorLayer3DRendererWidget::setDockMode( bool dockMode )
|
||||
{
|
||||
QgsPanelWidget::setDockMode( dockMode );
|
||||
widgetRuleBasedRenderer->setDockMode( dockMode );
|
||||
}
|
||||
|
||||
|
||||
void QgsVectorLayer3DRendererWidget::apply()
|
||||
{
|
||||
|
@ -64,6 +64,8 @@ class QgsVectorLayer3DRendererWidget : public QgsMapLayerConfigWidget
|
||||
|
||||
void setLayer( QgsVectorLayer *layer );
|
||||
|
||||
void setDockMode( bool dockMode ) override;
|
||||
|
||||
public slots:
|
||||
void apply() override;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user