Skip to content

Commit

Permalink
Code factorization
Browse files Browse the repository at this point in the history
  • Loading branch information
YoannQDQ authored and 3nids committed Mar 16, 2023
1 parent 2ab74cb commit bc4339f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 46 deletions.
68 changes: 22 additions & 46 deletions src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.cpp
Expand Up @@ -93,22 +93,7 @@ void QgsMapToolsDigitizingTechniqueManager::setupToolBars()

mDigitizeModeToolButton->setMenu( digitizeMenu );

const Qgis::CaptureTechnique technique = settingsDigitizingTechnique->value();
switch ( technique )
{
case Qgis::CaptureTechnique::StraightSegments:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithSegment );
break;
case Qgis::CaptureTechnique::CircularString:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithCurve );
break;
case Qgis::CaptureTechnique::Streaming:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionStreamDigitize );
break;
case Qgis::CaptureTechnique::Shape:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeShape );
break;
}
updateDigitizeModeButton( settingsDigitizingTechnique->value() );

QgisApp::instance()->mDigitizeToolBar->insertWidget( QgisApp::instance()->mDigitizeToolBar->actions().at( 3 ), mDigitizeModeToolButton );

Expand Down Expand Up @@ -163,21 +148,7 @@ void QgsMapToolsDigitizingTechniqueManager::setCaptureTechnique( Qgis::CaptureTe

mTechniqueActions.value( technique )->setChecked( true );

switch ( technique )
{
case Qgis::CaptureTechnique::StraightSegments:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithSegment );
break;
case Qgis::CaptureTechnique::CircularString:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithCurve );
break;
case Qgis::CaptureTechnique::Streaming:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionStreamDigitize );
break;
case Qgis::CaptureTechnique::Shape:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeShape );
break;
}
updateDigitizeModeButton( technique );

// QgisApp::captureTools returns all registered capture tools + the eventual current capture tool
const QList< QgsMapToolCapture * > tools = QgisApp::instance()->captureTools();
Expand Down Expand Up @@ -263,6 +234,25 @@ void QgsMapToolsDigitizingTechniqueManager::setupTool( QgsMapToolCapture *tool )
} );
}

void QgsMapToolsDigitizingTechniqueManager::updateDigitizeModeButton( const Qgis::CaptureTechnique technique )
{
switch ( technique )
{
case Qgis::CaptureTechnique::StraightSegments:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithSegment );
break;
case Qgis::CaptureTechnique::CircularString:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithCurve );
break;
case Qgis::CaptureTechnique::Streaming:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionStreamDigitize );
break;
case Qgis::CaptureTechnique::Shape:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeShape );
break;
}
}

void QgsMapToolsDigitizingTechniqueManager::enableDigitizingTechniqueActions( bool enabled, QAction *triggeredFromToolAction )
{
QgsSettings settings;
Expand Down Expand Up @@ -303,21 +293,7 @@ void QgsMapToolsDigitizingTechniqueManager::enableDigitizingTechniqueActions( bo
}

// Ensure the digitizing mode tool button is set to the correct action
switch ( actualCurrentTechnique )
{
case Qgis::CaptureTechnique::StraightSegments:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithSegment );
break;
case Qgis::CaptureTechnique::CircularString:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeWithCurve );
break;
case Qgis::CaptureTechnique::Streaming:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionStreamDigitize );
break;
case Qgis::CaptureTechnique::Shape:
mDigitizeModeToolButton->setDefaultAction( QgisApp::instance()->mActionDigitizeShape );
break;
}
updateDigitizeModeButton( actualCurrentTechnique );

QMap<Qgis::CaptureTechnique, QAction *>::const_iterator cit = mTechniqueActions.constBegin();
for ( ; cit != mTechniqueActions.constEnd(); ++ cit )
Expand Down
2 changes: 2 additions & 0 deletions src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.h
Expand Up @@ -74,6 +74,8 @@ class APP_EXPORT QgsMapToolsDigitizingTechniqueManager : public QObject
private:
void setupTool( QgsMapToolCapture *tool );

void updateDigitizeModeButton( const Qgis::CaptureTechnique technique );

QMap<Qgis::CaptureTechnique, QAction *> mTechniqueActions;
QHash<QString, QAction *> mShapeActions;
QMap<QgsMapToolShapeAbstract::ShapeCategory, QToolButton *> mShapeCategoryButtons;
Expand Down

0 comments on commit bc4339f

Please sign in to comment.