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