diff --git a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp
index eb459e861e..b26c6b2ec3 100644
--- a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp
+++ b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp
@@ -36,6 +36,8 @@
#include
#include
+#include
+
#include "ViewProviderSketch.h"
using namespace SketcherGui;
@@ -58,8 +60,7 @@ SketcherGeneralWidget::SketcherGeneralWidget(QWidget *parent)
this, SLOT(onSetGridSize(double)));
connect(ui->checkBoxAutoconstraints, SIGNAL(stateChanged(int)),
this, SIGNAL(emitToggleAutoconstraints(int)));
- connect(ui->renderingOrder->model(), SIGNAL(layoutChanged()),
- this, SLOT(onRenderOrderChanged()));
+ ui->renderingOrder->installEventFilter(this);
}
SketcherGeneralWidget::~SketcherGeneralWidget()
@@ -67,6 +68,14 @@ SketcherGeneralWidget::~SketcherGeneralWidget()
delete ui;
}
+bool SketcherGeneralWidget::eventFilter(QObject *object, QEvent *event)
+{
+ if (object == ui->renderingOrder && event->type() == QEvent::ChildRemoved) {
+ onRenderOrderChanged();
+ }
+ return false;
+}
+
void SketcherGeneralWidget::saveSettings()
{
ui->checkBoxShowGrid->onSave();
diff --git a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h
index ad6e309023..4499537417 100644
--- a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h
+++ b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h
@@ -49,6 +49,8 @@ class SketcherGeneralWidget : public QWidget
public:
SketcherGeneralWidget(QWidget *parent=0);
~SketcherGeneralWidget();
+
+ bool eventFilter(QObject *object, QEvent *event);
void saveSettings();
void saveOrderingOrder();