@@ -181,12 +181,25 @@ void QgsRuleBasedRendererWidget::editRule( const QModelIndex &index )
181
181
return ;
182
182
183
183
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
+ }
184
195
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
+ }
190
203
}
191
204
192
205
void QgsRuleBasedRendererWidget::removeRule ()
@@ -680,6 +693,7 @@ QgsRendererRulePropsDialog::QgsRendererRulePropsDialog( QgsRuleBasedRenderer::Ru
680
693
681
694
this ->layout ()->addWidget ( mPropsWidget );
682
695
this ->layout ()->addWidget ( buttonBox );
696
+ this ->setWindowTitle ( " Edit Rule" );
683
697
684
698
connect ( buttonBox, &QDialogButtonBox::accepted, this , &QgsRendererRulePropsDialog::accept );
685
699
connect ( buttonBox, &QDialogButtonBox::rejected, this , &QDialog::reject );
0 commit comments