@@ -383,7 +383,7 @@ void SubnetModule::execute()
383383{
384384}
385385
386- void SubnetModule::setStateDefaults ()
386+ void SubnetModule::setStateDefaults ()
387387{
388388 auto state = get_state ();
389389
@@ -777,25 +777,52 @@ SubnetModuleConnector::SubnetModuleConnector(NetworkEditor* parent) :
777777{
778778 connect (parent, SIGNAL (connectionDeleted (const SCIRun::Dataflow::Networks::ConnectionId&)),
779779 this , SLOT (connectionDeletedFromParent ()));
780+
781+ connect (parent_->getNetworkEditorController ().get (), SIGNAL (moduleAdded (const std::string&, SCIRun::Dataflow::Networks::ModuleHandle, const SCIRun::Dataflow::Engine::ModuleCounter&)),
782+ this , SLOT (moduleAddedToSubnet (const std::string&, SCIRun::Dataflow::Networks::ModuleHandle)));
780783}
781784
782- void SubnetModuleConnector::setSubnet (NetworkEditor* subnet)
783- {
784- subnet_ = subnet;
785+ void SubnetModuleConnector::setSubnet (NetworkEditor* subnet)
786+ {
787+ subnet_ = subnet;
785788
786789 connect (subnet_->getNetworkEditorController ().get (), SIGNAL (moduleAdded (const std::string&, SCIRun::Dataflow::Networks::ModuleHandle, const SCIRun::Dataflow::Engine::ModuleCounter&)),
787790 this , SLOT (moduleAddedToSubnet (const std::string&, SCIRun::Dataflow::Networks::ModuleHandle)));
788791}
789792
793+ bool SubnetModuleConnector::signalFromParent (QObject* sender) const
794+ {
795+ return qobject_cast<NetworkEditorControllerGuiProxy*>(sender)->activeNetwork () == parent_;
796+ }
797+
798+ bool SubnetModuleConnector::signalFromSubnet (QObject* sender) const
799+ {
800+ return qobject_cast<NetworkEditorControllerGuiProxy*>(sender)->activeNetwork () == subnet_;
801+ }
802+
790803void SubnetModuleConnector::moduleAddedToSubnet (const std::string& s, ModuleHandle module )
791804{
792- qDebug () << __FUNCTION__;
793- qDebug () << " was:" << module_->underlyingModules_ .size ();
794- module_->underlyingModules_ .push_back (module );
795- qDebug () << " now:" << module_->underlyingModules_ .size () << " added" << s.c_str ();
805+ // qDebug() << __FUNCTION__ << sender() << signalFromSubnet(sender()) << signalFromParent(sender());
806+ if (signalFromSubnet (sender ()) && subnet_->containsModule (module ->get_id ().id_ ))
807+ {
808+ qDebug () << " was:" << module_->underlyingModules_ .size ();
809+ module_->underlyingModules_ .push_back (module );
810+ qDebug () << " now:" << module_->underlyingModules_ .size () << " added" << s.c_str ();
811+ }
812+ }
813+
814+ bool NetworkEditor::containsModule (const std::string& id) const
815+ {
816+ Q_FOREACH (QGraphicsItem* item, scene_->items ())
817+ {
818+ auto module = getModule (item);
819+ if (module && module ->getModuleId () == id)
820+ return true ;
821+ }
822+ return false ;
796823}
797824
798825void SubnetModuleConnector::connectionDeletedFromParent ()
799826{
800827 qDebug () << __FUNCTION__;
801- }
828+ }
0 commit comments