QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
symbology
qgsdatadefinedsizelegendwidget.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsdatadefinedsizelegendwidget.h
3
--------------------------------------
4
Date : June 2017
5
Copyright : (C) 2017 by Martin Dobias
6
Email : wonder dot sk at gmail dot com
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 QGSDATADEFINEDSIZELEGENDWIDGET_H
17
#define QGSDATADEFINEDSIZELEGENDWIDGET_H
18
19
#include "ui_qgsdatadefinedsizelegendwidget.h"
20
21
#include <memory>
22
23
#include "qgis_gui.h"
24
#include "
qgis_sip.h
"
25
#include "
qgsdoublevalidator.h
"
26
#include "
qgspanelwidget.h
"
27
#include "
qgsproperty.h
"
28
29
#include <QStyledItemDelegate>
30
31
class
QStandardItemModel;
32
33
class
QgsDataDefinedSizeLegend
;
34
class
QgsLayerTree
;
35
class
QgsLayerTreeLayer
;
36
class
QgsLayerTreeModel
;
37
class
QgsMapCanvas
;
38
class
QgsMarkerSymbol
;
39
class
QgsProperty
;
40
class
QgsVectorLayer
;
41
47
class
GUI_EXPORT
QgsDataDefinedSizeLegendWidget
:
public
QgsPanelWidget
,
private
Ui::QgsDataDefinedSizeLegendWidget
48
{
49
Q_OBJECT
50
public
:
57
explicit
QgsDataDefinedSizeLegendWidget
(
58
const
QgsDataDefinedSizeLegend
*ddsLegend,
const
QgsProperty
&ddSize,
QgsMarkerSymbol
*overrideSymbol
SIP_TRANSFER
,
QgsMapCanvas
*canvas =
nullptr
, QWidget *parent
SIP_TRANSFERTHIS
=
nullptr
59
);
60
~QgsDataDefinedSizeLegendWidget
()
override
;
61
63
QgsDataDefinedSizeLegend
*
dataDefinedSizeLegend
()
const
SIP_FACTORY
;
64
65
signals:
66
67
private
slots:
68
void
updatePreview();
69
void
changeSymbol();
70
void
addSizeClass();
71
void
removeSizeClass();
72
void
onSizeClassesChanged();
73
74
private
:
75
std::unique_ptr<QgsMarkerSymbol> mSourceSymbol;
76
bool
mOverrideSymbol =
false
;
77
QgsProperty
mSizeProperty;
78
QgsLayerTreeModel
*mPreviewModel =
nullptr
;
79
std::unique_ptr<QgsLayerTree> mPreviewTree;
80
QgsLayerTreeLayer
*mPreviewLayerNode =
nullptr
;
81
std::unique_ptr<QgsVectorLayer> mPreviewLayer;
82
QgsMapCanvas
*mMapCanvas =
nullptr
;
83
QStandardItemModel *mSizeClassesModel =
nullptr
;
84
};
85
86
#ifndef SIP_RUN
88
90
class
SizeClassDelegate :
public
QStyledItemDelegate
91
{
92
Q_OBJECT
93
94
public
:
95
SizeClassDelegate( QObject *parent )
96
: QStyledItemDelegate( parent )
97
{}
98
99
QWidget *createEditor( QWidget *parent,
const
QStyleOptionViewItem &,
const
QModelIndex & )
const override
100
{
101
QLineEdit *lineEdit =
new
QLineEdit( parent );
102
QgsDoubleValidator *validator =
new
QgsDoubleValidator( 0, 1e6, 1, lineEdit );
103
lineEdit->setValidator( validator );
104
return
lineEdit;
105
}
106
};
107
109
#endif
110
111
#endif
// QGSDATADEFINEDSIZELEGENDWIDGET_H
QgsDataDefinedSizeLegendWidget::QgsDataDefinedSizeLegendWidget
QgsDataDefinedSizeLegendWidget(const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol, QgsMapCanvas *canvas=nullptr, QWidget *parent=nullptr)
Creates the dialog and initializes the content to what is passed in the legend configuration (may be ...
Definition
qgsdatadefinedsizelegendwidget.cpp:40
QgsDataDefinedSizeLegendWidget::dataDefinedSizeLegend
QgsDataDefinedSizeLegend * dataDefinedSizeLegend() const
Returns configuration as set up in the dialog (may be nullptr). Ownership is passed to the caller.
Definition
qgsdatadefinedsizelegendwidget.cpp:144
QgsDataDefinedSizeLegend
Object that keeps configuration of appearance of marker symbol's data-defined size in legend.
Definition
qgsdatadefinedsizelegend.h:42
QgsLayerTreeLayer
Layer tree node points to a map layer.
Definition
qgslayertreelayer.h:47
QgsLayerTreeModel
A model representing the layer tree, including layers and groups of layers.
Definition
qgslayertreemodel.h:61
QgsLayerTree
Namespace with helper functions for layer tree operations.
Definition
qgslayertree.h:37
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition
qgsmapcanvas.h:96
QgsMarkerSymbol
A marker symbol type, for rendering Point and MultiPoint geometries.
Definition
qgsmarkersymbol.h:31
QgsPanelWidget::QgsPanelWidget
QgsPanelWidget(QWidget *parent=nullptr)
Base class for any widget that can be shown as an inline panel.
Definition
qgspanelwidget.cpp:30
QgsProperty
A store for object properties.
Definition
qgsproperty.h:228
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
qgis_sip.h
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition
qgis_sip.h:52
SIP_TRANSFER
#define SIP_TRANSFER
Definition
qgis_sip.h:35
SIP_FACTORY
#define SIP_FACTORY
Definition
qgis_sip.h:83
qgsdoublevalidator.h
qgspanelwidget.h
qgsproperty.h
Generated on
for QGIS API Documentation by
1.17.0