|
@@ -62,6 +62,7 @@ public:
|
|
return q->findChildren<ctkVTKConnection*>();
|
|
return q->findChildren<ctkVTKConnection*>();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ bool StrictTypeCheck;
|
|
bool AllBlocked;
|
|
bool AllBlocked;
|
|
bool ObserveDeletion;
|
|
bool ObserveDeletion;
|
|
};
|
|
};
|
|
@@ -73,6 +74,7 @@ public:
|
|
ctkVTKObjectEventsObserverPrivate::ctkVTKObjectEventsObserverPrivate(ctkVTKObjectEventsObserver& object)
|
|
ctkVTKObjectEventsObserverPrivate::ctkVTKObjectEventsObserverPrivate(ctkVTKObjectEventsObserver& object)
|
|
:q_ptr(&object)
|
|
:q_ptr(&object)
|
|
{
|
|
{
|
|
|
|
+ this->StrictTypeCheck = false;
|
|
this->AllBlocked = false;
|
|
this->AllBlocked = false;
|
|
// ObserveDeletion == false hasn't been that well tested...
|
|
// ObserveDeletion == false hasn't been that well tested...
|
|
this->ObserveDeletion = true;
|
|
this->ObserveDeletion = true;
|
|
@@ -170,9 +172,24 @@ void ctkVTKObjectEventsObserver::printAdditionalInfo()
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
|
|
+bool ctkVTKObjectEventsObserver::strictTypeCheck()const
|
|
|
|
+{
|
|
|
|
+ Q_D(const ctkVTKObjectEventsObserver);
|
|
|
|
+ return d->StrictTypeCheck;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//-----------------------------------------------------------------------------
|
|
|
|
+void ctkVTKObjectEventsObserver::setStrictTypeCheck(bool check)
|
|
|
|
+{
|
|
|
|
+ Q_D(ctkVTKObjectEventsObserver);
|
|
|
|
+ d->StrictTypeCheck = check;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//-----------------------------------------------------------------------------
|
|
QString ctkVTKObjectEventsObserver::addConnection(vtkObject* old_vtk_obj, vtkObject* vtk_obj,
|
|
QString ctkVTKObjectEventsObserver::addConnection(vtkObject* old_vtk_obj, vtkObject* vtk_obj,
|
|
unsigned long vtk_event, const QObject* qt_obj, const char* qt_slot, float priority)
|
|
unsigned long vtk_event, const QObject* qt_obj, const char* qt_slot, float priority)
|
|
{
|
|
{
|
|
|
|
+ Q_D(ctkVTKObjectEventsObserver);
|
|
if (old_vtk_obj)
|
|
if (old_vtk_obj)
|
|
{
|
|
{
|
|
// Check that old_object and new_object are the same type
|
|
// Check that old_object and new_object are the same type
|
|
@@ -194,11 +211,14 @@ QString ctkVTKObjectEventsObserver::addConnection(vtkObject* old_vtk_obj, vtkObj
|
|
// vtkObject* obj2 = vtkObject::New();
|
|
// vtkObject* obj2 = vtkObject::New();
|
|
// this->addConnection(0, obj2, vtkCommand::Modified...)
|
|
// this->addConnection(0, obj2, vtkCommand::Modified...)
|
|
// ...
|
|
// ...
|
|
- if (vtk_obj && !vtk_obj->IsA(old_vtk_obj->GetClassName()))
|
|
|
|
|
|
+ if (d->StrictTypeCheck && vtk_obj
|
|
|
|
+ && !vtk_obj->IsA(old_vtk_obj->GetClassName()))
|
|
{
|
|
{
|
|
- qDebug() << "Previous vtkObject (type:" << old_vtk_obj->GetClassName() << ") to disconnect"
|
|
|
|
- << "and new vtkObject (type:" << vtk_obj->GetClassName() << ") to connect"
|
|
|
|
- << "have a different type.";
|
|
|
|
|
|
+ qWarning() << "Previous vtkObject (type:" << old_vtk_obj->GetClassName()
|
|
|
|
+ << ") to disconnect"
|
|
|
|
+ << "and new vtkObject (type:" << vtk_obj->GetClassName()
|
|
|
|
+ << ") to connect"
|
|
|
|
+ << "have a different type.";
|
|
return QString();
|
|
return QString();
|
|
}
|
|
}
|
|
// Disconnect old vtkObject
|
|
// Disconnect old vtkObject
|