Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsprocessingmodeloutput.cpp 3 : : ---------------------------- 4 : : begin : June 2017 5 : : copyright : (C) 2017 by Nyall Dawson 6 : : email : nyall dot dawson at gmail dot com 7 : : ***************************************************************************/ 8 : : 9 : : /*************************************************************************** 10 : : * * 11 : : * This program is free software; you can redistribute it and/or modify * 12 : : * it under the terms of the GNU General Public License as published by * 13 : : * the Free Software Foundation; either version 2 of the License, or * 14 : : * (at your option) any later version. * 15 : : * * 16 : : ***************************************************************************/ 17 : : 18 : : #include "qgsprocessingmodeloutput.h" 19 : : 20 : : ///@cond NOT_STABLE 21 : : 22 : 0 : QgsProcessingModelOutput::QgsProcessingModelOutput( const QString &name, const QString &description ) 23 : 0 : : QgsProcessingModelComponent( description ) 24 : 0 : , mName( name ) 25 : 0 : {} 26 : : 27 : 0 : QgsProcessingModelOutput *QgsProcessingModelOutput::clone() const 28 : : { 29 : 0 : return new QgsProcessingModelOutput( *this ); 30 : 0 : } 31 : : 32 : 0 : QVariant QgsProcessingModelOutput::toVariant() const 33 : : { 34 : 0 : QVariantMap map; 35 : 0 : map.insert( QStringLiteral( "name" ), mName ); 36 : : 37 : 0 : if ( mDefaultValue.canConvert<QgsProcessingOutputLayerDefinition>() ) 38 : : { 39 : 0 : QVariantMap defaultMap = mDefaultValue.value<QgsProcessingOutputLayerDefinition>().toVariant().toMap(); 40 : 0 : defaultMap.insert( QStringLiteral( "class" ), QStringLiteral( "QgsProcessingOutputLayerDefinition" ) ); 41 : 0 : map.insert( QStringLiteral( "default_value" ), defaultMap ); 42 : 0 : } 43 : : else 44 : : { 45 : 0 : map.insert( QStringLiteral( "default_value" ), mDefaultValue ); 46 : : } 47 : : 48 : 0 : map.insert( QStringLiteral( "child_id" ), mChildId ); 49 : 0 : map.insert( QStringLiteral( "output_name" ), mOutputName ); 50 : 0 : map.insert( QStringLiteral( "mandatory" ), mMandatory ); 51 : 0 : saveCommonProperties( map ); 52 : 0 : return map; 53 : 0 : } 54 : : 55 : 0 : bool QgsProcessingModelOutput::loadVariant( const QVariantMap &map ) 56 : : { 57 : 0 : mName = map.value( QStringLiteral( "name" ) ).toString(); 58 : : 59 : 0 : QVariant defaultValue = map.value( QStringLiteral( "default_value" ) ); 60 : 0 : if ( defaultValue.type() == QVariant::Map ) 61 : : { 62 : 0 : QVariantMap defaultMap = defaultValue.toMap(); 63 : 0 : if ( defaultMap["class"] == QLatin1String( "QgsProcessingOutputLayerDefinition" ) ) 64 : : { 65 : 0 : QgsProcessingOutputLayerDefinition value; 66 : 0 : value.loadVariant( defaultMap ); 67 : 0 : mDefaultValue = QVariant( value ); 68 : 0 : } 69 : : else 70 : : { 71 : 0 : mDefaultValue = QVariant(); 72 : : } 73 : 0 : } 74 : : else 75 : : { 76 : 0 : mDefaultValue = map.value( QStringLiteral( "default_value" ) ); 77 : : } 78 : : 79 : 0 : mChildId = map.value( QStringLiteral( "child_id" ) ).toString(); 80 : 0 : mOutputName = map.value( QStringLiteral( "output_name" ) ).toString(); 81 : 0 : mMandatory = map.value( QStringLiteral( "mandatory" ), false ).toBool(); 82 : 0 : restoreCommonProperties( map ); 83 : : return true; 84 : 0 : } 85 : : 86 : : 87 : : ///@endcond