Skip to content

Commit 171b9ee

Browse files
committed
Enable rule-based dialog instead of widget all time
1 parent 71bdda5 commit 171b9ee

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/gui/symbology/qgsrulebasedrendererwidget.cpp

+19-5
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,25 @@ void QgsRuleBasedRendererWidget::editRule( const QModelIndex &index )
181181
return;
182182

183183
QgsRuleBasedRenderer::Rule *rule = mModel->ruleForIndex( index );
184+
QgsPanelWidget *panel = QgsPanelWidget::findParentPanel( this );
185+
186+
if ( panel && panel->dockMode() )
187+
{
188+
QgsRendererRulePropsWidget *widget = new QgsRendererRulePropsWidget( rule, mLayer, mStyle, this, mContext );//panel?
189+
widget->setPanelTitle( tr( "Edit Rule" ) );
190+
connect( widget, &QgsPanelWidget::panelAccepted, this, &QgsRuleBasedRendererWidget::ruleWidgetPanelAccepted );
191+
connect( widget, &QgsPanelWidget::widgetChanged, this, &QgsRuleBasedRendererWidget::liveUpdateRuleFromPanel );
192+
openPanel( widget );
193+
return;
194+
}
184195

185-
QgsRendererRulePropsWidget *widget = new QgsRendererRulePropsWidget( rule, mLayer, mStyle, this, mContext );
186-
widget->setPanelTitle( tr( "Edit Rule" ) );
187-
connect( widget, &QgsPanelWidget::panelAccepted, this, &QgsRuleBasedRendererWidget::ruleWidgetPanelAccepted );
188-
connect( widget, &QgsPanelWidget::widgetChanged, this, &QgsRuleBasedRendererWidget::liveUpdateRuleFromPanel );
189-
openPanel( widget );
196+
QgsRendererRulePropsDialog dlg( rule, mLayer, mStyle, this, mContext );
197+
if ( dlg.exec() )
198+
{
199+
mModel->updateRule( index.parent(), index.row() );
200+
mModel->clearFeatureCounts();
201+
emit widgetChanged();
202+
}
190203
}
191204

192205
void QgsRuleBasedRendererWidget::removeRule()
@@ -680,6 +693,7 @@ QgsRendererRulePropsDialog::QgsRendererRulePropsDialog( QgsRuleBasedRenderer::Ru
680693

681694
this->layout()->addWidget( mPropsWidget );
682695
this->layout()->addWidget( buttonBox );
696+
this->setWindowTitle( "Edit Rule" );
683697

684698
connect( buttonBox, &QDialogButtonBox::accepted, this, &QgsRendererRulePropsDialog::accept );
685699
connect( buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject );

0 commit comments

Comments
 (0)