Przeglądaj źródła

Don't fire unnecessary renders in ctkVTKScalarsToColorsWidget

Julien Finet 14 lat temu
rodzic
commit
8c1602a043

+ 12 - 4
Libs/Visualization/VTK/Widgets/ctkVTKScalarsToColorsWidget.cpp

@@ -419,8 +419,12 @@ void ctkVTKScalarsToColorsWidget::setXRange(double min, double max)
   vtkAxis* xAxis = d->CurrentControlPointsItem ?
     d->CurrentControlPointsItem->GetXAxis() : d->View->chart()->GetAxis(vtkAxis::BOTTOM);
   Q_ASSERT(xAxis);
-  d->View->scene()->SetDirty(true);
-  xAxis->SetRange(min, max);
+  if (xAxis->GetMinimum() != min || xAxis->GetMaximum() != max)
+    {
+    xAxis->SetRange(min, max);
+    // Repaint the scene
+    d->View->scene()->SetDirty(true);
+    }
 }
 
 // ----------------------------------------------------------------------------
@@ -441,8 +445,12 @@ void ctkVTKScalarsToColorsWidget::setYRange(double min, double max)
   vtkAxis* yAxis = d->CurrentControlPointsItem ?
     d->CurrentControlPointsItem->GetYAxis() : d->View->chart()->GetAxis(vtkAxis::LEFT);
   Q_ASSERT(yAxis);
-  d->View->scene()->SetDirty(true);
-  yAxis->SetRange(min, max);
+  if (yAxis->GetMinimum() != min || yAxis->GetMaximum() != max)
+    {
+    yAxis->SetRange(min, max);
+    // Repaint the scene
+    d->View->scene()->SetDirty(true);
+    }
 }
 
 // ----------------------------------------------------------------------------

+ 3 - 3
Libs/Visualization/VTK/Widgets/ctkVTKVolumePropertyWidget.cpp

@@ -90,11 +90,11 @@ void ctkVTKVolumePropertyWidgetPrivate::setupUi(QWidget* widget)
   this->ScalarOpacityThresholdWidget->setVisible(false);
 
   QObject::connect(this->ScalarOpacityWidget, SIGNAL(axesModified()),
-                   q, SLOT(onAxesModified()), Qt::QueuedConnection);
+                   q, SLOT(onAxesModified()));//, Qt::QueuedConnection);
   QObject::connect(this->ScalarColorWidget, SIGNAL(axesModified()),
-                   q, SLOT(onAxesModified()), Qt::QueuedConnection);
+                   q, SLOT(onAxesModified()));//, Qt::QueuedConnection);
   QObject::connect(this->GradientWidget, SIGNAL(axesModified()),
-                   q, SLOT(onAxesModified()), Qt::QueuedConnection);
+                   q, SLOT(onAxesModified()));//, Qt::QueuedConnection);
 
   this->GradientGroupBox->setCollapsed(true);
   this->AdvancedGroupBox->setCollapsed(true);