From b365ea6d41607e6ddde6bb1d2d183f39d0610c35 Mon Sep 17 00:00:00 2001 From: Utkarsh Ayachit Date: Mon, 2 May 2022 08:50:07 -0400 Subject: [PATCH] pqPipelineModel: fix eyeball state pqPipelineModel now checks if a representation exists first. This helps us avoid cases where state files with hidden representations don't get correct eyeball. Fixes #21381 --- Qt/Components/pqPipelineModel.cxx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Qt/Components/pqPipelineModel.cxx b/Qt/Components/pqPipelineModel.cxx index d780c01e3c..c4fb48e99e 100644 --- a/Qt/Components/pqPipelineModel.cxx +++ b/Qt/Components/pqPipelineModel.cxx @@ -372,12 +372,16 @@ private: return PipelineModelIconType::LAST; } + auto* producerProxy = port->getSourceProxy(); + const int portNumber = port->getPortNumber(); + auto* viewProxy = view ? view->getViewProxy() : nullptr; + // I'm not a huge fan of this hacky way we are dealing with catalyst. We'll // have to come back and cleanly address how the pqPipelineModel deals with // "visibility" in a more generic, session-centric way. if (pqLiveInsituManager::isInsituServer(port->getServer())) { - if (pqLiveInsituManager::isWriterParametersProxy(port->getSourceProxy())) + if (pqLiveInsituManager::isWriterParametersProxy(producerProxy)) { return PipelineModelIconType::LAST; } @@ -397,12 +401,19 @@ private: // will be created. return PipelineModelIconType::EYEBALL_GRAY; } - if (this->Controller->GetVisibility( - port->getSourceProxy(), port->getPortNumber(), view->getViewProxy())) + + if (this->Controller->GetVisibility(producerProxy, portNumber, viewProxy)) { return PipelineModelIconType::EYEBALL; } - return view->getViewProxy()->CanDisplayData(port->getSourceProxy(), port->getPortNumber()) + + // let's see if representation already exists for this port. + if (viewProxy->FindRepresentation(producerProxy, portNumber) != nullptr) + { + return PipelineModelIconType::EYEBALL_GRAY; + } + + return viewProxy->CanDisplayData(producerProxy, portNumber) ? PipelineModelIconType::EYEBALL_GRAY : PipelineModelIconType::LAST; } -- GitLab