[pypy-svn] r7380 - pypy/trunk/src/pypy/translator/tool/pygame
mgedmin at codespeak.net
mgedmin at codespeak.net
Thu Nov 18 15:42:36 CET 2004
Author: mgedmin
Date: Thu Nov 18 15:42:36 2004
New Revision: 7380
Modified:
pypy/trunk/src/pypy/translator/tool/pygame/drawgraph.py
pypy/trunk/src/pypy/translator/tool/pygame/graphdisplay.py
Log:
Added find next.
Modified: pypy/trunk/src/pypy/translator/tool/pygame/drawgraph.py
==============================================================================
--- pypy/trunk/src/pypy/translator/tool/pygame/drawgraph.py (original)
+++ pypy/trunk/src/pypy/translator/tool/pygame/drawgraph.py Thu Nov 18 15:42:36 2004
@@ -426,9 +426,15 @@
for cmd in self.draw_commands():
cmd()
- def search_for_node(self, searchstr):
+ def search_for_node(self, searchstr, start_at=None):
"""Find a node that contains a search string."""
- for node in self.graphlayout.nodes.itervalues():
+ iter = self.graphlayout.nodes.itervalues()
+ if start_at:
+ # Skip all nodes up to and including 'start_at'
+ for node in iter:
+ if node is start_at:
+ break
+ for node in iter:
if searchstr in node.label:
return node
return None
Modified: pypy/trunk/src/pypy/translator/tool/pygame/graphdisplay.py
==============================================================================
--- pypy/trunk/src/pypy/translator/tool/pygame/graphdisplay.py (original)
+++ pypy/trunk/src/pypy/translator/tool/pygame/graphdisplay.py Thu Nov 18 15:42:36 2004
@@ -82,6 +82,7 @@
'backspace' : 'layout_back',
'f': 'search',
'/': 'search',
+ 'n': 'find_next',
'left' : ('pan', (-1, 0)),
'right' : ('pan', (1, 0)),
'up' : ('pan', (0, -1)),
@@ -110,6 +111,7 @@
Meta Right Go forward in history
F or / Search for text
+ N Find next occurrence
H This help message
@@ -135,6 +137,8 @@
self.method_cache = {}
self.key_cache = {}
self.status_bar_height = 0
+ self.searchstr = None
+ self.searchpos = None
self.initialize_keys()
self.setlayout(layout)
@@ -255,13 +259,22 @@
searchstr = self.input('Find: ')
if not searchstr:
return
- node = self.viewer.search_for_node(searchstr)
+ self.searchstr = searchstr
+ self.searchpos = None
+ self.find_next()
+
+ def find_next(self):
+ if not self.searchstr:
+ return
+ node = self.viewer.search_for_node(self.searchstr,
+ start_at=self.searchpos)
if node:
+ self.searchpos = node
self.sethighlight(obj=node)
self.look_at_node(node, keep_highlight=True)
self.sethighlight(obj=node)
else:
- self.setstatusbar('Not found: %s' % searchstr)
+ self.setstatusbar('Not found: %s' % self.searchstr)
def setlayout(self, layout):
if self.viewer:
More information about the Pypy-commit
mailing list