mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-22 00:06:12 -05:00
[processing] Use matrix editor panel value if open
When an algorithm is run and the editor panel is still open for a matrix parameter, use the table defined in that panel as for the parameter. Fixes #60442
This commit is contained in:
parent
af393490eb
commit
02bf608b91
@ -179,6 +179,15 @@ QgsProcessingMatrixParameterPanel::QgsProcessingMatrixParameterPanel( QWidget *p
|
||||
connect( mToolButton, &QToolButton::clicked, this, &QgsProcessingMatrixParameterPanel::showDialog );
|
||||
}
|
||||
|
||||
QVariantList QgsProcessingMatrixParameterPanel::value() const
|
||||
{
|
||||
// if editing widget is still open, use the value currently shown in that widget
|
||||
if ( mPanelWidget )
|
||||
return mPanelWidget->table();
|
||||
|
||||
return mTable;
|
||||
}
|
||||
|
||||
void QgsProcessingMatrixParameterPanel::setValue( const QVariantList &value )
|
||||
{
|
||||
mTable = value;
|
||||
@ -190,14 +199,14 @@ void QgsProcessingMatrixParameterPanel::showDialog()
|
||||
{
|
||||
if ( QgsPanelWidget *panel = QgsPanelWidget::findParentPanel( this ) )
|
||||
{
|
||||
QgsProcessingMatrixParameterPanelWidget *widget = new QgsProcessingMatrixParameterPanelWidget( this, mParam, mTable );
|
||||
mPanelWidget = new QgsProcessingMatrixParameterPanelWidget( this, mParam, mTable );
|
||||
|
||||
widget->setPanelTitle( mParam->description() );
|
||||
mPanelWidget->setPanelTitle( mParam->description() );
|
||||
|
||||
panel->openPanel( widget );
|
||||
panel->openPanel( mPanelWidget );
|
||||
|
||||
connect( widget, &QgsPanelWidget::widgetChanged, this, [=] {
|
||||
setValue( widget->table() );
|
||||
connect( mPanelWidget, &QgsPanelWidget::widgetChanged, this, [=] {
|
||||
setValue( mPanelWidget->table() );
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ class GUI_EXPORT QgsProcessingMatrixParameterPanel : public QWidget
|
||||
public:
|
||||
QgsProcessingMatrixParameterPanel( QWidget *parent = nullptr, const QgsProcessingParameterMatrix *param = nullptr );
|
||||
|
||||
QVariantList value() const { return mTable; }
|
||||
QVariantList value() const;
|
||||
|
||||
void setValue( const QVariantList &value );
|
||||
|
||||
@ -102,6 +102,7 @@ class GUI_EXPORT QgsProcessingMatrixParameterPanel : public QWidget
|
||||
QToolButton *mToolButton = nullptr;
|
||||
|
||||
QVariantList mTable;
|
||||
QPointer< QgsProcessingMatrixParameterPanelWidget > mPanelWidget;
|
||||
|
||||
friend class TestProcessingGui;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user