From 977674398e17ee07362fe986e0573cf1be69554e Mon Sep 17 00:00:00 2001 From: jblum Date: Tue, 5 May 2009 18:35:39 +0000 Subject: speed up for flow graphs with many blocks: separated highlighting update logic so update does not have to be called on selection. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10958 221aa14e-8319-0410-a670-987f0aec2ac5 --- grc/src/platforms/gui/FlowGraph.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'grc/src/platforms/gui') diff --git a/grc/src/platforms/gui/FlowGraph.py b/grc/src/platforms/gui/FlowGraph.py index 37157ac7c..11942eb2e 100644 --- a/grc/src/platforms/gui/FlowGraph.py +++ b/grc/src/platforms/gui/FlowGraph.py @@ -275,21 +275,27 @@ class FlowGraph(Element): for selected_element in self.get_selected_connections() + self.get_selected_blocks(): selected_element.draw(gc, window) + def update_highlighting(self): + """ + Update highlighting so only the selected are highlighted. + """ + selected_elements = self.get_selected_elements() + for element in self.get_elements(): + element.set_highlighted(element in selected_elements) + def update(self): """ Removed deleted elements from the selected elements list. - Update highlighting so only the selected is highlighted. Call update on all elements. """ selected_elements = self.get_selected_elements() + elements = self.get_elements() #remove deleted elements for selected in selected_elements: - if selected not in self.get_elements(): - selected_elements.remove(selected) - #set highlight and update all - for element in self.get_elements(): - element.set_highlighted(element in selected_elements) - element.update() + if selected in elements: continue + selected_elements.remove(selected) + #update all + for element in elements: element.update() ########################################################################## ## Get Selected -- cgit