@@ -159,6 +159,7 @@ QgsProcessingAlgorithmDialogBase::QgsProcessingAlgorithmDialogBase( QWidget *par
159
159
mGeometryCheck = mContextOptionsWidget ->invalidGeometryCheck ();
160
160
mDistanceUnits = mContextOptionsWidget ->distanceUnit ();
161
161
mAreaUnits = mContextOptionsWidget ->areaUnit ();
162
+ mTemporaryFolderOverride = mContextOptionsWidget ->temporaryFolder ();
162
163
} );
163
164
}
164
165
}
@@ -867,6 +868,7 @@ void QgsProcessingAlgorithmDialogBase::applyContextOverrides( QgsProcessingConte
867
868
context->setInvalidGeometryCheck ( mGeometryCheck );
868
869
context->setDistanceUnit ( mDistanceUnits );
869
870
context->setAreaUnit ( mAreaUnits );
871
+ context->setTemporaryFolder ( mTemporaryFolderOverride );
870
872
}
871
873
}
872
874
@@ -946,6 +948,10 @@ QgsProcessingContextOptionsWidget::QgsProcessingContextOptionsWidget( QWidget *p
946
948
mComboInvalidFeatureFiltering ->addItem ( tr ( " Skip (Ignore) Features with Invalid Geometries" ), QgsFeatureRequest::GeometrySkipInvalid );
947
949
mComboInvalidFeatureFiltering ->addItem ( tr ( " Stop Algorithm Execution When a Geometry is Invalid" ), QgsFeatureRequest::GeometryAbortOnInvalid );
948
950
951
+ mTemporaryFolderWidget ->setDialogTitle ( tr ( " Select Temporary Directory" ) );
952
+ mTemporaryFolderWidget ->setStorageMode ( QgsFileWidget::GetDirectory );
953
+ mTemporaryFolderWidget ->lineEdit ()->setPlaceholderText ( tr ( " Default" ) );
954
+
949
955
mDistanceUnitsCombo ->addItem ( tr ( " Default" ), QVariant::fromValue ( Qgis::DistanceUnit::Unknown ) );
950
956
for ( Qgis::DistanceUnit unit :
951
957
{
@@ -1005,13 +1011,15 @@ QgsProcessingContextOptionsWidget::QgsProcessingContextOptionsWidget( QWidget *p
1005
1011
connect ( mComboInvalidFeatureFiltering , qOverload< int >( &QComboBox::currentIndexChanged ), this , &QgsPanelWidget::widgetChanged );
1006
1012
connect ( mDistanceUnitsCombo , qOverload< int >( &QComboBox::currentIndexChanged ), this , &QgsPanelWidget::widgetChanged );
1007
1013
connect ( mAreaUnitsCombo , qOverload< int >( &QComboBox::currentIndexChanged ), this , &QgsPanelWidget::widgetChanged );
1014
+ connect ( mTemporaryFolderWidget , &QgsFileWidget::fileChanged, this , &QgsPanelWidget::widgetChanged );
1008
1015
}
1009
1016
1010
1017
void QgsProcessingContextOptionsWidget::setFromContext ( const QgsProcessingContext *context )
1011
1018
{
1012
1019
whileBlocking ( mComboInvalidFeatureFiltering )->setCurrentIndex ( mComboInvalidFeatureFiltering ->findData ( static_cast < int >( context->invalidGeometryCheck () ) ) );
1013
1020
whileBlocking ( mDistanceUnitsCombo )->setCurrentIndex ( mDistanceUnitsCombo ->findData ( QVariant::fromValue ( context->distanceUnit () ) ) );
1014
1021
whileBlocking ( mAreaUnitsCombo )->setCurrentIndex ( mAreaUnitsCombo ->findData ( QVariant::fromValue ( context->areaUnit () ) ) );
1022
+ whileBlocking ( mTemporaryFolderWidget )->setFilePath ( context->temporaryFolder () );
1015
1023
}
1016
1024
1017
1025
QgsFeatureRequest::InvalidGeometryCheck QgsProcessingContextOptionsWidget::invalidGeometryCheck () const
@@ -1029,4 +1037,9 @@ Qgis::AreaUnit QgsProcessingContextOptionsWidget::areaUnit() const
1029
1037
return mAreaUnitsCombo ->currentData ().value < Qgis::AreaUnit >();
1030
1038
}
1031
1039
1040
+ QString QgsProcessingContextOptionsWidget::temporaryFolder ()
1041
+ {
1042
+ return mTemporaryFolderWidget ->filePath ();
1043
+ }
1044
+
1032
1045
// /@endcond
0 commit comments