Skip to content

Commit

Permalink
Convenient access functions also for topological editing
Browse files Browse the repository at this point in the history
  • Loading branch information
mhugent committed Jun 20, 2012
1 parent 1e60028 commit 6188322
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 9 deletions.
5 changes: 5 additions & 0 deletions python/core/qgsproject.sip
Expand Up @@ -245,6 +245,9 @@ public:
bool snapSettingsForLayer( const QString& layerId, bool& enabled /Out/, QgsSnapper::SnappingType& type /Out/, QgsTolerance::UnitType& units /Out/, double& tolerance /Out/, bool snapSettingsForLayer( const QString& layerId, bool& enabled /Out/, QgsSnapper::SnappingType& type /Out/, QgsTolerance::UnitType& units /Out/, double& tolerance /Out/,
bool& avoidIntersection /Out/ ); bool& avoidIntersection /Out/ );


void setTopologicalEditing( bool enabled );
bool topologicalEditing() const;

protected: protected:


/** Set error message from read/write operation /** Set error message from read/write operation
Expand All @@ -263,6 +266,8 @@ public:
//! emitted when project is being written //! emitted when project is being written
void writeProject(QDomDocument &); void writeProject(QDomDocument &);


void snapSettingsChanged();

private: private:


QgsProject(); // private 'cause it's a singleton QgsProject(); // private 'cause it's a singleton
Expand Down
8 changes: 4 additions & 4 deletions src/app/qgssnappingdialog.cpp
Expand Up @@ -73,7 +73,7 @@ QgsSnappingDialog::QgsSnappingDialog( QWidget* parent, QgsMapCanvas* canvas ): Q
connect( QgsMapLayerRegistry::instance(), SIGNAL( layersWillBeRemoved( QStringList ) ), this, SLOT( layersWillBeRemoved( QStringList ) ) ); connect( QgsMapLayerRegistry::instance(), SIGNAL( layersWillBeRemoved( QStringList ) ), this, SLOT( layersWillBeRemoved( QStringList ) ) );
connect( cbxEnableTopologicalEditingCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( on_cbxEnableTopologicalEditingCheckBox_stateChanged( int ) ) ); connect( cbxEnableTopologicalEditingCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( on_cbxEnableTopologicalEditingCheckBox_stateChanged( int ) ) );


reloadLayers(); reload();


QMap< QString, QgsMapLayer *> mapLayers = QgsMapLayerRegistry::instance()->mapLayers(); QMap< QString, QgsMapLayer *> mapLayers = QgsMapLayerRegistry::instance()->mapLayers();
QMap< QString, QgsMapLayer *>::iterator it; QMap< QString, QgsMapLayer *>::iterator it;
Expand All @@ -90,8 +90,7 @@ QgsSnappingDialog::QgsSnappingDialog( QWidget* parent, QgsMapCanvas* canvas ): Q
mLayerTreeWidget->resizeColumnToContents( 4 ); mLayerTreeWidget->resizeColumnToContents( 4 );
mLayerTreeWidget->setSortingEnabled( true ); mLayerTreeWidget->setSortingEnabled( true );


setTopologicalEditingState(); connect( QgsProject::instance(), SIGNAL( snapSettingsChanged() ), this, SLOT( reload() ) );
connect( QgsProject::instance(), SIGNAL( snapSettingsChanged() ), this, SLOT( reloadLayers() ) );
} }


QgsSnappingDialog::QgsSnappingDialog() QgsSnappingDialog::QgsSnappingDialog()
Expand All @@ -102,7 +101,7 @@ QgsSnappingDialog::~QgsSnappingDialog()
{ {
} }


void QgsSnappingDialog::reloadLayers() void QgsSnappingDialog::reload()
{ {
mLayerTreeWidget->clear(); mLayerTreeWidget->clear();


Expand All @@ -113,6 +112,7 @@ void QgsSnappingDialog::reloadLayers()
addLayer( it.value() ); addLayer( it.value() );
} }


setTopologicalEditingState();
} }


void QgsSnappingDialog::on_cbxEnableTopologicalEditingCheckBox_stateChanged( int state ) void QgsSnappingDialog::on_cbxEnableTopologicalEditingCheckBox_stateChanged( int state )
Expand Down
2 changes: 1 addition & 1 deletion src/app/qgssnappingdialog.h
Expand Up @@ -68,7 +68,7 @@ class QgsSnappingDialog: public QDialog, private Ui::QgsSnappingDialogBase
void closeEvent( QCloseEvent* event ); void closeEvent( QCloseEvent* event );


private slots: private slots:
void reloadLayers(); void reload();




private: private:
Expand Down
15 changes: 13 additions & 2 deletions src/core/qgsproject.cpp
Expand Up @@ -1679,7 +1679,7 @@ void QgsProject::setSnapSettingsForLayer( const QString& layerId, bool enabled,
} }


bool QgsProject::snapSettingsForLayer( const QString& layerId, bool& enabled, QgsSnapper::SnappingType &type, QgsTolerance::UnitType& units, double& tolerance, bool QgsProject::snapSettingsForLayer( const QString& layerId, bool& enabled, QgsSnapper::SnappingType &type, QgsTolerance::UnitType& units, double& tolerance,
bool& avoidIntersection ) bool& avoidIntersection ) const
{ {
QStringList layerIdList, enabledList, snapTypeList, toleranceUnitList, toleranceList, avoidIntersectionList; QStringList layerIdList, enabledList, snapTypeList, toleranceUnitList, toleranceList, avoidIntersectionList;
snapSettings( layerIdList, enabledList, snapTypeList, toleranceUnitList, toleranceList, avoidIntersectionList ); snapSettings( layerIdList, enabledList, snapTypeList, toleranceUnitList, toleranceList, avoidIntersectionList );
Expand Down Expand Up @@ -1735,7 +1735,7 @@ bool QgsProject::snapSettingsForLayer( const QString& layerId, bool& enabled, Qg
} }


void QgsProject::snapSettings( QStringList& layerIdList, QStringList& enabledList, QStringList& snapTypeList, QStringList& toleranceUnitList, QStringList& toleranceList, void QgsProject::snapSettings( QStringList& layerIdList, QStringList& enabledList, QStringList& snapTypeList, QStringList& toleranceUnitList, QStringList& toleranceList,
QStringList& avoidIntersectionList ) QStringList& avoidIntersectionList ) const
{ {
layerIdList = readListEntry( "Digitizing", "/LayerSnappingList" ); layerIdList = readListEntry( "Digitizing", "/LayerSnappingList" );
enabledList = readListEntry( "Digitizing", "/LayerSnappingEnabledList" ); enabledList = readListEntry( "Digitizing", "/LayerSnappingEnabledList" );
Expand All @@ -1745,6 +1745,17 @@ void QgsProject::snapSettings( QStringList& layerIdList, QStringList& enabledLis
avoidIntersectionList = readListEntry( "Digitizing", "/AvoidIntersectionsList" ); avoidIntersectionList = readListEntry( "Digitizing", "/AvoidIntersectionsList" );
} }


void QgsProject::setTopologicalEditing( bool enabled )
{
QgsProject::instance()->writeEntry( "Digitizing", "/TopologicalEditing", ( enabled ? 1 : 0 ) );
emit snapSettingsChanged();
}

bool QgsProject::topologicalEditing() const
{
return ( QgsProject::instance()->readNumEntry( "Digitizing", "/TopologicalEditing", 0 ) > 0 );
}

void QgsProjectBadLayerDefaultHandler::handleBadLayers( QList<QDomNode> /*layers*/, QDomDocument /*projectDom*/ ) void QgsProjectBadLayerDefaultHandler::handleBadLayers( QList<QDomNode> /*layers*/, QDomDocument /*projectDom*/ )
{ {
// just ignore any bad layers // just ignore any bad layers
Expand Down
7 changes: 5 additions & 2 deletions src/core/qgsproject.h
Expand Up @@ -295,7 +295,10 @@ class CORE_EXPORT QgsProject : public QObject
bool avoidIntersection ); bool avoidIntersection );


bool snapSettingsForLayer( const QString& layerId, bool& enabled, QgsSnapper::SnappingType& type, QgsTolerance::UnitType& units, double& tolerance, bool snapSettingsForLayer( const QString& layerId, bool& enabled, QgsSnapper::SnappingType& type, QgsTolerance::UnitType& units, double& tolerance,
bool& avoidIntersection ); bool& avoidIntersection ) const;

void setTopologicalEditing( bool enabled );
bool topologicalEditing() const;


protected: protected:


Expand Down Expand Up @@ -353,7 +356,7 @@ class CORE_EXPORT QgsProject : public QObject
QHash< QString, QPair< QString, bool> > mEmbeddedLayers; QHash< QString, QPair< QString, bool> > mEmbeddedLayers;


void snapSettings( QStringList& layerIdList, QStringList& enabledList, QStringList& snapTypeList, QStringList& snapUnitList, QStringList& toleranceUnitList, void snapSettings( QStringList& layerIdList, QStringList& enabledList, QStringList& snapTypeList, QStringList& snapUnitList, QStringList& toleranceUnitList,
QStringList& avoidIntersectionList ); QStringList& avoidIntersectionList ) const;


}; // QgsProject }; // QgsProject


Expand Down

0 comments on commit 6188322

Please sign in to comment.