@@ -134,29 +134,24 @@ void QgsRuleBasedRendererV2Widget::addRule()
134
134
QgsSymbolV2* s = QgsSymbolV2::defaultSymbol ( mLayer ->geometryType () );
135
135
QgsRuleBasedRendererV2::Rule* newrule = new QgsRuleBasedRendererV2::Rule ( s );
136
136
137
- QgsRendererRulePropsDialog dlg ( newrule, mLayer , mStyle , this , mMapCanvas );
138
- if ( dlg. exec () )
137
+ QgsRuleBasedRendererV2::Rule* current = currentRule ( );
138
+ if ( current )
139
139
{
140
- QgsRuleBasedRendererV2::Rule* current = currentRule ();
141
- if ( current )
142
- {
143
- // add after this rule
144
- QModelIndex currentIndex = viewRules->selectionModel ()->currentIndex ();
145
- mModel ->insertRule ( currentIndex.parent (), currentIndex.row () + 1 , newrule );
146
- }
147
- else
148
- {
149
- // append to root rule
150
- int rows = mModel ->rowCount ();
151
- mModel ->insertRule ( QModelIndex (), rows, newrule );
152
- }
153
- mModel ->clearFeatureCounts ();
154
- emit widgetChanged ();
140
+ // add after this rule
141
+ QModelIndex currentIndex = viewRules->selectionModel ()->currentIndex ();
142
+ mModel ->insertRule ( currentIndex.parent (), currentIndex.row () + 1 , newrule );
143
+ QModelIndex newindex = mModel ->index ( currentIndex.row () + 1 , 0 , currentIndex.parent () );
144
+ viewRules->selectionModel ()->setCurrentIndex ( newindex, QItemSelectionModel::ClearAndSelect );
155
145
}
156
146
else
157
147
{
158
- delete newrule;
148
+ // append to root rule
149
+ int rows = mModel ->rowCount ();
150
+ mModel ->insertRule ( QModelIndex (), rows, newrule );
151
+ QModelIndex newindex = mModel ->index ( rows, 0 );
152
+ viewRules->selectionModel ()->setCurrentIndex ( newindex, QItemSelectionModel::ClearAndSelect );
159
153
}
154
+ editRule ();
160
155
}
161
156
162
157
QgsRuleBasedRendererV2::Rule* QgsRuleBasedRendererV2Widget::currentRule ()
@@ -180,12 +175,12 @@ void QgsRuleBasedRendererV2Widget::editRule( const QModelIndex& index )
180
175
181
176
QgsRuleBasedRendererV2::Rule* rule = mModel ->ruleForIndex ( index );
182
177
183
- QgsRendererRulePropsWidget* widget = new QgsRendererRulePropsWidget ( rule, mLayer , mStyle , this , mMapCanvas );
178
+ QgsRendererRulePropsWidget* widget = new QgsRendererRulePropsWidget ( rule, mLayer , mStyle , this , mMapCanvas );
184
179
widget->setDockMode ( true );
185
- widget->setPanelTitle (tr (" Edit rule" ) );
186
- connect ( widget, SIGNAL (panelAccepted (QgsPanelWidget*) ), this , SLOT (ruleWidgetPanelAccepted (QgsPanelWidget*)) );
187
- connect ( widget, SIGNAL (widgetChanged ()), this , SLOT (liveUpdateRuleFromPanel ()) );
188
- openPanel (widget);
180
+ widget->setPanelTitle ( tr ( " Edit rule" ) );
181
+ connect ( widget, SIGNAL ( panelAccepted ( QgsPanelWidget* ) ), this , SLOT ( ruleWidgetPanelAccepted ( QgsPanelWidget* ) ) );
182
+ connect ( widget, SIGNAL ( widgetChanged () ), this , SLOT ( liveUpdateRuleFromPanel () ) );
183
+ openPanel ( widget );
189
184
}
190
185
191
186
void QgsRuleBasedRendererV2Widget::removeRule ()
@@ -491,20 +486,21 @@ void QgsRuleBasedRendererV2Widget::paste()
491
486
mModel ->dropMimeData ( mime, Qt::CopyAction, index.row (), index.column (), index.parent () );
492
487
}
493
488
494
- void QgsRuleBasedRendererV2Widget::ruleWidgetPanelAccepted (QgsPanelWidget *panel)
489
+ void QgsRuleBasedRendererV2Widget::ruleWidgetPanelAccepted ( QgsPanelWidget *panel )
495
490
{
496
- QgsRendererRulePropsWidget* widget = qobject_cast<QgsRendererRulePropsWidget*>( panel );
497
- widget->apply ();
491
+ QgsRendererRulePropsWidget* widget = qobject_cast<QgsRendererRulePropsWidget*>( panel );
492
+ widget->apply ();
498
493
499
- // model should know about the change and emit dataChanged signal for the view
500
- QModelIndex index = viewRules->selectionModel ()->currentIndex ();
501
- mModel ->updateRule ( index.parent (), index.row () );
502
- mModel ->clearFeatureCounts ();
494
+ // model should know about the change and emit dataChanged signal for the view
495
+ QModelIndex index = viewRules->selectionModel ()->currentIndex ();
496
+ mModel ->updateRule ( index.parent (), index.row () );
497
+ mModel ->clearFeatureCounts ();
498
+ emit widgetChanged ();
503
499
}
504
500
505
501
void QgsRuleBasedRendererV2Widget::liveUpdateRuleFromPanel ()
506
502
{
507
- ruleWidgetPanelAccepted ( qobject_cast<QgsPanelWidget*>(sender ()) );
503
+ ruleWidgetPanelAccepted ( qobject_cast<QgsPanelWidget*>( sender () ) );
508
504
}
509
505
510
506
@@ -649,8 +645,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRendererV2::
649
645
650
646
mSymbolSelector = new QgsSymbolV2SelectorWidget ( mSymbol , style, mLayer , this );
651
647
mSymbolSelector ->setMapCanvas ( mMapCanvas );
652
- connect (mSymbolSelector , SIGNAL (widgetChanged ()), this , SIGNAL (widgetChanged ()) );
653
- connect ( mSymbolSelector , SIGNAL (showPanel (QgsPanelWidget*) ), this , SLOT (openPanel (QgsPanelWidget*)) );
648
+ connect ( mSymbolSelector , SIGNAL ( widgetChanged () ), this , SIGNAL ( widgetChanged () ) );
649
+ connect ( mSymbolSelector , SIGNAL ( showPanel ( QgsPanelWidget* ) ), this , SLOT ( openPanel ( QgsPanelWidget* ) ) );
654
650
655
651
QVBoxLayout* l = new QVBoxLayout;
656
652
l->addWidget ( mSymbolSelector );
@@ -666,20 +662,20 @@ QgsRendererRulePropsWidget::~QgsRendererRulePropsWidget()
666
662
667
663
}
668
664
669
- QgsRendererRulePropsDialog::QgsRendererRulePropsDialog (QgsRuleBasedRendererV2::Rule *rule, QgsVectorLayer *layer, QgsStyleV2 *style, QWidget *parent, QgsMapCanvas *mapCanvas)
670
- : QDialog(parent)
665
+ QgsRendererRulePropsDialog::QgsRendererRulePropsDialog ( QgsRuleBasedRendererV2::Rule *rule, QgsVectorLayer *layer, QgsStyleV2 *style, QWidget *parent, QgsMapCanvas *mapCanvas )
666
+ : QDialog( parent )
671
667
{
672
668
673
669
#ifdef Q_OS_MAC
674
670
setWindowModality ( Qt::WindowModal );
675
671
#endif
676
- this ->setLayout (new QVBoxLayout ());
672
+ this ->setLayout ( new QVBoxLayout () );
677
673
678
- buttonBox = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
679
- mPropsWidget = new QgsRendererRulePropsWidget (rule, layer, style, this , mapCanvas);
674
+ buttonBox = new QDialogButtonBox ( QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
675
+ mPropsWidget = new QgsRendererRulePropsWidget ( rule, layer, style, this , mapCanvas );
680
676
681
- this ->layout ()->addWidget (mPropsWidget );
682
- this ->layout ()->addWidget (buttonBox);
677
+ this ->layout ()->addWidget ( mPropsWidget );
678
+ this ->layout ()->addWidget ( buttonBox );
683
679
684
680
connect ( buttonBox, SIGNAL ( accepted () ), this , SLOT ( accept () ) );
685
681
connect ( buttonBox, SIGNAL ( rejected () ), this , SLOT ( reject () ) );
@@ -796,7 +792,7 @@ void QgsRendererRulePropsWidget::apply()
796
792
mRule ->setSymbol ( groupSymbol->isChecked () ? mSymbol ->clone () : nullptr );
797
793
}
798
794
799
- void QgsRendererRulePropsWidget::setDockMode (bool dockMode)
795
+ void QgsRendererRulePropsWidget::setDockMode ( bool dockMode )
800
796
{
801
797
QgsPanelWidget::setDockMode ( dockMode );
802
798
mSymbolSelector ->setDockMode ( true );
0 commit comments