QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
qgsadvanceddigitizingtoolsregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsadvanceddigitizingtoolsregistry.cpp
3
-------------------
4
begin : July 27 2024
5
copyright : (C) 2024 by Mathieu Pellerin
6
email : mathieu at opengis dot ch
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsadvanceddigitizingtoolsregistry.h
"
17
18
#include "
qgsadvanceddigitizingtools.h
"
19
#include "
qgsapplication.h
"
20
21
#include <QString>
22
23
using namespace
Qt::StringLiterals;
24
25
QgsAdvancedDigitizingTool
*
QgsAdvancedDigitizingToolAbstractMetadata::createTool
(
QgsMapCanvas
*,
QgsAdvancedDigitizingDockWidget
* )
26
{
27
return
nullptr
;
28
}
29
30
QgsAdvancedDigitizingTool
*
QgsAdvancedDigitizingToolMetadata::createTool
(
QgsMapCanvas
*canvas,
QgsAdvancedDigitizingDockWidget
*cadDockWidget )
31
{
32
return
mToolFunc
?
mToolFunc
( canvas, cadDockWidget ) :
QgsAdvancedDigitizingToolAbstractMetadata::createTool
( canvas, cadDockWidget );
33
}
34
35
QgsAdvancedDigitizingToolsRegistry::~QgsAdvancedDigitizingToolsRegistry
()
36
{
37
qDeleteAll( mTools );
38
}
39
40
void
QgsAdvancedDigitizingToolsRegistry::addDefaultTools
()
41
{
42
addTool
(
new
QgsAdvancedDigitizingToolMetadata
(
43
u
"circlesintersection"
_s,
44
QObject::tr(
"2-Circle Point Intersection"
),
45
QgsApplication::getThemeIcon
( u
"/cadtools/circlesintersection.svg"
_s ),
46
[](
QgsMapCanvas
*canvas,
QgsAdvancedDigitizingDockWidget
*cadDockWidget ) ->
QgsAdvancedDigitizingTool
* {
return
new
QgsAdvancedDigitizingCirclesIntersectionTool
( canvas, cadDockWidget ); }
47
) );
48
}
49
50
bool
QgsAdvancedDigitizingToolsRegistry::addTool
(
QgsAdvancedDigitizingToolAbstractMetadata
*toolMetaData )
51
{
52
if
( mTools.contains( toolMetaData->
name
() ) )
53
return
false
;
54
55
mTools[toolMetaData->
name
()] = toolMetaData;
56
57
return
true
;
58
}
59
60
61
bool
QgsAdvancedDigitizingToolsRegistry::removeTool
(
const
QString &name )
62
{
63
if
( !mTools.contains( name ) )
64
return
false
;
65
66
delete
mTools.take( name );
67
68
return
true
;
69
}
70
71
QgsAdvancedDigitizingToolAbstractMetadata
*
QgsAdvancedDigitizingToolsRegistry::toolMetadata
(
const
QString &name )
72
{
73
if
( !mTools.contains( name ) )
74
return
nullptr
;
75
76
return
mTools[name];
77
}
78
79
const
QStringList
QgsAdvancedDigitizingToolsRegistry::toolMetadataNames
()
const
80
{
81
return
mTools.keys();
82
}
QgsAdvancedDigitizingCirclesIntersectionTool
An advanced digitizing tool which handles the selection of a point at the intersection of two circles...
Definition
qgsadvanceddigitizingtools.h:109
QgsAdvancedDigitizingDockWidget
A dockable widget used to handle the CAD tools on top of a selection of map tools.
Definition
qgsadvanceddigitizingdockwidget.h:55
QgsAdvancedDigitizingToolAbstractMetadata
Stores metadata about one advanced digitizing tool class.
Definition
qgsadvanceddigitizingtoolsregistry.h:35
QgsAdvancedDigitizingToolAbstractMetadata::name
QString name() const
Returns the tool's unique name.
Definition
qgsadvanceddigitizingtoolsregistry.h:53
QgsAdvancedDigitizingToolAbstractMetadata::createTool
virtual QgsAdvancedDigitizingTool * createTool(QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget)
Returns new tool of this type. Return nullptr on error.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:25
QgsAdvancedDigitizingToolMetadata
Convenience metadata class that uses static functions to handle advanced digitizing tool creation.
Definition
qgsadvanceddigitizingtoolsregistry.h:81
QgsAdvancedDigitizingToolMetadata::createTool
QgsAdvancedDigitizingTool * createTool(QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget) override
Returns new tool of this type. Return nullptr on error.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:30
QgsAdvancedDigitizingToolMetadata::mToolFunc
QgsAdvancedDigitizingToolFunc mToolFunc
Definition
qgsadvanceddigitizingtoolsregistry.h:106
QgsAdvancedDigitizingTool
An abstract class for advanced digitizing tools.
Definition
qgsadvanceddigitizingtools.h:38
QgsAdvancedDigitizingToolsRegistry::removeTool
bool removeTool(const QString &name)
Removes the advanced digitizing tool matching the provided name and return true on success.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:61
QgsAdvancedDigitizingToolsRegistry::addTool
bool addTool(QgsAdvancedDigitizingToolAbstractMetadata *toolMetaData)
Adds an advanced digitizing tool (take ownership) and return true on success.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:50
QgsAdvancedDigitizingToolsRegistry::toolMetadata
QgsAdvancedDigitizingToolAbstractMetadata * toolMetadata(const QString &name)
Returns the advanced digitizing tool matching the provided name or nullptr when no match available.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:71
QgsAdvancedDigitizingToolsRegistry::addDefaultTools
void addDefaultTools()
Adds the default tools shipped in QGIS.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:40
QgsAdvancedDigitizingToolsRegistry::toolMetadataNames
const QStringList toolMetadataNames() const
Returns the list of registered tool names.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:79
QgsAdvancedDigitizingToolsRegistry::~QgsAdvancedDigitizingToolsRegistry
~QgsAdvancedDigitizingToolsRegistry()
Definition
qgsadvanceddigitizingtoolsregistry.cpp:35
QgsApplication::getThemeIcon
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
Definition
qgsapplication.cpp:904
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition
qgsmapcanvas.h:96
qgsadvanceddigitizingtools.h
qgsadvanceddigitizingtoolsregistry.h
qgsapplication.h
Generated on
for QGIS API Documentation by
1.17.0