Skip to content

Commit 3fb87de

Browse files
committedJun 22, 2016
[styledock] inline new rule panel
1 parent 1f0fce7 commit 3fb87de

File tree

1 file changed

+37
-41
lines changed

1 file changed

+37
-41
lines changed
 

‎src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -134,29 +134,24 @@ void QgsRuleBasedRendererV2Widget::addRule()
134134
QgsSymbolV2* s = QgsSymbolV2::defaultSymbol( mLayer->geometryType() );
135135
QgsRuleBasedRendererV2::Rule* newrule = new QgsRuleBasedRendererV2::Rule( s );
136136

137-
QgsRendererRulePropsDialog dlg( newrule, mLayer, mStyle, this, mMapCanvas );
138-
if ( dlg.exec() )
137+
QgsRuleBasedRendererV2::Rule* current = currentRule();
138+
if ( current )
139139
{
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 );
155145
}
156146
else
157147
{
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 );
159153
}
154+
editRule();
160155
}
161156

162157
QgsRuleBasedRendererV2::Rule* QgsRuleBasedRendererV2Widget::currentRule()
@@ -180,12 +175,12 @@ void QgsRuleBasedRendererV2Widget::editRule( const QModelIndex& index )
180175

181176
QgsRuleBasedRendererV2::Rule* rule = mModel->ruleForIndex( index );
182177

183-
QgsRendererRulePropsWidget* widget = new QgsRendererRulePropsWidget( rule, mLayer, mStyle, this, mMapCanvas);
178+
QgsRendererRulePropsWidget* widget = new QgsRendererRulePropsWidget( rule, mLayer, mStyle, this, mMapCanvas );
184179
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 );
189184
}
190185

191186
void QgsRuleBasedRendererV2Widget::removeRule()
@@ -491,20 +486,21 @@ void QgsRuleBasedRendererV2Widget::paste()
491486
mModel->dropMimeData( mime, Qt::CopyAction, index.row(), index.column(), index.parent() );
492487
}
493488

494-
void QgsRuleBasedRendererV2Widget::ruleWidgetPanelAccepted(QgsPanelWidget *panel)
489+
void QgsRuleBasedRendererV2Widget::ruleWidgetPanelAccepted( QgsPanelWidget *panel )
495490
{
496-
QgsRendererRulePropsWidget* widget = qobject_cast<QgsRendererRulePropsWidget*>( panel );
497-
widget->apply();
491+
QgsRendererRulePropsWidget* widget = qobject_cast<QgsRendererRulePropsWidget*>( panel );
492+
widget->apply();
498493

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();
503499
}
504500

505501
void QgsRuleBasedRendererV2Widget::liveUpdateRuleFromPanel()
506502
{
507-
ruleWidgetPanelAccepted( qobject_cast<QgsPanelWidget*>(sender()));
503+
ruleWidgetPanelAccepted( qobject_cast<QgsPanelWidget*>( sender() ) );
508504
}
509505

510506

@@ -649,8 +645,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRendererV2::
649645

650646
mSymbolSelector = new QgsSymbolV2SelectorWidget( mSymbol, style, mLayer, this );
651647
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* ) ) );
654650

655651
QVBoxLayout* l = new QVBoxLayout;
656652
l->addWidget( mSymbolSelector );
@@ -666,20 +662,20 @@ QgsRendererRulePropsWidget::~QgsRendererRulePropsWidget()
666662

667663
}
668664

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 )
671667
{
672668

673669
#ifdef Q_OS_MAC
674670
setWindowModality( Qt::WindowModal );
675671
#endif
676-
this->setLayout(new QVBoxLayout());
672+
this->setLayout( new QVBoxLayout() );
677673

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 );
680676

681-
this->layout()->addWidget(mPropsWidget);
682-
this->layout()->addWidget(buttonBox);
677+
this->layout()->addWidget( mPropsWidget );
678+
this->layout()->addWidget( buttonBox );
683679

684680
connect( buttonBox, SIGNAL( accepted() ), this, SLOT( accept() ) );
685681
connect( buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) );
@@ -796,7 +792,7 @@ void QgsRendererRulePropsWidget::apply()
796792
mRule->setSymbol( groupSymbol->isChecked() ? mSymbol->clone() : nullptr );
797793
}
798794

799-
void QgsRendererRulePropsWidget::setDockMode(bool dockMode)
795+
void QgsRendererRulePropsWidget::setDockMode( bool dockMode )
800796
{
801797
QgsPanelWidget::setDockMode( dockMode );
802798
mSymbolSelector->setDockMode( true );

0 commit comments

Comments
 (0)
Please sign in to comment.