From 399f5de90625de9fc9210f55038a386a445cb937 Mon Sep 17 00:00:00 2001
From: 0penBrain <48731257+0penBrain@users.noreply.github.com>
Date: Sat, 11 Apr 2020 15:12:05 +0200
Subject: [PATCH] [Sketcher] Fix catching of rendering order change
model()->layoutChanged signal didn't work at all, was never emitted by widget
Replaced with an eventFilter catching ChildRemoved to further emit the signal
---
src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp | 13 +++++++++++--
src/Mod/Sketcher/Gui/TaskSketcherGeneral.h | 2 ++
2 files changed, 13 insertions(+), 2 deletions(-)
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();