QGIS API Documentation
3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
src
gui
qgsadvanceddigitizingtoolsregistry.h
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
#ifndef QGSADVANCEDDIGITIZINGTOOLSREGSITRY_H
17
#define QGSADVANCEDDIGITIZINGTOOLSREGSITRY_H
18
19
#include "qgis_gui.h"
20
#include "
qgis_sip.h
"
21
22
#include <QIcon>
23
#include <QMap>
24
25
class
QgsAdvancedDigitizingDockWidget
;
26
class
QgsAdvancedDigitizingTool
;
27
class
QgsMapCanvas
;
28
34
class
GUI_EXPORT
QgsAdvancedDigitizingToolAbstractMetadata
35
{
36
public
:
44
QgsAdvancedDigitizingToolAbstractMetadata
(
const
QString &
name
,
const
QString &
visibleName
,
const
QIcon &
icon
= QIcon() )
45
:
mName
(
name
)
46
,
mVisibleName
(
visibleName
)
47
,
mIcon
(
icon
)
48
{}
49
50
virtual
~QgsAdvancedDigitizingToolAbstractMetadata
() =
default
;
51
53
QString
name
()
const
{
return
mName
; }
54
56
QString
visibleName
()
const
{
return
mVisibleName
; }
57
59
QIcon
icon
()
const
{
return
mIcon
; }
60
62
virtual
QgsAdvancedDigitizingTool
*createTool(
QgsMapCanvas
*canvas,
QgsAdvancedDigitizingDockWidget
*cadDockWidget )
SIP_FACTORY
;
63
64
protected
:
65
QString
mName
;
66
QString
mVisibleName
;
67
QIcon
mIcon
;
68
};
69
70
#ifndef SIP_RUN
71
72
typedef
std::function<
QgsAdvancedDigitizingTool
*(
QgsMapCanvas
*,
QgsAdvancedDigitizingDockWidget
* )>
QgsAdvancedDigitizingToolFunc
SIP_SKIP
;
73
80
class
GUI_EXPORT
QgsAdvancedDigitizingToolMetadata
:
public
QgsAdvancedDigitizingToolAbstractMetadata
81
{
82
public
:
92
QgsAdvancedDigitizingToolMetadata
(
const
QString &
name
,
const
QString &
visibleName
,
const
QIcon &
icon
= QIcon(),
const
QgsAdvancedDigitizingToolFunc
&
toolFunction
=
nullptr
)
93
:
QgsAdvancedDigitizingToolAbstractMetadata
(
name
,
visibleName
,
icon
)
94
,
mToolFunc
(
toolFunction
)
95
{}
96
98
QgsAdvancedDigitizingToolFunc
toolFunction
()
const
{
return
mToolFunc
; }
99
101
void
setToolFunction
(
const
QgsAdvancedDigitizingToolFunc
&function ) {
mToolFunc
= function; }
102
103
QgsAdvancedDigitizingTool
*createTool(
QgsMapCanvas
*canvas,
QgsAdvancedDigitizingDockWidget
*cadDockWidget )
override
;
104
105
protected
:
106
QgsAdvancedDigitizingToolFunc
mToolFunc
=
nullptr
;
107
};
108
109
#endif
110
120
class
GUI_EXPORT
QgsAdvancedDigitizingToolsRegistry
121
{
122
public
:
123
QgsAdvancedDigitizingToolsRegistry
() =
default
;
124
~QgsAdvancedDigitizingToolsRegistry
();
125
126
QgsAdvancedDigitizingToolsRegistry
(
const
QgsAdvancedDigitizingToolsRegistry
&rh ) =
delete
;
127
QgsAdvancedDigitizingToolsRegistry
&
operator=
(
const
QgsAdvancedDigitizingToolsRegistry
&rh ) =
delete
;
128
130
void
addDefaultTools
();
131
133
bool
addTool
(
QgsAdvancedDigitizingToolAbstractMetadata
*toolMetaData
SIP_TRANSFER
);
134
136
bool
removeTool
(
const
QString &name );
137
139
QgsAdvancedDigitizingToolAbstractMetadata
*
toolMetadata
(
const
QString &name );
140
142
const
QStringList
toolMetadataNames
()
const
;
143
144
private
:
145
#ifdef SIP_RUN
146
QgsAdvancedDigitizingToolsRegistry
(
const
QgsAdvancedDigitizingToolsRegistry
&rh );
147
#endif
148
149
QMap<QString, QgsAdvancedDigitizingToolAbstractMetadata *> mTools;
150
};
151
152
#endif
// QGSADVANCEDDIGITIZINGTOOLSREGSITRY_H
QgsAdvancedDigitizingDockWidget
A dockable widget used to handle the CAD tools on top of a selection of map tools.
Definition
qgsadvanceddigitizingdockwidget.h:52
QgsAdvancedDigitizingToolAbstractMetadata
Stores metadata about one advanced digitizing tool class.
Definition
qgsadvanceddigitizingtoolsregistry.h:35
QgsAdvancedDigitizingToolAbstractMetadata::visibleName
QString visibleName() const
Returns the tool's translatable user-friendly name.
Definition
qgsadvanceddigitizingtoolsregistry.h:56
QgsAdvancedDigitizingToolAbstractMetadata::name
QString name() const
Returns the tool's unique name.
Definition
qgsadvanceddigitizingtoolsregistry.h:53
QgsAdvancedDigitizingToolAbstractMetadata::icon
QIcon icon() const
Returns the tool's icon.
Definition
qgsadvanceddigitizingtoolsregistry.h:59
QgsAdvancedDigitizingToolAbstractMetadata::mIcon
QIcon mIcon
Definition
qgsadvanceddigitizingtoolsregistry.h:67
QgsAdvancedDigitizingToolAbstractMetadata::mVisibleName
QString mVisibleName
Definition
qgsadvanceddigitizingtoolsregistry.h:66
QgsAdvancedDigitizingToolAbstractMetadata::QgsAdvancedDigitizingToolAbstractMetadata
QgsAdvancedDigitizingToolAbstractMetadata(const QString &name, const QString &visibleName, const QIcon &icon=QIcon())
Constructor for QgsAdvancedDigitizingToolAbstractMetadata with the specified tool name.
Definition
qgsadvanceddigitizingtoolsregistry.h:44
QgsAdvancedDigitizingToolAbstractMetadata::~QgsAdvancedDigitizingToolAbstractMetadata
virtual ~QgsAdvancedDigitizingToolAbstractMetadata()=default
QgsAdvancedDigitizingToolAbstractMetadata::mName
QString mName
Definition
qgsadvanceddigitizingtoolsregistry.h:65
QgsAdvancedDigitizingToolMetadata::toolFunction
QgsAdvancedDigitizingToolFunc toolFunction() const
Returns the tool creation function.
Definition
qgsadvanceddigitizingtoolsregistry.h:98
QgsAdvancedDigitizingToolMetadata::mToolFunc
QgsAdvancedDigitizingToolFunc mToolFunc
Definition
qgsadvanceddigitizingtoolsregistry.h:106
QgsAdvancedDigitizingToolMetadata::setToolFunction
void setToolFunction(const QgsAdvancedDigitizingToolFunc &function)
Sets the tool creation function.
Definition
qgsadvanceddigitizingtoolsregistry.h:101
QgsAdvancedDigitizingToolMetadata::QgsAdvancedDigitizingToolMetadata
QgsAdvancedDigitizingToolMetadata(const QString &name, const QString &visibleName, const QIcon &icon=QIcon(), const QgsAdvancedDigitizingToolFunc &toolFunction=nullptr)
Constructor for QgsAdvancedDigitizingToolAbstractMetadata with the specified tool name.
Definition
qgsadvanceddigitizingtoolsregistry.h:92
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:54
QgsAdvancedDigitizingToolsRegistry::QgsAdvancedDigitizingToolsRegistry
QgsAdvancedDigitizingToolsRegistry()=default
QgsAdvancedDigitizingToolsRegistry::addTool
bool addTool(QgsAdvancedDigitizingToolAbstractMetadata *toolMetaData)
Adds an advanced digitizing tool (take ownership) and return true on success.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:43
QgsAdvancedDigitizingToolsRegistry::QgsAdvancedDigitizingToolsRegistry
QgsAdvancedDigitizingToolsRegistry(const QgsAdvancedDigitizingToolsRegistry &rh)=delete
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:64
QgsAdvancedDigitizingToolsRegistry::addDefaultTools
void addDefaultTools()
Adds the default tools shipped in QGIS.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:36
QgsAdvancedDigitizingToolsRegistry::toolMetadataNames
const QStringList toolMetadataNames() const
Returns the list of registered tool names.
Definition
qgsadvanceddigitizingtoolsregistry.cpp:72
QgsAdvancedDigitizingToolsRegistry::operator=
QgsAdvancedDigitizingToolsRegistry & operator=(const QgsAdvancedDigitizingToolsRegistry &rh)=delete
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition
qgsmapcanvas.h:91
qgis_sip.h
SIP_SKIP
#define SIP_SKIP
Definition
qgis_sip.h:134
SIP_TRANSFER
#define SIP_TRANSFER
Definition
qgis_sip.h:36
SIP_FACTORY
#define SIP_FACTORY
Definition
qgis_sip.h:84
QgsAdvancedDigitizingToolFunc
std::function< QgsAdvancedDigitizingTool *(QgsMapCanvas *, QgsAdvancedDigitizingDockWidget *)> QgsAdvancedDigitizingToolFunc
Definition
qgsadvanceddigitizingtoolsregistry.h:72
Generated on
for QGIS API Documentation by
1.15.0