QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
editorwidgets
qgsgeometrywidgetfactory.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsgeometrywidgetfactory.cpp
3
-----------------------
4
Date : February 2023
5
Copyright : (C) 2023 Nyall Dawson
6
Email : nyall dot dawson 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
#include "
qgsgeometrywidgetfactory.h
"
17
18
#include "
qgsdummyconfigdlg.h
"
19
#include "
qgsgeometrywidgetwrapper.h
"
20
#include "
qgsvectorlayer.h
"
21
22
#include <QString>
23
24
using namespace
Qt::StringLiterals;
25
26
QgsGeometryWidgetFactory::QgsGeometryWidgetFactory
(
const
QString &
name
,
QgsMessageBar
*messageBar,
const
QIcon &
icon
)
27
:
QgsEditorWidgetFactory
(
name
,
icon
)
28
, mMessageBar( messageBar )
29
{}
30
31
QgsEditorWidgetWrapper
*
QgsGeometryWidgetFactory::create
(
QgsVectorLayer
*vl,
int
fieldIdx, QWidget *editor, QWidget *parent )
const
32
{
33
return
new
QgsGeometryWidgetWrapper
( vl, fieldIdx, editor, parent, mMessageBar );
34
}
35
36
QgsEditorConfigWidget
*
QgsGeometryWidgetFactory::configWidget
(
QgsVectorLayer
*vl,
int
fieldIdx, QWidget *parent )
const
37
{
38
return
new
QgsDummyConfigDlg
( vl, fieldIdx, parent, QObject::tr(
"A widget for interacting with geometry fields."
) );
39
}
40
41
unsigned
int
QgsGeometryWidgetFactory::fieldScore
(
const
QgsVectorLayer
*vl,
int
fieldIdx )
const
42
{
43
const
QgsField
field = vl->
fields
().
field
( fieldIdx );
44
const
QMetaType::Type type = field.
type
();
45
// Geometry fields only
46
return
( type == QMetaType::Type::User && field.
typeName
().compare(
"geometry"
_L1, Qt::CaseInsensitive ) == 0 ) ? 20 : 0;
47
}
QgsDummyConfigDlg
Configuration widget for dummy widgets.
Definition
qgsdummyconfigdlg.h:35
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::typeName
QString typeName() const
Gets the field type.
Definition
qgsfield.cpp:158
QgsFields::field
QgsField field(int fieldIdx) const
Returns the field at particular index (must be in range 0..N-1).
Definition
qgsfields.cpp:214
QgsGeometryWidgetFactory::create
QgsEditorWidgetWrapper * create(QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent) const override
Override this in your implementation.
Definition
qgsgeometrywidgetfactory.cpp:31
QgsGeometryWidgetFactory::QgsGeometryWidgetFactory
QgsGeometryWidgetFactory(const QString &name, QgsMessageBar *messageBar, const QIcon &icon=QIcon())
Constructor for QgsGeometryWidgetFactory, where name is a human-readable name for the factory and ico...
Definition
qgsgeometrywidgetfactory.cpp:26
QgsGeometryWidgetFactory::fieldScore
unsigned int fieldScore(const QgsVectorLayer *vl, int fieldIdx) const override
This method allows disabling this editor widget type for a certain field.
Definition
qgsgeometrywidgetfactory.cpp:41
QgsGeometryWidgetFactory::configWidget
QgsEditorConfigWidget * configWidget(QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const override
Override this in your implementation.
Definition
qgsgeometrywidgetfactory.cpp:36
QgsGeometryWidgetWrapper
Widget wrapper for geometry fields.
Definition
qgsgeometrywidgetwrapper.h:36
QgsMessageBar
A bar for displaying non-blocking messages to the user.
Definition
qgsmessagebar.h:61
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
QgsVectorLayer::fields
QgsFields fields
Definition
qgsvectorlayer.h:422
qgsdummyconfigdlg.h
qgsgeometrywidgetfactory.h
qgsgeometrywidgetwrapper.h
qgsvectorlayer.h
Generated on
for QGIS API Documentation by
1.17.0