diff --git a/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.cpp b/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.cpp index 134dbfafb6f..96336ed34d1 100644 --- a/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.cpp +++ b/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.cpp @@ -30,9 +30,8 @@ #include #include -QgsMapToolsDigitizingTechniqueManager::QgsMapToolsDigitizingTechniqueManager( QgsAppMapTools *mapTools, QObject *parent ) +QgsMapToolsDigitizingTechniqueManager::QgsMapToolsDigitizingTechniqueManager( QObject *parent ) : QObject( parent ) - , mMapTools( mapTools ) { mTechniqueActions.insert( QgsMapToolCapture::CaptureTechnique::StraightSegments, QgisApp::instance()->mActionDigitizeWithSegment ); mTechniqueActions.insert( QgsMapToolCapture::CaptureTechnique::CircularString, QgisApp::instance()->mActionDigitizeWithCurve ); @@ -45,7 +44,7 @@ QgsMapToolsDigitizingTechniqueManager::QgsMapToolsDigitizingTechniqueManager( Qg void QgsMapToolsDigitizingTechniqueManager::setupCanvasTools() { - const QList< QgsMapToolCapture * > captureTools = mMapTools->captureTools(); + const QList< QgsMapToolCapture * > captureTools = QgisApp::instance()->captureTools(); for ( QgsMapToolCapture *tool : captureTools ) { connect( tool->action(), &QAction::toggled, this, [this, tool]( bool checked ) { enableDigitizingTechniqueActions( checked, tool->action() ); } ); diff --git a/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.h b/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.h index 3f782597009..494b55fb486 100644 --- a/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.h +++ b/src/app/maptools/qgsmaptoolsdigitizingtechniquemanager.h @@ -27,7 +27,6 @@ class QgsSpinBox; -class QgsAppMapTools; class QAction; class QToolButton; @@ -58,7 +57,7 @@ class APP_EXPORT QgsMapToolsDigitizingTechniqueManager : public QObject static const inline QgsSettingsEntryString settingMapToolShapeDefaultForShape = QgsSettingsEntryString( QStringLiteral( "shape-map-tools/%1/default" ), QgsSettings::App, QString(), QObject::tr( "Default map tool for given shape category" ) ) SIP_SKIP; static const inline QgsSettingsEntryString settingMapToolShapeCurrent = QgsSettingsEntryString( QStringLiteral( "shape-map-tools/current" ), QgsSettings::App, QString(), QObject::tr( "Current shape map tool" ) ) SIP_SKIP; - QgsMapToolsDigitizingTechniqueManager( QgsAppMapTools *mapTools, QObject *parent ); + QgsMapToolsDigitizingTechniqueManager( QObject *parent ); ~QgsMapToolsDigitizingTechniqueManager(); void setupToolBars(); void setupCanvasTools(); @@ -72,8 +71,6 @@ class APP_EXPORT QgsMapToolsDigitizingTechniqueManager : public QObject void setShapeTool( const QString &shapeToolId ); private: - QgsAppMapTools *mMapTools = nullptr; - QMap mTechniqueActions; QHash mShapeActions; QMap mShapeCategoryButtons; diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index f2aa2285194..3a80a8c206f 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -1193,7 +1193,7 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipBadLayers // create map tools mMapTools = std::make_unique< QgsAppMapTools >( mMapCanvas, mAdvancedDigitizingDockWidget ); - mDigitizingTechniqueManager = new QgsMapToolsDigitizingTechniqueManager( mMapTools.get(), this ); + mDigitizingTechniqueManager = new QgsMapToolsDigitizingTechniqueManager( this ); QgsGui::mapToolShapeRegistry()->addMapTool( new QgsMapToolShapeCircularStringRadiusMetadata() ); QgsGui::mapToolShapeRegistry()->addMapTool( new QgsMapToolShapeCircle2PointsMetadata() ); @@ -1884,6 +1884,8 @@ QgisApp::QgisApp() mPanelMenu = new QMenu( this ); mProgressBar = new QProgressBar( this ); mStatusBar = new QgsStatusBar( this ); + mMapTools = std::make_unique< QgsAppMapTools >( mMapCanvas, mAdvancedDigitizingDockWidget ); + mDigitizingTechniqueManager = new QgsMapToolsDigitizingTechniqueManager( this ); mBearingNumericFormat.reset( QgsLocalDefaultSettings::bearingFormat() ); // More tests may need more members to be initialized