Skip to content

Commit d37518d

Browse files
committedJul 6, 2016
Fix undo/redo for rule-based renderer/labeling in styling dock
1 parent 156e7e0 commit d37518d

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed
 

‎src/app/qgsrulebasedlabelingwidget.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ QgsRuleBasedLabelingWidget::QgsRuleBasedLabelingWidget( QgsVectorLayer* layer, Q
6969

7070
mModel = new QgsRuleBasedLabelingModel( mRootRule );
7171
viewRules->setModel( mModel );
72+
73+
connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SIGNAL( widgetChanged() ) );
74+
connect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SIGNAL( widgetChanged() ) );
75+
connect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int ) ), this, SIGNAL( widgetChanged() ) );
7276
}
7377

7478
QgsRuleBasedLabelingWidget::~QgsRuleBasedLabelingWidget()
@@ -116,8 +120,6 @@ void QgsRuleBasedLabelingWidget::ruleWidgetPanelAccepted( QgsPanelWidget* panel
116120

117121
QModelIndex index = viewRules->selectionModel()->currentIndex();
118122
mModel->updateRule( index.parent(), index.row() );
119-
120-
emit widgetChanged();
121123
}
122124

123125
void QgsRuleBasedLabelingWidget::liveUpdateRuleFromPanel()
@@ -158,7 +160,6 @@ void QgsRuleBasedLabelingWidget::removeRule()
158160
}
159161
// make sure that the selection is gone
160162
viewRules->selectionModel()->clear();
161-
emit widgetChanged();
162163
}
163164

164165
void QgsRuleBasedLabelingWidget::copy()
@@ -171,7 +172,6 @@ void QgsRuleBasedLabelingWidget::copy()
171172

172173
QMimeData* mime = mModel->mimeData( indexlist );
173174
QApplication::clipboard()->setMimeData( mime );
174-
emit widgetChanged();
175175
}
176176

177177
void QgsRuleBasedLabelingWidget::paste()
@@ -184,7 +184,6 @@ void QgsRuleBasedLabelingWidget::paste()
184184
else
185185
index = indexlist.first();
186186
mModel->dropMimeData( mime, Qt::CopyAction, index.row(), index.column(), index.parent() );
187-
emit widgetChanged();
188187
}
189188

190189
QgsRuleBasedLabeling::Rule* QgsRuleBasedLabelingWidget::currentRule()

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ QgsRuleBasedRendererV2Widget::QgsRuleBasedRendererV2Widget( QgsVectorLayer* laye
107107
connect( btnRenderingOrder, SIGNAL( clicked() ), this, SLOT( setRenderingOrder() ) );
108108

109109
connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SIGNAL( widgetChanged() ) );
110+
connect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SIGNAL( widgetChanged() ) );
111+
connect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int ) ), this, SIGNAL( widgetChanged() ) );
110112

111113
currentRuleChanged();
112114
selectedRulesChanged();
@@ -462,7 +464,6 @@ void QgsRuleBasedRendererV2Widget::refineRuleCategoriesAccepted( QgsPanelWidget
462464
QgsRuleBasedRendererV2::refineRuleCategories( initialRule, r );
463465
}
464466
mModel->finishedAddingRules();
465-
emit widgetChanged();
466467
}
467468

468469
void QgsRuleBasedRendererV2Widget::refineRuleRangesAccepted( QgsPanelWidget *panel )
@@ -478,7 +479,6 @@ void QgsRuleBasedRendererV2Widget::refineRuleRangesAccepted( QgsPanelWidget *pan
478479
QgsRuleBasedRendererV2::refineRuleRanges( initialRule, r );
479480
}
480481
mModel->finishedAddingRules();
481-
emit widgetChanged();
482482
}
483483

484484
void QgsRuleBasedRendererV2Widget::ruleWidgetPanelAccepted( QgsPanelWidget *panel )
@@ -490,7 +490,6 @@ void QgsRuleBasedRendererV2Widget::ruleWidgetPanelAccepted( QgsPanelWidget *pane
490490
QModelIndex index = viewRules->selectionModel()->currentIndex();
491491
mModel->updateRule( index.parent(), index.row() );
492492
mModel->clearFeatureCounts();
493-
emit widgetChanged();
494493
}
495494

496495
void QgsRuleBasedRendererV2Widget::liveUpdateRuleFromPanel()

0 commit comments

Comments
 (0)
Please sign in to comment.