Skip to content

Commit

Permalink
Enable rule-based dialog instead of widget all time
Browse files Browse the repository at this point in the history
  • Loading branch information
DelazJ committed Jan 27, 2018
1 parent 71bdda5 commit 171b9ee
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions src/gui/symbology/qgsrulebasedrendererwidget.cpp
Expand Up @@ -181,12 +181,25 @@ void QgsRuleBasedRendererWidget::editRule( const QModelIndex &index )
return;

QgsRuleBasedRenderer::Rule *rule = mModel->ruleForIndex( index );
QgsPanelWidget *panel = QgsPanelWidget::findParentPanel( this );

if ( panel && panel->dockMode() )
{
QgsRendererRulePropsWidget *widget = new QgsRendererRulePropsWidget( rule, mLayer, mStyle, this, mContext );//panel?
widget->setPanelTitle( tr( "Edit Rule" ) );
connect( widget, &QgsPanelWidget::panelAccepted, this, &QgsRuleBasedRendererWidget::ruleWidgetPanelAccepted );
connect( widget, &QgsPanelWidget::widgetChanged, this, &QgsRuleBasedRendererWidget::liveUpdateRuleFromPanel );
openPanel( widget );
return;
}

QgsRendererRulePropsWidget *widget = new QgsRendererRulePropsWidget( rule, mLayer, mStyle, this, mContext );
widget->setPanelTitle( tr( "Edit Rule" ) );
connect( widget, &QgsPanelWidget::panelAccepted, this, &QgsRuleBasedRendererWidget::ruleWidgetPanelAccepted );
connect( widget, &QgsPanelWidget::widgetChanged, this, &QgsRuleBasedRendererWidget::liveUpdateRuleFromPanel );
openPanel( widget );
QgsRendererRulePropsDialog dlg( rule, mLayer, mStyle, this, mContext );
if ( dlg.exec() )
{
mModel->updateRule( index.parent(), index.row() );
mModel->clearFeatureCounts();
emit widgetChanged();
}
}

void QgsRuleBasedRendererWidget::removeRule()
Expand Down Expand Up @@ -680,6 +693,7 @@ QgsRendererRulePropsDialog::QgsRendererRulePropsDialog( QgsRuleBasedRenderer::Ru

this->layout()->addWidget( mPropsWidget );
this->layout()->addWidget( buttonBox );
this->setWindowTitle( "Edit Rule" );

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

0 comments on commit 171b9ee

Please sign in to comment.