Skip to content

Commit c1d35a0

Browse files
committed
Port getHTMLOutputsCount to c++ API
1 parent 1f0a3d9 commit c1d35a0

File tree

6 files changed

+32
-10
lines changed

6 files changed

+32
-10
lines changed

python/core/processing/qgsprocessingalgorithm.sip

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ class QgsProcessingAlgorithm
207207
:rtype: QgsProcessingOutputDefinition
208208
%End
209209

210+
bool hasHtmlOutputs() const;
211+
%Docstring
212+
Returns true if this algorithm generates HTML outputs.
213+
:rtype: bool
214+
%End
215+
210216
QVariantMap run( const QVariantMap &parameters,
211217
QgsProcessingContext &context, QgsProcessingFeedback *feedback ) const;
212218
%Docstring

python/plugins/processing/core/GeoAlgorithm.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -297,15 +297,6 @@ def setOutputValue(self, outputName, value):
297297
if out.name == outputName:
298298
out.setValue(value)
299299

300-
def getHTMLOutputsCount(self):
301-
"""Returns the number of HTML outputs.
302-
"""
303-
i = 0
304-
for out in self.outputs:
305-
if isinstance(out, OutputHTML):
306-
i += 1
307-
return i
308-
309300
def removeOutputFromName(self, name):
310301
for out in self.outputs:
311302
if out.name == name:

python/plugins/processing/gui/AlgorithmDialog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ def finish(self, result, context):
268268
self.close()
269269
else:
270270
self.resetGUI()
271-
if self.alg.getHTMLOutputsCount() > 0:
271+
if self.alg.hasHtmlOutputs():
272272
self.setInfo(
273273
self.tr('HTML output has been generated by this algorithm.'
274274
'\nOpen the results dialog to check it.'))

src/core/processing/qgsprocessingalgorithm.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,16 @@ const QgsProcessingOutputDefinition *QgsProcessingAlgorithm::outputDefinition( c
187187
return nullptr;
188188
}
189189

190+
bool QgsProcessingAlgorithm::hasHtmlOutputs() const
191+
{
192+
Q_FOREACH ( const QgsProcessingOutputDefinition *def, mOutputs )
193+
{
194+
if ( def->type() == QStringLiteral( "outputHtml" ) )
195+
return true;
196+
}
197+
return false;
198+
}
199+
190200
QVariantMap QgsProcessingAlgorithm::run( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) const
191201
{
192202
return processAlgorithm( parameters, context, feedback );
@@ -252,6 +262,11 @@ QString QgsProcessingAlgorithm::parameterAsRasterOutputLayer( const QVariantMap
252262
return QgsProcessingParameters::parameterAsRasterOutputLayer( parameterDefinition( name ), parameters, context );
253263
}
254264

265+
QString QgsProcessingAlgorithm::parameterAsFileOutput( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const
266+
{
267+
return QgsProcessingParameters::parameterAsFileOutput( parameterDefinition( name ), parameters, context );
268+
}
269+
255270
QgsVectorLayer *QgsProcessingAlgorithm::parameterAsVectorLayer( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const
256271
{
257272
return QgsProcessingParameters::parameterAsVectorLayer( parameterDefinition( name ), parameters, context );

src/core/processing/qgsprocessingalgorithm.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,11 @@ class CORE_EXPORT QgsProcessingAlgorithm
210210
*/
211211
const QgsProcessingOutputDefinition *outputDefinition( const QString &name ) const;
212212

213+
/**
214+
* Returns true if this algorithm generates HTML outputs.
215+
*/
216+
bool hasHtmlOutputs() const;
217+
213218
/**
214219
* Executes the algorithm using the specified \a parameters.
215220
*

tests/src/core/testqgsprocessing.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ class DummyAlgorithm : public QgsProcessingAlgorithm
119119
// parameterDefinition should be case insensitive
120120
QCOMPARE( outputDefinition( "P1" ), outputDefinitions().at( 0 ) );
121121
QVERIFY( !outputDefinition( "invalid" ) );
122+
123+
QVERIFY( !hasHtmlOutputs() );
124+
QgsProcessingOutputHtml *p3 = new QgsProcessingOutputHtml( "p3" );
125+
QVERIFY( addOutput( p3 ) );
126+
QVERIFY( hasHtmlOutputs() );
122127
}
123128

124129
};

0 commit comments

Comments
 (0)