From 96f366671b12765abbc11e58a2b1a886a82bfd0c Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 24 Apr 2014 13:29:25 +0200 Subject: [PATCH] + improve performance of editing fillet feature (patch from chrisf) --- src/Mod/Part/Gui/DlgFilletEdges.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/Gui/DlgFilletEdges.cpp b/src/Mod/Part/Gui/DlgFilletEdges.cpp index c74b01d7ae88..bd498c7a66a0 100644 --- a/src/Mod/Part/Gui/DlgFilletEdges.cpp +++ b/src/Mod/Part/Gui/DlgFilletEdges.cpp @@ -42,6 +42,7 @@ # include # include # include +# include # include # include # include @@ -181,6 +182,7 @@ namespace PartGui { App::DocumentObject* object; EdgeFaceSelection* selection; Part::FilletBase* fillet; + QTimer* highlighttimer; FilletType filletType; std::vector edge_ids; TopTools_IndexedMapOfShape all_edges; @@ -217,6 +219,12 @@ DlgFilletEdges::DlgFilletEdges(FilletType type, Part::FilletBase* fillet, QWidge this, SLOT(toggleCheckState(const QModelIndex&))); model->insertColumns(0,3); + // timer for highlighting + d->highlighttimer = new QTimer(this); + d->highlighttimer->setSingleShot(true); + connect(d->highlighttimer,SIGNAL(timeout()), + this, SLOT(onHighlightEdges())); + d->filletType = type; if (d->filletType == DlgFilletEdges::CHAMFER) { ui->labelRadius->setText(tr("Length:")); @@ -282,7 +290,7 @@ void DlgFilletEdges::onSelectionChanged(const Gui::SelectionChanges& msg) if (msg.Type != Gui::SelectionChanges::SetPreselect && msg.Type != Gui::SelectionChanges::RmvPreselect) - QTimer::singleShot(20, this, SLOT(onHighlightEdges())); + d->highlighttimer->start(20); } void DlgFilletEdges::onHighlightEdges()