22using namespace Qt::StringLiterals;
26QString QgsCopyLayerMetadataAlgorithm::name()
const
28 return u
"copylayermetadata"_s;
31QString QgsCopyLayerMetadataAlgorithm::displayName()
const
33 return QObject::tr(
"Copy layer metadata" );
36QStringList QgsCopyLayerMetadataAlgorithm::tags()
const
38 return QObject::tr(
"change,layer,metadata,qmd" ).split(
',' );
41QString QgsCopyLayerMetadataAlgorithm::group()
const
43 return QObject::tr(
"Metadata tools" );
46QString QgsCopyLayerMetadataAlgorithm::groupId()
const
48 return u
"metadatatools"_s;
51QString QgsCopyLayerMetadataAlgorithm::shortHelpString()
const
53 return QObject::tr(
"This algorithm copies metadata from a source layer to a target layer.\n\nAny existing metadata in the target layer will be replaced." );
56QString QgsCopyLayerMetadataAlgorithm::shortDescription()
const
58 return QObject::tr(
"Copies the metadata from one layer to another." );
61QgsCopyLayerMetadataAlgorithm *QgsCopyLayerMetadataAlgorithm::createInstance()
const
63 return new QgsCopyLayerMetadataAlgorithm();
66void QgsCopyLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
76 QgsMapLayer *sourceLayer = parameterAsLayer( parameters, u
"SOURCE"_s, context );
77 QgsMapLayer *targetLayer = parameterAsLayer( parameters, u
"TARGET"_s, context );
78 const bool saveAsDefault = parameterAsBool( parameters, u
"DEFAULT"_s, context );
86 mLayerId = targetLayer->
id();
103 Q_UNUSED( parameters );
107 results.insert( u
"OUTPUT"_s, mLayerId );
113QString QgsApplyLayerMetadataAlgorithm::name()
const
115 return u
"setlayermetadata"_s;
118QString QgsApplyLayerMetadataAlgorithm::displayName()
const
120 return QObject::tr(
"Set layer metadata" );
123QStringList QgsApplyLayerMetadataAlgorithm::tags()
const
125 return QObject::tr(
"change,layer,metadata,qmd" ).split(
',' );
128QString QgsApplyLayerMetadataAlgorithm::group()
const
130 return QObject::tr(
"Metadata tools" );
133QString QgsApplyLayerMetadataAlgorithm::groupId()
const
135 return u
"metadatatools"_s;
138QString QgsApplyLayerMetadataAlgorithm::shortHelpString()
const
140 return QObject::tr(
"This algorithm applies the metadata to a layer. The metadata must be defined as QMD file.\n\nAny existing metadata in the layer will be replaced." );
143QString QgsApplyLayerMetadataAlgorithm::shortDescription()
const
145 return QObject::tr(
"Applies the metadata from a QMD file to a layer." );
148QgsApplyLayerMetadataAlgorithm *QgsApplyLayerMetadataAlgorithm::createInstance()
const
150 return new QgsApplyLayerMetadataAlgorithm();
153void QgsApplyLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
163 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
164 const QString metadata = parameterAsFile( parameters, u
"METADATA"_s, context );
165 const bool saveAsDefault = parameterAsBool( parameters, u
"DEFAULT"_s, context );
170 mLayerId = layer->
id();
194 Q_UNUSED( parameters );
198 results.insert( u
"OUTPUT"_s, mLayerId );
204QString QgsExportLayerMetadataAlgorithm::name()
const
206 return u
"exportlayermetadata"_s;
209QString QgsExportLayerMetadataAlgorithm::displayName()
const
211 return QObject::tr(
"Export layer metadata" );
214QStringList QgsExportLayerMetadataAlgorithm::tags()
const
216 return QObject::tr(
"export,layer,metadata,qmd" ).split(
',' );
219QString QgsExportLayerMetadataAlgorithm::group()
const
221 return QObject::tr(
"Metadata tools" );
224QString QgsExportLayerMetadataAlgorithm::groupId()
const
226 return u
"metadatatools"_s;
229QString QgsExportLayerMetadataAlgorithm::shortHelpString()
const
231 return QObject::tr(
"This algorithm exports layer's metadata to a QMD file." );
234QString QgsExportLayerMetadataAlgorithm::shortDescription()
const
236 return QObject::tr(
"Exports layer's metadata to a QMD file." );
239QgsExportLayerMetadataAlgorithm *QgsExportLayerMetadataAlgorithm::createInstance()
const
241 return new QgsExportLayerMetadataAlgorithm();
244void QgsExportLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
252 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
253 const QString outputFile = parameterAsString( parameters, u
"OUTPUT"_s, context );
266 results.insert( u
"OUTPUT"_s, outputFile );
272QString QgsAddHistoryMetadataAlgorithm::name()
const
274 return u
"addhistorymetadata"_s;
277QString QgsAddHistoryMetadataAlgorithm::displayName()
const
279 return QObject::tr(
"Add history metadata" );
282QStringList QgsAddHistoryMetadataAlgorithm::tags()
const
284 return QObject::tr(
"add,history,metadata" ).split(
',' );
287QString QgsAddHistoryMetadataAlgorithm::group()
const
289 return QObject::tr(
"Metadata tools" );
292QString QgsAddHistoryMetadataAlgorithm::groupId()
const
294 return u
"metadatatools"_s;
297QString QgsAddHistoryMetadataAlgorithm::shortHelpString()
const
299 return QObject::tr(
"This algorithm adds a new history entry to the layer's metadata." );
302QString QgsAddHistoryMetadataAlgorithm::shortDescription()
const
304 return QObject::tr(
"Adds a new history entry to the layer's metadata." );
307QgsAddHistoryMetadataAlgorithm *QgsAddHistoryMetadataAlgorithm::createInstance()
const
309 return new QgsAddHistoryMetadataAlgorithm();
312void QgsAddHistoryMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
321 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
322 const QString history = parameterAsString( parameters, u
"HISTORY"_s, context );
327 mLayerId = layer->
id();
329 std::unique_ptr<QgsLayerMetadata> md( layer->
metadata().
clone() );
330 md->addHistoryItem( history );
338 Q_UNUSED( parameters );
342 results.insert( u
"OUTPUT"_s, mLayerId );
348QString QgsUpdateLayerMetadataAlgorithm::name()
const
350 return u
"updatelayermetadata"_s;
353QString QgsUpdateLayerMetadataAlgorithm::displayName()
const
355 return QObject::tr(
"Update layer metadata" );
358QStringList QgsUpdateLayerMetadataAlgorithm::tags()
const
360 return QObject::tr(
"change,update,layer,metadata,qmd" ).split(
',' );
363QString QgsUpdateLayerMetadataAlgorithm::group()
const
365 return QObject::tr(
"Metadata tools" );
368QString QgsUpdateLayerMetadataAlgorithm::groupId()
const
370 return u
"metadatatools"_s;
373QString QgsUpdateLayerMetadataAlgorithm::shortHelpString()
const
375 return QObject::tr(
"This algorithm copies all non-empty metadata fields from a source layer to a target layer.\n\nLeaves empty input fields unchanged in the target." );
378QString QgsUpdateLayerMetadataAlgorithm::shortDescription()
const
380 return QObject::tr(
"Copies all non-empty metadata fields from one layer to another." );
383QgsUpdateLayerMetadataAlgorithm *QgsUpdateLayerMetadataAlgorithm::createInstance()
const
385 return new QgsUpdateLayerMetadataAlgorithm();
388void QgsUpdateLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
397 QgsMapLayer *sourceLayer = parameterAsLayer( parameters, u
"SOURCE"_s, context );
398 QgsMapLayer *targetLayer = parameterAsLayer( parameters, u
"TARGET"_s, context );
406 mLayerId = targetLayer->
id();
408 std::unique_ptr<QgsLayerMetadata> md( targetLayer->
metadata().
clone() );
409 md->combine( &sourceLayer->
metadata() );
417 Q_UNUSED( parameters );
421 results.insert( u
"OUTPUT"_s, mLayerId );
427QString QgsSetMetadataFieldsAlgorithm::name()
const
429 return u
"setmetadatafields"_s;
432QString QgsSetMetadataFieldsAlgorithm::displayName()
const
434 return QObject::tr(
"Set metadata fields" );
437QStringList QgsSetMetadataFieldsAlgorithm::tags()
const
439 return QObject::tr(
"set,metadata,title,abstract,identifier" ).split(
',' );
442QString QgsSetMetadataFieldsAlgorithm::group()
const
444 return QObject::tr(
"Metadata tools" );
447QString QgsSetMetadataFieldsAlgorithm::groupId()
const
449 return u
"metadatatools"_s;
452QString QgsSetMetadataFieldsAlgorithm::shortHelpString()
const
454 return QObject::tr(
"This algorithm sets various metadata fields for a layer." );
457QString QgsSetMetadataFieldsAlgorithm::shortDescription()
const
459 return QObject::tr(
"Sets various metadata fields for a layer." );
462QgsSetMetadataFieldsAlgorithm *QgsSetMetadataFieldsAlgorithm::createInstance()
const
464 return new QgsSetMetadataFieldsAlgorithm();
467void QgsSetMetadataFieldsAlgorithm::initAlgorithm(
const QVariantMap & )
471 addParameter(
new QgsProcessingParameterString( u
"PARENT_IDENTIFIER"_s, QObject::tr(
"Parent identifier" ), QVariant(),
false,
true ) );
477 addParameter(
new QgsProcessingParameterCrs( u
"CRS"_s, QObject::tr(
"Coordinate reference system" ), QVariant(),
true ) );
485 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
490 mLayerId = layer->
id();
492 const bool ignoreEmpty = parameterAsBool( parameters, u
"IGNORE_EMPTY"_s, context );
494 std::unique_ptr<QgsLayerMetadata> md( layer->
metadata().
clone() );
496 if ( parameters.value( u
"IDENTIFIER"_s ).isValid() )
498 const QString identifier = parameterAsString( parameters, u
"IDENTIFIER"_s, context );
499 if ( !identifier.isEmpty() || !ignoreEmpty )
501 md->setIdentifier( identifier );
505 if ( parameters.value( u
"PARENT_IDENTIFIER"_s ).isValid() )
507 const QString parentIdentifier = parameterAsString( parameters, u
"PARENT_IDENTIFIER"_s, context );
508 if ( !parentIdentifier.isEmpty() || !ignoreEmpty )
510 md->setParentIdentifier( parentIdentifier );
514 if ( parameters.value( u
"TITLE"_s ).isValid() )
516 const QString title = parameterAsString( parameters, u
"TITLE"_s, context );
517 if ( !title.isEmpty() || !ignoreEmpty )
519 md->setTitle( title );
523 if ( parameters.value( u
"TYPE"_s ).isValid() )
525 const QString type = parameterAsString( parameters, u
"TYPE"_s, context );
526 if ( !type.isEmpty() || !ignoreEmpty )
532 if ( parameters.value( u
"LANGUAGE"_s ).isValid() )
534 const QString language = parameterAsString( parameters, u
"LANGUAGE"_s, context );
535 if ( !language.isEmpty() || !ignoreEmpty )
537 md->setLanguage( language );
541 if ( parameters.value( u
"ENCODING"_s ).isValid() )
543 const QString encoding = parameterAsString( parameters, u
"ENCODING"_s, context );
544 if ( !encoding.isEmpty() || !ignoreEmpty )
546 md->setEncoding( encoding );
550 if ( parameters.value( u
"ABSTRACT"_s ).isValid() )
552 const QString abstract = parameterAsString( parameters, u
"ABSTRACT"_s, context );
553 if ( !abstract.isEmpty() || !ignoreEmpty )
555 md->setAbstract( abstract );
559 if ( parameters.value( u
"CRS"_s ).isValid() )
562 if ( crs.
isValid() || !ignoreEmpty )
568 if ( parameters.value( u
"FEES"_s ).isValid() )
570 const QString fees = parameterAsString( parameters, u
"FEES"_s, context );
571 if ( !fees.isEmpty() || !ignoreEmpty )
584 Q_UNUSED( parameters );
588 results.insert( u
"OUTPUT"_s, mLayerId );
@ File
Parameter is a single file.
Represents a coordinate reference system (CRS).
bool isValid() const
Returns whether this CRS is correctly initialized and usable.
Base class for all map layer types.
virtual QString loadNamedMetadata(const QString &uri, bool &resultFlag)
Retrieve a named metadata for this layer if one exists (either as a .qmd file on disk or as a record ...
QgsLayerMetadata metadata
virtual void setMetadata(const QgsLayerMetadata &metadata)
Sets the layer's metadata store.
virtual QString saveDefaultMetadata(bool &resultFlag)
Save the current metadata of this layer as the default metadata (either as a .qmd file on disk or as ...
QString saveNamedMetadata(const QString &uri, bool &resultFlag)
Save the current metadata of this layer as a named metadata (either as a .qmd file on disk or as a re...
Contains information about the context in which a processing algorithm is executed.
Custom exception class for processing related exceptions.
Base class for providing feedback from a processing algorithm.
A map layer output for processing algorithms, where layers may be either vector or raster.
A boolean parameter for processing algorithms.
A coordinate reference system parameter for processing algorithms.
A generic file based destination parameter, for specifying the destination path for a file (non-map l...
An input file or folder parameter for processing algorithms.
A map layer parameter for processing algorithms.
A string parameter for processing algorithms.