QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
editorwidgets
qgsclassificationwidgetwrapper.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsclassificationwidgetwrapper.cpp
3
--------------------------------------
4
Date : 5.1.2014
5
Copyright : (C) 2014 Matthias Kuhn
6
Email : matthias 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 "
qgsclassificationwidgetwrapper.h
"
17
18
#include "
qgscategorizedsymbolrenderer.h
"
19
#include "
qgsvectorlayer.h
"
20
21
#include "moc_qgsclassificationwidgetwrapper.cpp"
22
23
QgsClassificationWidgetWrapper::QgsClassificationWidgetWrapper
(
QgsVectorLayer
*
layer
,
int
fieldIdx
, QWidget *editor, QWidget *parent )
24
:
QgsEditorWidgetWrapper
(
layer
,
fieldIdx
, editor, parent )
25
26
{}
27
28
QVariant
QgsClassificationWidgetWrapper::value
()
const
29
{
30
return
mComboBox->currentData();
31
}
32
33
void
QgsClassificationWidgetWrapper::showIndeterminateState
()
34
{
35
whileBlocking
( mComboBox )->setCurrentIndex( -1 );
36
}
37
38
QWidget *
QgsClassificationWidgetWrapper::createWidget
( QWidget *parent )
39
{
40
QComboBox *combo =
new
QComboBox( parent );
41
combo->setMinimumContentsLength( 1 );
42
combo->setSizeAdjustPolicy( QComboBox::SizeAdjustPolicy::AdjustToMinimumContentsLengthWithIcon );
43
return
combo;
44
}
45
46
void
QgsClassificationWidgetWrapper::initWidget
( QWidget *editor )
47
{
48
mComboBox = qobject_cast<QComboBox *>( editor );
49
50
if
( mComboBox )
51
{
52
const
QgsCategorizedSymbolRenderer
*csr =
dynamic_cast<
const
QgsCategorizedSymbolRenderer
*
>
(
layer
()->
renderer
() );
53
if
( csr )
54
{
55
const
QgsCategoryList
categories = csr->
categories
();
56
for
(
int
i = 0; i < categories.size(); i++ )
57
{
58
QString label = categories[i].label();
59
const
QString
value
= categories[i].value().toString();
60
if
( label.isEmpty() )
61
label =
value
;
62
63
mComboBox->addItem( label,
value
);
64
}
65
}
66
67
connect( mComboBox,
static_cast<
void
( QComboBox::* )(
int
)
>
( &QComboBox::currentIndexChanged ),
this
,
static_cast<
void
(
QgsEditorWidgetWrapper
::* )()
>
( &
QgsEditorWidgetWrapper::emitValueChanged
) );
68
}
69
}
70
71
bool
QgsClassificationWidgetWrapper::valid
()
const
72
{
73
return
mComboBox;
74
}
75
76
void
QgsClassificationWidgetWrapper::updateValues(
const
QVariant &value,
const
QVariantList & )
77
{
78
mComboBox->setCurrentIndex( mComboBox->findData(
value
) );
79
}
QgsCategorizedSymbolRenderer
A feature renderer which represents features using a list of renderer categories.
Definition
qgscategorizedsymbolrenderer.h:182
QgsCategorizedSymbolRenderer::categories
const QgsCategoryList & categories() const
Returns a list of all categories recognized by the renderer.
Definition
qgscategorizedsymbolrenderer.h:225
QgsClassificationWidgetWrapper::createWidget
QWidget * createWidget(QWidget *parent) override
This method should create a new widget with the provided parent.
Definition
qgsclassificationwidgetwrapper.cpp:38
QgsClassificationWidgetWrapper::initWidget
void initWidget(QWidget *editor) override
This method should initialize the editor widget with runtime data.
Definition
qgsclassificationwidgetwrapper.cpp:46
QgsClassificationWidgetWrapper::valid
bool valid() const override
Returns true if the widget has been properly initialized.
Definition
qgsclassificationwidgetwrapper.cpp:71
QgsClassificationWidgetWrapper::value
QVariant value() const override
Will be used to access the widget's value.
Definition
qgsclassificationwidgetwrapper.cpp:28
QgsClassificationWidgetWrapper::showIndeterminateState
void showIndeterminateState() override
Sets the widget to display in an indeterminate "mixed value" state.
Definition
qgsclassificationwidgetwrapper.cpp:33
QgsClassificationWidgetWrapper::QgsClassificationWidgetWrapper
QgsClassificationWidgetWrapper(QgsVectorLayer *layer, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr)
Constructor for QgsClassificationWidgetWrapper.
Definition
qgsclassificationwidgetwrapper.cpp:23
QgsEditorWidgetWrapper::fieldIdx
int fieldIdx() const
Access the field index.
Definition
qgseditorwidgetwrapper.cpp:37
QgsEditorWidgetWrapper::QgsEditorWidgetWrapper
QgsEditorWidgetWrapper(QgsVectorLayer *vl, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr)
Create a new widget wrapper.
Definition
qgseditorwidgetwrapper.cpp:32
QgsEditorWidgetWrapper::emitValueChanged
void emitValueChanged()
Will call the value() method to determine the emitted value.
Definition
qgseditorwidgetwrapper.cpp:98
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
QgsVectorLayer::renderer
QgsFeatureRenderer * renderer()
Returns the feature renderer used for rendering the features in the layer in 2D map views.
Definition
qgsvectorlayer.h:952
QgsWidgetWrapper::layer
QgsVectorLayer * layer() const
Returns the vector layer associated with the widget.
Definition
qgswidgetwrapper.cpp:94
whileBlocking
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.
Definition
qgis.h:7637
qgscategorizedsymbolrenderer.h
QgsCategoryList
QList< QgsRendererCategory > QgsCategoryList
Definition
qgscategorizedsymbolrenderer.h:174
qgsclassificationwidgetwrapper.h
qgsvectorlayer.h
Generated on
for QGIS API Documentation by
1.17.0