瀏覽代碼

BUG: ctkVTKScalarsToColorsWidget: Set ControlPointsItem after adding a plot

Jean-Christophe Fillion-Robin 6 年之前
父節點
當前提交
b88e34ba57

+ 6 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKScalarsToColorsWidgetTest1.cpp

@@ -24,6 +24,7 @@
 #include <QTimer>
 
 // CTK includes
+#include "ctkCoreTestingMacros.h"
 #include "ctkVTKScalarsToColorsView.h"
 #include "ctkVTKScalarsToColorsWidget.h"
 
@@ -61,12 +62,17 @@ int ctkVTKScalarsToColorsWidgetTest1(int argc, char * argv [] )
   opacityFunction->AddPoint(1.,0.8, 0.5, 0.5);
 
   ctkVTKScalarsToColorsWidget widget(0);
+
+  CHECK_NULL(widget.currentControlPointsItem())
+
   // add transfer function item
   vtkPlot* plot = widget.view()->addOpacityFunction(opacityFunction);
   plot->SetColor(0, 67,  247, 255);
   widget.view()->setAxesToChartBounds();
   widget.show();
 
+  CHECK_NOT_NULL(widget.currentControlPointsItem())
+
   if (argc < 2 || QString(argv[1]) != "-I")
     {
     QTimer::singleShot(200, &app, SLOT(quit()));

+ 6 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKScalarsToColorsWidgetTest2.cpp

@@ -24,6 +24,7 @@
 #include <QTimer>
 
 // CTK includes
+#include "ctkCoreTestingMacros.h"
 #include "ctkVTKScalarsToColorsView.h"
 #include "ctkVTKScalarsToColorsWidget.h"
 
@@ -71,11 +72,16 @@ int ctkVTKScalarsToColorsWidgetTest2(int argc, char * argv [] )
   opacityFunction->AddPoint(0.8, 0.45);
 
   ctkVTKScalarsToColorsWidget widget(0);
+
+  CHECK_NULL(widget.currentControlPointsItem())
+
   // add transfer function item
   widget.view()->addCompositeFunction(ctf, opacityFunction);
   widget.view()->setAxesToChartBounds();
   widget.show();
 
+  CHECK_NOT_NULL(widget.currentControlPointsItem())
+
   if (argc < 2 || QString(argv[1]) != "-I")
     {
     QTimer::singleShot(200, &app, SLOT(quit()));

+ 6 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKScalarsToColorsWidgetTest3.cpp

@@ -24,6 +24,7 @@
 #include <QTimer>
 
 // CTK includes
+#include "ctkCoreTestingMacros.h"
 #include "ctkVTKScalarsToColorsView.h"
 #include "ctkVTKScalarsToColorsWidget.h"
 
@@ -63,11 +64,16 @@ int ctkVTKScalarsToColorsWidgetTest3(int argc, char * argv [] )
   ctf->AddRGBPoint(1.,  183./255., 7./255., 140./255.);
 
   ctkVTKScalarsToColorsWidget widget(0);
+
+  CHECK_NULL(widget.currentControlPointsItem())
+
   // add transfer function item
   widget.view()->addColorTransferFunction(ctf);
   widget.view()->setAxesToChartBounds();
   widget.show();
 
+  CHECK_NOT_NULL(widget.currentControlPointsItem())
+
   if (argc < 2 || QString(argv[1]) != "-I")
     {
     QTimer::singleShot(200, &app, SLOT(quit()));

+ 3 - 1
Libs/Visualization/VTK/Widgets/ctkVTKScalarsToColorsWidget.cpp

@@ -251,8 +251,10 @@ void ctkVTKScalarsToColorsWidget::setEditColors(bool edit)
 // ----------------------------------------------------------------------------
 void ctkVTKScalarsToColorsWidget::onPlotAdded(vtkPlot* plot)
 {
-  if (vtkControlPointsItem::SafeDownCast(plot))
+  vtkControlPointsItem* controlPoints = vtkControlPointsItem::SafeDownCast(plot);
+  if (controlPoints)
     {
+    this->setCurrentControlPointsItem(controlPoints);
     this->qvtkConnect(plot, vtkControlPointsItem::CurrentPointChangedEvent,
                       this, SLOT(setCurrentPoint(vtkObject*,void*)));
     }