QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
editorwidgets
qgsrangewidgetfactory.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsrangewidgetfactory.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 "
qgsrangewidgetfactory.h
"
17
18
#include "
qgsrangeconfigdlg.h
"
19
#include "
qgsrangewidgetwrapper.h
"
20
#include "
qgsvectorlayer.h
"
21
22
#include <QDial>
23
24
QgsRangeWidgetFactory::QgsRangeWidgetFactory
(
const
QString &
name
,
const
QIcon &
icon
)
25
:
QgsEditorWidgetFactory
(
name
,
icon
)
26
{}
27
28
QgsEditorWidgetWrapper
*
QgsRangeWidgetFactory::create
(
QgsVectorLayer
*vl,
int
fieldIdx, QWidget *editor, QWidget *parent )
const
29
{
30
return
new
QgsRangeWidgetWrapper
( vl, fieldIdx, editor, parent );
31
}
32
33
QgsEditorConfigWidget
*
QgsRangeWidgetFactory::configWidget
(
QgsVectorLayer
*vl,
int
fieldIdx, QWidget *parent )
const
34
{
35
return
new
QgsRangeConfigDlg
( vl, fieldIdx, parent );
36
}
37
38
unsigned
int
QgsRangeWidgetFactory::fieldScore(
const
QgsVectorLayer
*vl,
int
fieldIdx )
const
39
{
40
const
QgsField
field = vl->
fields
().
at
( fieldIdx );
41
if
( field.
type
() == QMetaType::Type::Int )
42
return
20;
43
if
( field.
type
() == QMetaType::Type::Double )
44
return
5;
// low priority because the fixed number of decimal places may alter the original data
45
if
( field.
isNumeric
() )
46
return
5;
// widgets used support only signed 32bits (int) and double
47
return
0;
48
}
49
50
QHash<const char *, int>
QgsRangeWidgetFactory::supportedWidgetTypes
()
51
{
52
QHash<const char *, int> map = QHash<const char *, int>();
53
map.insert( QSlider::staticMetaObject.className(), 10 );
54
map.insert( QDial::staticMetaObject.className(), 10 );
55
map.insert( QSpinBox::staticMetaObject.className(), 10 );
56
map.insert( QDoubleSpinBox::staticMetaObject.className(), 10 );
57
return
map;
58
}
QgsEditorConfigWidget
Base class for widgets which configure editor widget types.
Definition
qgseditorconfigwidget.h:41
QgsEditorWidgetFactory::QgsEditorWidgetFactory
QgsEditorWidgetFactory(const QString &name, const QIcon &icon=QIcon())
Constructor.
Definition
qgseditorwidgetfactory.cpp:27
QgsEditorWidgetFactory::icon
QIcon icon() const
Returns the icon of this widget type.
Definition
qgseditorwidgetfactory.cpp:46
QgsEditorWidgetFactory::name
QString name() const
Returns the human readable identifier name of this widget type.
Definition
qgseditorwidgetfactory.cpp:41
QgsEditorWidgetWrapper
Manages an editor widget.
Definition
qgseditorwidgetwrapper.h:50
QgsField
Encapsulate a field in an attribute table or data source.
Definition
qgsfield.h:56
QgsField::type
QMetaType::Type type
Definition
qgsfield.h:63
QgsField::isNumeric
bool isNumeric
Definition
qgsfield.h:59
QgsFields::at
QgsField at(int i) const
Returns the field at particular index (must be in range 0..N-1).
Definition
qgsfields.cpp:209
QgsRangeConfigDlg
Configuration widget for range widgets.
Definition
qgsrangeconfigdlg.h:34
QgsRangeWidgetFactory::supportedWidgetTypes
QHash< const char *, int > supportedWidgetTypes() override
Returns a list of widget types which this editor widget supports.
Definition
qgsrangewidgetfactory.cpp:50
QgsRangeWidgetFactory::configWidget
QgsEditorConfigWidget * configWidget(QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const override
Override this in your implementation.
Definition
qgsrangewidgetfactory.cpp:33
QgsRangeWidgetFactory::create
QgsEditorWidgetWrapper * create(QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent) const override
Override this in your implementation.
Definition
qgsrangewidgetfactory.cpp:28
QgsRangeWidgetFactory::QgsRangeWidgetFactory
QgsRangeWidgetFactory(const QString &name, const QIcon &icon=QIcon())
Constructor for QgsRangeWidgetFactory, where name is a human-readable name for the factory and icon p...
Definition
qgsrangewidgetfactory.cpp:24
QgsRangeWidgetWrapper
Wraps a range widget.
Definition
qgsrangewidgetwrapper.h:49
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
QgsVectorLayer::fields
QgsFields fields
Definition
qgsvectorlayer.h:422
qgsrangeconfigdlg.h
qgsrangewidgetfactory.h
qgsrangewidgetwrapper.h
qgsvectorlayer.h
Generated on
for QGIS API Documentation by
1.17.0