mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-06 00:07:29 -04:00
[processing] Allow temporary folder to be temporarily changed through
the algorithm settings panel
This commit is contained in:
parent
fa22256717
commit
9d44782be4
@ -159,6 +159,7 @@ QgsProcessingAlgorithmDialogBase::QgsProcessingAlgorithmDialogBase( QWidget *par
|
||||
mGeometryCheck = mContextOptionsWidget->invalidGeometryCheck();
|
||||
mDistanceUnits = mContextOptionsWidget->distanceUnit();
|
||||
mAreaUnits = mContextOptionsWidget->areaUnit();
|
||||
mTemporaryFolderOverride = mContextOptionsWidget->temporaryFolder();
|
||||
} );
|
||||
}
|
||||
}
|
||||
@ -867,6 +868,7 @@ void QgsProcessingAlgorithmDialogBase::applyContextOverrides( QgsProcessingConte
|
||||
context->setInvalidGeometryCheck( mGeometryCheck );
|
||||
context->setDistanceUnit( mDistanceUnits );
|
||||
context->setAreaUnit( mAreaUnits );
|
||||
context->setTemporaryFolder( mTemporaryFolderOverride );
|
||||
}
|
||||
}
|
||||
|
||||
@ -946,6 +948,10 @@ QgsProcessingContextOptionsWidget::QgsProcessingContextOptionsWidget( QWidget *p
|
||||
mComboInvalidFeatureFiltering->addItem( tr( "Skip (Ignore) Features with Invalid Geometries" ), QgsFeatureRequest::GeometrySkipInvalid );
|
||||
mComboInvalidFeatureFiltering->addItem( tr( "Stop Algorithm Execution When a Geometry is Invalid" ), QgsFeatureRequest::GeometryAbortOnInvalid );
|
||||
|
||||
mTemporaryFolderWidget->setDialogTitle( tr( "Select Temporary Directory" ) );
|
||||
mTemporaryFolderWidget->setStorageMode( QgsFileWidget::GetDirectory );
|
||||
mTemporaryFolderWidget->lineEdit()->setPlaceholderText( tr( "Default" ) );
|
||||
|
||||
mDistanceUnitsCombo->addItem( tr( "Default" ), QVariant::fromValue( Qgis::DistanceUnit::Unknown ) );
|
||||
for ( Qgis::DistanceUnit unit :
|
||||
{
|
||||
@ -1005,6 +1011,7 @@ QgsProcessingContextOptionsWidget::QgsProcessingContextOptionsWidget( QWidget *p
|
||||
connect( mComboInvalidFeatureFiltering, qOverload< int >( &QComboBox::currentIndexChanged ), this, &QgsPanelWidget::widgetChanged );
|
||||
connect( mDistanceUnitsCombo, qOverload< int >( &QComboBox::currentIndexChanged ), this, &QgsPanelWidget::widgetChanged );
|
||||
connect( mAreaUnitsCombo, qOverload< int >( &QComboBox::currentIndexChanged ), this, &QgsPanelWidget::widgetChanged );
|
||||
connect( mTemporaryFolderWidget, &QgsFileWidget::fileChanged, this, &QgsPanelWidget::widgetChanged );
|
||||
}
|
||||
|
||||
void QgsProcessingContextOptionsWidget::setFromContext( const QgsProcessingContext *context )
|
||||
@ -1012,6 +1019,7 @@ void QgsProcessingContextOptionsWidget::setFromContext( const QgsProcessingConte
|
||||
whileBlocking( mComboInvalidFeatureFiltering )->setCurrentIndex( mComboInvalidFeatureFiltering->findData( static_cast< int >( context->invalidGeometryCheck() ) ) );
|
||||
whileBlocking( mDistanceUnitsCombo )->setCurrentIndex( mDistanceUnitsCombo->findData( QVariant::fromValue( context->distanceUnit() ) ) );
|
||||
whileBlocking( mAreaUnitsCombo )->setCurrentIndex( mAreaUnitsCombo->findData( QVariant::fromValue( context->areaUnit() ) ) );
|
||||
whileBlocking( mTemporaryFolderWidget )->setFilePath( context->temporaryFolder() );
|
||||
}
|
||||
|
||||
QgsFeatureRequest::InvalidGeometryCheck QgsProcessingContextOptionsWidget::invalidGeometryCheck() const
|
||||
@ -1029,4 +1037,9 @@ Qgis::AreaUnit QgsProcessingContextOptionsWidget::areaUnit() const
|
||||
return mAreaUnitsCombo->currentData().value< Qgis::AreaUnit >();
|
||||
}
|
||||
|
||||
QString QgsProcessingContextOptionsWidget::temporaryFolder()
|
||||
{
|
||||
return mTemporaryFolderWidget->filePath();
|
||||
}
|
||||
|
||||
///@endcond
|
||||
|
@ -474,6 +474,7 @@ class GUI_EXPORT QgsProcessingAlgorithmDialogBase : public QDialog, public QgsPr
|
||||
QgsFeatureRequest::InvalidGeometryCheck mGeometryCheck = QgsFeatureRequest::InvalidGeometryCheck::GeometryAbortOnInvalid;
|
||||
Qgis::DistanceUnit mDistanceUnits = Qgis::DistanceUnit::Unknown;
|
||||
Qgis::AreaUnit mAreaUnits = Qgis::AreaUnit::Unknown;
|
||||
QString mTemporaryFolderOverride;
|
||||
|
||||
QString formatHelp( QgsProcessingAlgorithm *algorithm );
|
||||
void scrollToBottomOfLog();
|
||||
@ -558,6 +559,11 @@ class GUI_EXPORT QgsProcessingContextOptionsWidget : public QgsPanelWidget, priv
|
||||
*/
|
||||
Qgis::AreaUnit areaUnit() const;
|
||||
|
||||
/**
|
||||
* Returns the optional temporary folder override location.
|
||||
*/
|
||||
QString temporaryFolder();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>448</width>
|
||||
<height>197</height>
|
||||
<height>328</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -43,7 +43,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>448</width>
|
||||
<height>197</height>
|
||||
<height>328</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="0,0">
|
||||
@ -54,26 +54,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Invalid feature filtering</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
@ -103,6 +83,45 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Invalid feature filtering</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Environment Settings</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Temporary folder</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QgsFileWidget" name="mTemporaryFolderWidget" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
@ -122,6 +141,12 @@
|
||||
<header>qgspanelwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsFileWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qgsfilewidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user