Changeset 3609:97392388d0f3 in orange


Ignore:
Timestamp:
04/29/07 12:13:29 (7 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
40c861573bc8ae2655445dac54846697c226ef56
Message:

Select connected nodes now works faster

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Prototypes/OWGraphDrawerCanvas.py

    r3606 r3609  
    106106             
    107107    def selectConnectedNodes(self, distance): 
    108         i = 0 
    109         newSelections = -1 
    110         while i < distance and newSelections <> 0: 
    111             newSelections = 0 
    112             selectedVertexes = [] 
    113          
    114             for v in self.selection: 
    115                 selectedVertexes.append(v) 
    116              
    117             for v in selectedVertexes: 
    118                 for e in range(self.nEdges): 
    119                     (key,i,j) = self.edges[e] 
    120                      
    121                     if i == v: 
    122                         if self.addSelection(j): 
    123                             newSelections += 1 
    124                     elif j == v: 
    125                         if self.addSelection(i): 
    126                             newSelections += 1 
    127              
    128             i += 1 
     108        sel = set(self.selection) 
     109         
     110        for v in self.selection: 
     111            neighbours = set(self.visualizer.graph.getNeighbours(v)) 
     112            self.selectNeighbours(sel, neighbours - sel); 
     113             
     114        self.removeSelection() 
     115         
     116        for ndx in sel: 
     117            self.selectionStyles[ndx] = self.curve(self.vertices[ndx]).symbol().brush().color().name() 
     118            newSymbol = QwtSymbol(QwtSymbol.Ellipse, QBrush(QColor(self.selectionStyles[ndx])), QPen(Qt.yellow, 3), QSize(10, 10)) 
     119            self.setCurveSymbol(self.vertices[ndx], newSymbol) 
     120            self.selection.append(ndx); 
     121         
     122        self.replot() 
     123     
     124    def selectNeighbours(self, sel, nodes): 
     125        #print "list: " + str(sel) 
     126        #print "nodes: " + str(nodes) 
     127        sel.update(nodes) 
     128        for i in nodes: 
     129            neighbours = set(self.visualizer.graph.getNeighbours(i)) 
     130            #print "neighbours: " + str(neighbours) 
     131            self.selectNeighbours(sel, neighbours - sel) 
    129132         
    130133    def getSelectedExamples(self): 
Note: See TracChangeset for help on using the changeset viewer.