diff options
| author | Kurt B. Kaiser <kbk@shore.net> | 2001-07-14 05:15:29 +0000 | 
|---|---|---|
| committer | Kurt B. Kaiser <kbk@shore.net> | 2001-07-14 05:15:29 +0000 | 
| commit | a4c9be88c6fef4c005e807778ba387c3aa8b44d4 (patch) | |
| tree | bc36bb7942fe283b1a70b633a080af2eed7b9d8e /Lib/idlelib/StackViewer.py | |
| parent | bb6b1e9b26805af53e8758836343cf4b23d7f753 (diff) | |
| download | cpython-git-a4c9be88c6fef4c005e807778ba387c3aa8b44d4.tar.gz | |
py-cvs-2001_07_13 (Rev 1.16) merge
"Refactored, with some future plans in mind. This now uses the new
gotofileline() method defined in FileList.py"  --GvR
Diffstat (limited to 'Lib/idlelib/StackViewer.py')
| -rw-r--r-- | Lib/idlelib/StackViewer.py | 34 | 
1 files changed, 23 insertions, 11 deletions
| diff --git a/Lib/idlelib/StackViewer.py b/Lib/idlelib/StackViewer.py index ab09db0163..d70658bcbb 100644 --- a/Lib/idlelib/StackViewer.py +++ b/Lib/idlelib/StackViewer.py @@ -1,24 +1,27 @@ +import os +import sys  import string -from Tkinter import *  import linecache  from TreeWidget import TreeNode, TreeItem, ScrolledCanvas  from ObjectBrowser import ObjectTreeItem, make_objecttreeitem  from OldStackViewer import StackViewer, NamespaceViewer -def StackBrowser(root, flist=None, stack=None): -    top = Toplevel(root) +def StackBrowser(root, flist=None, tb=None, top=None): +    if top is None: +        from Tkinter import Toplevel +        top = Toplevel(root)      sc = ScrolledCanvas(top, bg="white", highlightthickness=0)      sc.frame.pack(expand=1, fill="both") -    item = StackTreeItem(flist) +    item = StackTreeItem(flist, tb)      node = TreeNode(sc.canvas, None, item)      node.expand()  class StackTreeItem(TreeItem): -    def __init__(self, flist=None): +    def __init__(self, flist=None, tb=None):          self.flist = flist -        self.stack = get_stack() +        self.stack = get_stack(tb)          self.text = get_exception()      def GetText(self): @@ -71,8 +74,8 @@ class FrameTreeItem(TreeItem):          if self.flist:              frame, lineno = self.info              filename = frame.f_code.co_filename -            edit = self.flist.open(filename) -            edit.gotoline(lineno) +            if os.path.isfile(filename): +                self.flist.gotofileline(filename, lineno)  class VariablesTreeItem(ObjectTreeItem): @@ -129,7 +132,16 @@ def get_exception(type=None, value=None):          s = s + ": " + str(value)      return s -if __name__ == "__main__": +def _test(): +    try: +        import testcode +        reload(testcode) +    except: +        sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info() +    from Tkinter import Tk      root = Tk() -    root.withdraw() -    StackBrowser(root) +    StackBrowser(None, top=root) +    root.mainloop() + +if __name__ == "__main__": +    _test() | 
