Updates the visible state of nodes based on whether or not they are
        isolated.

def updateIsolated( self, force = False ):
        """
        Updates the visible state of nodes based on whether or not they are
        isolated.
        """
        if ( not (self.isolationMode() or force) ):
            return
        
        # make sure all nodes are not being hidden because of isolation
        if ( not self.isolationMode() ):
            for node in self.nodes():
                node.setIsolateHidden(False)
            return
        
        # make sure all the nodes are visible or hidden based on the selection
        selected_nodes  = self.selectedNodes()
        isolated_nodes  = set(selected_nodes)
        connections     = self.connections()
        for connection in connections:
            in_node  = connection.inputNode()
            out_node = connection.outputNode()
            
            if ( in_node in selected_nodes or out_node in selected_nodes ):
                isolated_nodes.add(in_node)
                isolated_nodes.add(out_node)
        
        for node in self.nodes():
            node.setIsolateHidden(not node in isolated_nodes)