QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
editorwidgets
qgsuuidwidgetwrapper.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsuuidwidgetwrapper.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 "
qgsuuidwidgetwrapper.h
"
17
18
#include <QUuid>
19
20
#include "moc_qgsuuidwidgetwrapper.cpp"
21
22
QgsUuidWidgetWrapper::QgsUuidWidgetWrapper
(
QgsVectorLayer
*
layer
,
int
fieldIdx
, QWidget *editor, QWidget *parent )
23
:
QgsEditorWidgetWrapper
(
layer
,
fieldIdx
, editor, parent )
24
25
{}
26
27
QString
QgsUuidWidgetWrapper::createUiid
(
int
maxLength )
28
{
29
QString uuid = QUuid::createUuid().toString();
30
31
if
( maxLength <= 0 || maxLength >= uuid.length() )
32
{
33
return
uuid;
34
}
35
else
36
{
37
// trim left "{" and remove -'s... they are wasted characters given that we have a limited length!
38
return
uuid.replace(
'-'
, QString() ).mid( 1, maxLength );
39
}
40
}
41
42
QVariant
QgsUuidWidgetWrapper::value
()
const
43
{
44
QVariant v;
45
46
if
( mLineEdit )
47
v = mLineEdit->text();
48
if
( mLabel )
49
v = mLabel->text();
50
51
return
v;
52
}
53
54
QWidget *
QgsUuidWidgetWrapper::createWidget
( QWidget *parent )
55
{
56
return
new
QLineEdit( parent );
57
}
58
59
void
QgsUuidWidgetWrapper::initWidget
( QWidget *editor )
60
{
61
mLineEdit = qobject_cast<QLineEdit *>( editor );
62
mLabel = qobject_cast<QLabel *>( editor );
63
if
( mLineEdit )
64
mLineEdit->setEnabled(
false
);
65
}
66
67
bool
QgsUuidWidgetWrapper::valid
()
const
68
{
69
return
mLineEdit || mLabel;
70
}
71
72
void
QgsUuidWidgetWrapper::updateValues(
const
QVariant &value,
const
QVariantList & )
73
{
74
if
(
QgsVariantUtils::isNull
(
value
) )
75
{
76
int
maxLength = 0;
77
if
(
field
().type() == QMetaType::Type::QString &&
field
().length() > 0 )
78
{
79
maxLength =
field
().
length
();
80
}
81
const
QString uuid =
createUiid
( maxLength );
82
if
( mLineEdit )
83
mLineEdit->setText( uuid );
84
if
( mLabel )
85
mLabel->setText( uuid );
86
87
emitValueChanged
();
88
}
89
else
90
{
91
if
( mLineEdit )
92
mLineEdit->setText(
value
.toString() );
93
if
( mLabel )
94
mLabel->setText(
value
.toString() );
95
}
96
}
97
98
void
QgsUuidWidgetWrapper::setEnabled
(
bool
enabled )
99
{
100
Q_UNUSED( enabled )
101
// Do nothing... it is always disabled
102
}
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
QgsEditorWidgetWrapper::field
QgsField field() const
Access the field.
Definition
qgseditorwidgetwrapper.cpp:42
QgsField::length
int length
Definition
qgsfield.h:61
QgsUuidWidgetWrapper::setEnabled
void setEnabled(bool enabled) override
Definition
qgsuuidwidgetwrapper.cpp:98
QgsUuidWidgetWrapper::value
QVariant value() const override
Will be used to access the widget's value.
Definition
qgsuuidwidgetwrapper.cpp:42
QgsUuidWidgetWrapper::QgsUuidWidgetWrapper
QgsUuidWidgetWrapper(QgsVectorLayer *layer, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr)
Constructor for QgsUuidWidgetWrapper.
Definition
qgsuuidwidgetwrapper.cpp:22
QgsUuidWidgetWrapper::createWidget
QWidget * createWidget(QWidget *parent) override
This method should create a new widget with the provided parent.
Definition
qgsuuidwidgetwrapper.cpp:54
QgsUuidWidgetWrapper::createUiid
static QString createUiid(int maxLength=0)
Creates a UUID value, respecting the specified maximum length.
Definition
qgsuuidwidgetwrapper.cpp:27
QgsUuidWidgetWrapper::initWidget
void initWidget(QWidget *editor) override
This method should initialize the editor widget with runtime data.
Definition
qgsuuidwidgetwrapper.cpp:59
QgsUuidWidgetWrapper::valid
bool valid() const override
Returns true if the widget has been properly initialized.
Definition
qgsuuidwidgetwrapper.cpp:67
QgsVariantUtils::isNull
static bool isNull(const QVariant &variant, bool silenceNullWarnings=false)
Returns true if the specified variant should be considered a NULL value.
Definition
qgsvariantutils.cpp:176
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
QgsWidgetWrapper::layer
QgsVectorLayer * layer() const
Returns the vector layer associated with the widget.
Definition
qgswidgetwrapper.cpp:94
qgsuuidwidgetwrapper.h
Generated on
for QGIS API Documentation by
1.17.0