23 QString QgsAddTableFieldAlgorithm::name()
const
25 return QStringLiteral(
"addfieldtoattributestable" );
28 QString QgsAddTableFieldAlgorithm::displayName()
const
30 return QObject::tr(
"Add field to attributes table" );
33 QString QgsAddTableFieldAlgorithm::shortHelpString()
const
35 return QObject::tr(
"This algorithm adds a new attribute to a vector layer.\n\n"
36 "The name and characteristics of the attribute are defined as parameters. The new attribute "
37 "is not added to the input layer but a new layer is generated instead.\n\n" );
40 QStringList QgsAddTableFieldAlgorithm::tags()
const
42 return QObject::tr(
"add,create,new,attribute,fields" ).split(
',' );
45 QString QgsAddTableFieldAlgorithm::group()
const
47 return QObject::tr(
"Vector table" );
50 QString QgsAddTableFieldAlgorithm::groupId()
const
52 return QStringLiteral(
"vectortable" );
55 QString QgsAddTableFieldAlgorithm::outputName()
const
57 return QObject::tr(
"Added" );
60 QList<int> QgsAddTableFieldAlgorithm::inputLayerTypes()
const
70 QgsAddTableFieldAlgorithm *QgsAddTableFieldAlgorithm::createInstance()
const
72 return new QgsAddTableFieldAlgorithm();
75 void QgsAddTableFieldAlgorithm::initParameters(
const QVariantMap & )
79 QStringList typeStrings;
81 typeStrings.reserve( 11 );
83 for (
const auto &type :
84 std::vector < std::pair< QVariant::Type, QVariant::Type > >
86 {QVariant::Int, QVariant::Invalid },
87 {QVariant::Double, QVariant::Invalid },
88 {QVariant::String, QVariant::Invalid },
89 {QVariant::Bool, QVariant::Invalid },
90 {QVariant::Date, QVariant::Invalid },
91 {QVariant::Time, QVariant::Invalid },
92 {QVariant::DateTime, QVariant::Invalid },
93 {QVariant::ByteArray, QVariant::Invalid },
94 {QVariant::StringList, QVariant::Invalid },
95 {QVariant::List, QVariant::Int },
96 {QVariant::List, QVariant::Double }
103 std::unique_ptr< QgsProcessingParameterEnum> fieldTypes = std::make_unique< QgsProcessingParameterEnum> ( QStringLiteral(
"FIELD_TYPE" ), QObject::tr(
"Field type" ),
104 typeStrings,
false, 0 );
105 fieldTypes->setMetadata(
108 QStringLiteral(
"widget_wrapper" ),
111 QStringLiteral(
"icons" ), icons
116 addParameter( fieldTypes.release() );
123 QgsFields QgsAddTableFieldAlgorithm::outputFields(
const QgsFields &inputFields )
const
132 const QString name = parameterAsString( parameters, QStringLiteral(
"FIELD_NAME" ), context );
133 const int type = parameterAsInt( parameters, QStringLiteral(
"FIELD_TYPE" ), context );
134 const int length = parameterAsInt( parameters, QStringLiteral(
"FIELD_LENGTH" ), context );
135 const int precision = parameterAsInt( parameters, QStringLiteral(
"FIELD_PRECISION" ), context );
137 mField.setName( name );
138 mField.setLength( length );
144 mField.setType( QVariant::Int );
147 mField.setType( QVariant::Double );
150 mField.setType( QVariant::String );
153 mField.setType( QVariant::Bool );
156 mField.setType( QVariant::Date );
159 mField.setType( QVariant::Time );
162 mField.setType( QVariant::DateTime );
165 mField.setType( QVariant::ByteArray );
168 mField.setType( QVariant::StringList );
169 mField.setSubType( QVariant::String );
172 mField.setType( QVariant::List );
173 mField.setSubType( QVariant::Int );
176 mField.setType( QVariant::List );
177 mField.setSubType( QVariant::Double );
188 attributes.append( QVariant() );
193 bool QgsAddTableFieldAlgorithm::supportInPlaceEdit(
const QgsMapLayer *layer )
const