Skip to content

Commit

Permalink
Expose QgsSnappingConfig to QML
Browse files Browse the repository at this point in the history
Sponsored by QField
  • Loading branch information
m-kuhn committed Dec 20, 2016
1 parent a332ff9 commit 95fedd0
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 7 deletions.
4 changes: 3 additions & 1 deletion python/core/qgssnappingconfig.sip
Expand Up @@ -87,7 +87,7 @@ class QgsSnappingConfig
/**
* Constructor with default parameters defined in global settings
*/
explicit QgsSnappingConfig( QgsProject* project );
explicit QgsSnappingConfig( QgsProject* project = nullptr );

~QgsSnappingConfig();

Expand Down Expand Up @@ -221,5 +221,7 @@ class QgsSnappingConfig
* @note Added in QGIS 3.0
*/
bool removeLayers( const QList<QgsMapLayer*>& layers );
QgsProject* project() const;
void setProject(QgsProject* project);

};
3 changes: 1 addition & 2 deletions src/core/CMakeLists.txt
Expand Up @@ -505,6 +505,7 @@ SET(QGIS_CORE_MOC_HDRS
qgsproject.h
qgsrelationmanager.h
qgsrunprocess.h
qgssnappingconfig.h
qgssnappingutils.h
qgstaskmanager.h
qgstracer.h
Expand Down Expand Up @@ -707,7 +708,6 @@ SET(QGIS_CORE_HDRS
qgsprojectbadlayerhandler.h
qgsprojectfiletransform.h
qgsprojectproperty.h
qgssnappingconfig.h
qgsprojectversion.h
qgsprovidermetadata.h
qgsproviderregistry.h
Expand All @@ -722,7 +722,6 @@ SET(QGIS_CORE_HDRS
qgsscaleutils.h
qgssimplifymethod.h
qgssnapper.h
qgssnappingconfig.h
qgssnappingutils.h
qgsspatialindex.h
qgssqlexpressioncompiler.h
Expand Down
16 changes: 15 additions & 1 deletion src/core/qgssnappingconfig.cpp
Expand Up @@ -107,7 +107,8 @@ bool QgsSnappingConfig::IndividualLayerSettings::operator ==( const QgsSnappingC
QgsSnappingConfig::QgsSnappingConfig( QgsProject* project )
: mProject( project )
{
reset();
if ( project )
reset();
}

QgsSnappingConfig::~QgsSnappingConfig()
Expand Down Expand Up @@ -475,3 +476,16 @@ void QgsSnappingConfig::readLegacySettings()
mIndividualLayerSettings.insert( vlayer, IndividualLayerSettings( *enabledIt == QLatin1String( "enabled" ), t, tolIt->toDouble(), static_cast<QgsTolerance::UnitType>( tolUnitIt->toInt() ) ) );
}
}

QgsProject* QgsSnappingConfig::project() const
{
return mProject;
}

void QgsSnappingConfig::setProject( QgsProject* project )
{
if ( mProject != project )
mProject = project;

reset();
}
22 changes: 19 additions & 3 deletions src/core/qgssnappingconfig.h
Expand Up @@ -29,6 +29,10 @@ class QgsVectorLayer;
*/
class CORE_EXPORT QgsSnappingConfig
{
Q_GADGET

Q_PROPERTY( QgsProject* project READ project WRITE setProject )

public:

/**
Expand Down Expand Up @@ -118,7 +122,7 @@ class CORE_EXPORT QgsSnappingConfig
/**
* Constructor with default parameters defined in global settings
*/
explicit QgsSnappingConfig( QgsProject* project );
explicit QgsSnappingConfig( QgsProject* project = nullptr );

~QgsSnappingConfig();

Expand Down Expand Up @@ -177,8 +181,6 @@ class CORE_EXPORT QgsSnappingConfig
*/
bool operator!= ( const QgsSnappingConfig& other ) const;

public:

/**
* Reads the configuration from the specified QGIS project document.
*
Expand Down Expand Up @@ -217,6 +219,20 @@ class CORE_EXPORT QgsSnappingConfig
*/
bool removeLayers( const QList<QgsMapLayer*>& layers );

/**
* The project from which the snapped layers should be retrieved
*
* \note Added in QGIS 3.0
*/
QgsProject* project() const;

/**
* \copydoc project()
*
* \note Added in QGIS 3.0
*/
void setProject( QgsProject* project );

private:
void readLegacySettings();

Expand Down

0 comments on commit 95fedd0

Please sign in to comment.