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 QGS_MARK_ALGORITHM_SOURCE
78 QgsMapLayer *sourceLayer = parameterAsLayer( parameters, u
"SOURCE"_s, context );
79 QgsMapLayer *targetLayer = parameterAsLayer( parameters, u
"TARGET"_s, context );
80 const bool saveAsDefault = parameterAsBool( parameters, u
"DEFAULT"_s, context );
88 mLayerId = targetLayer->
id();
90 targetLayer->
setMetadata( sourceLayer->metadata() );
105 Q_UNUSED( parameters );
109 results.insert( u
"OUTPUT"_s, mLayerId );
115QString QgsApplyLayerMetadataAlgorithm::name()
const
117 return u
"setlayermetadata"_s;
120QString QgsApplyLayerMetadataAlgorithm::displayName()
const
122 return QObject::tr(
"Set layer metadata" );
125QStringList QgsApplyLayerMetadataAlgorithm::tags()
const
127 return QObject::tr(
"change,layer,metadata,qmd" ).split(
',' );
130QString QgsApplyLayerMetadataAlgorithm::group()
const
132 return QObject::tr(
"Metadata tools" );
135QString QgsApplyLayerMetadataAlgorithm::groupId()
const
137 return u
"metadatatools"_s;
140QString QgsApplyLayerMetadataAlgorithm::shortHelpString()
const
142 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." );
145QString QgsApplyLayerMetadataAlgorithm::shortDescription()
const
147 return QObject::tr(
"Applies the metadata from a QMD file to a layer." );
150QgsApplyLayerMetadataAlgorithm *QgsApplyLayerMetadataAlgorithm::createInstance()
const
152 return new QgsApplyLayerMetadataAlgorithm();
155void QgsApplyLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
165 QGS_MARK_ALGORITHM_SOURCE
167 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
168 const QString metadata = parameterAsFile( parameters, u
"METADATA"_s, context );
169 const bool saveAsDefault = parameterAsBool( parameters, u
"DEFAULT"_s, context );
174 mLayerId = layer->id();
177 const QString msg = layer->loadNamedMetadata( metadata, ok );
186 layer->saveDefaultMetadata( ok );
198 Q_UNUSED( parameters );
202 results.insert( u
"OUTPUT"_s, mLayerId );
208QString QgsExportLayerMetadataAlgorithm::name()
const
210 return u
"exportlayermetadata"_s;
213QString QgsExportLayerMetadataAlgorithm::displayName()
const
215 return QObject::tr(
"Export layer metadata" );
218QStringList QgsExportLayerMetadataAlgorithm::tags()
const
220 return QObject::tr(
"export,layer,metadata,qmd" ).split(
',' );
223QString QgsExportLayerMetadataAlgorithm::group()
const
225 return QObject::tr(
"Metadata tools" );
228QString QgsExportLayerMetadataAlgorithm::groupId()
const
230 return u
"metadatatools"_s;
233QString QgsExportLayerMetadataAlgorithm::shortHelpString()
const
235 return QObject::tr(
"This algorithm exports layer's metadata to a QMD file." );
238QString QgsExportLayerMetadataAlgorithm::shortDescription()
const
240 return QObject::tr(
"Exports layer's metadata to a QMD file." );
243QgsExportLayerMetadataAlgorithm *QgsExportLayerMetadataAlgorithm::createInstance()
const
245 return new QgsExportLayerMetadataAlgorithm();
248void QgsExportLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
256 QGS_MARK_ALGORITHM_SOURCE
258 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
259 const QString outputFile = parameterAsString( parameters, u
"OUTPUT"_s, context );
265 const QString message = layer->saveNamedMetadata( outputFile, ok );
272 results.insert( u
"OUTPUT"_s, outputFile );
278QString QgsAddHistoryMetadataAlgorithm::name()
const
280 return u
"addhistorymetadata"_s;
283QString QgsAddHistoryMetadataAlgorithm::displayName()
const
285 return QObject::tr(
"Add history metadata" );
288QStringList QgsAddHistoryMetadataAlgorithm::tags()
const
290 return QObject::tr(
"add,history,metadata" ).split(
',' );
293QString QgsAddHistoryMetadataAlgorithm::group()
const
295 return QObject::tr(
"Metadata tools" );
298QString QgsAddHistoryMetadataAlgorithm::groupId()
const
300 return u
"metadatatools"_s;
303QString QgsAddHistoryMetadataAlgorithm::shortHelpString()
const
305 return QObject::tr(
"This algorithm adds a new history entry to the layer's metadata." );
308QString QgsAddHistoryMetadataAlgorithm::shortDescription()
const
310 return QObject::tr(
"Adds a new history entry to the layer's metadata." );
313QgsAddHistoryMetadataAlgorithm *QgsAddHistoryMetadataAlgorithm::createInstance()
const
315 return new QgsAddHistoryMetadataAlgorithm();
318void QgsAddHistoryMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
327 QGS_MARK_ALGORITHM_SOURCE
329 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
330 const QString history = parameterAsString( parameters, u
"HISTORY"_s, context );
335 mLayerId = layer->id();
337 std::unique_ptr<QgsLayerMetadata> md( layer->metadata().clone() );
338 md->addHistoryItem( history );
339 layer->setMetadata( *md.get() );
346 Q_UNUSED( parameters );
350 results.insert( u
"OUTPUT"_s, mLayerId );
356QString QgsUpdateLayerMetadataAlgorithm::name()
const
358 return u
"updatelayermetadata"_s;
361QString QgsUpdateLayerMetadataAlgorithm::displayName()
const
363 return QObject::tr(
"Update layer metadata" );
366QStringList QgsUpdateLayerMetadataAlgorithm::tags()
const
368 return QObject::tr(
"change,update,layer,metadata,qmd" ).split(
',' );
371QString QgsUpdateLayerMetadataAlgorithm::group()
const
373 return QObject::tr(
"Metadata tools" );
376QString QgsUpdateLayerMetadataAlgorithm::groupId()
const
378 return u
"metadatatools"_s;
381QString QgsUpdateLayerMetadataAlgorithm::shortHelpString()
const
383 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." );
386QString QgsUpdateLayerMetadataAlgorithm::shortDescription()
const
388 return QObject::tr(
"Copies all non-empty metadata fields from one layer to another." );
391QgsUpdateLayerMetadataAlgorithm *QgsUpdateLayerMetadataAlgorithm::createInstance()
const
393 return new QgsUpdateLayerMetadataAlgorithm();
396void QgsUpdateLayerMetadataAlgorithm::initAlgorithm(
const QVariantMap & )
405 QGS_MARK_ALGORITHM_SOURCE
407 QgsMapLayer *sourceLayer = parameterAsLayer( parameters, u
"SOURCE"_s, context );
408 QgsMapLayer *targetLayer = parameterAsLayer( parameters, u
"TARGET"_s, context );
416 mLayerId = targetLayer->
id();
418 std::unique_ptr<QgsLayerMetadata> md( targetLayer->
metadata().
clone() );
419 md->combine( &sourceLayer->metadata() );
427 Q_UNUSED( parameters );
431 results.insert( u
"OUTPUT"_s, mLayerId );
437QString QgsSetMetadataFieldsAlgorithm::name()
const
439 return u
"setmetadatafields"_s;
442QString QgsSetMetadataFieldsAlgorithm::displayName()
const
444 return QObject::tr(
"Set metadata fields" );
447QStringList QgsSetMetadataFieldsAlgorithm::tags()
const
449 return QObject::tr(
"set,metadata,title,abstract,identifier" ).split(
',' );
452QString QgsSetMetadataFieldsAlgorithm::group()
const
454 return QObject::tr(
"Metadata tools" );
457QString QgsSetMetadataFieldsAlgorithm::groupId()
const
459 return u
"metadatatools"_s;
462QString QgsSetMetadataFieldsAlgorithm::shortHelpString()
const
464 return QObject::tr(
"This algorithm sets various metadata fields for a layer." );
467QString QgsSetMetadataFieldsAlgorithm::shortDescription()
const
469 return QObject::tr(
"Sets various metadata fields for a layer." );
472QgsSetMetadataFieldsAlgorithm *QgsSetMetadataFieldsAlgorithm::createInstance()
const
474 return new QgsSetMetadataFieldsAlgorithm();
477void QgsSetMetadataFieldsAlgorithm::initAlgorithm(
const QVariantMap & )
481 addParameter(
new QgsProcessingParameterString( u
"PARENT_IDENTIFIER"_s, QObject::tr(
"Parent identifier" ), QVariant(),
false,
true ) );
487 addParameter(
new QgsProcessingParameterCrs( u
"CRS"_s, QObject::tr(
"Coordinate reference system" ), QVariant(),
true ) );
495 QGS_MARK_ALGORITHM_SOURCE
497 QgsMapLayer *layer = parameterAsLayer( parameters, u
"INPUT"_s, context );
502 mLayerId = layer->id();
504 const bool ignoreEmpty = parameterAsBool( parameters, u
"IGNORE_EMPTY"_s, context );
506 std::unique_ptr<QgsLayerMetadata> md( layer->metadata().clone() );
508 if ( parameters.value( u
"IDENTIFIER"_s ).isValid() )
510 const QString identifier = parameterAsString( parameters, u
"IDENTIFIER"_s, context );
511 if ( !identifier.isEmpty() || !ignoreEmpty )
513 md->setIdentifier( identifier );
517 if ( parameters.value( u
"PARENT_IDENTIFIER"_s ).isValid() )
519 const QString parentIdentifier = parameterAsString( parameters, u
"PARENT_IDENTIFIER"_s, context );
520 if ( !parentIdentifier.isEmpty() || !ignoreEmpty )
522 md->setParentIdentifier( parentIdentifier );
526 if ( parameters.value( u
"TITLE"_s ).isValid() )
528 const QString title = parameterAsString( parameters, u
"TITLE"_s, context );
529 if ( !title.isEmpty() || !ignoreEmpty )
531 md->setTitle( title );
535 if ( parameters.value( u
"TYPE"_s ).isValid() )
537 const QString type = parameterAsString( parameters, u
"TYPE"_s, context );
538 if ( !type.isEmpty() || !ignoreEmpty )
544 if ( parameters.value( u
"LANGUAGE"_s ).isValid() )
546 const QString language = parameterAsString( parameters, u
"LANGUAGE"_s, context );
547 if ( !language.isEmpty() || !ignoreEmpty )
549 md->setLanguage( language );
553 if ( parameters.value( u
"ENCODING"_s ).isValid() )
555 const QString encoding = parameterAsString( parameters, u
"ENCODING"_s, context );
556 if ( !encoding.isEmpty() || !ignoreEmpty )
558 md->setEncoding( encoding );
562 if ( parameters.value( u
"ABSTRACT"_s ).isValid() )
564 const QString abstract = parameterAsString( parameters, u
"ABSTRACT"_s, context );
565 if ( !abstract.isEmpty() || !ignoreEmpty )
567 md->setAbstract( abstract );
571 if ( parameters.value( u
"CRS"_s ).isValid() )
574 if ( crs.
isValid() || !ignoreEmpty )
580 if ( parameters.value( u
"FEES"_s ).isValid() )
582 const QString fees = parameterAsString( parameters, u
"FEES"_s, context );
583 if ( !fees.isEmpty() || !ignoreEmpty )
589 layer->setMetadata( *md.get() );
596 Q_UNUSED( parameters );
600 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.
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 ...
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.