| Index: third_party/twisted_8_1/twisted/manhole/ui/gtkmanhole.py
 | 
| diff --git a/third_party/twisted_8_1/twisted/manhole/ui/gtkmanhole.py b/third_party/twisted_8_1/twisted/manhole/ui/gtkmanhole.py
 | 
| deleted file mode 100644
 | 
| index 6772001c2383217a1d11222e03e3d2733ad449ea..0000000000000000000000000000000000000000
 | 
| --- a/third_party/twisted_8_1/twisted/manhole/ui/gtkmanhole.py
 | 
| +++ /dev/null
 | 
| @@ -1,184 +0,0 @@
 | 
| -# -*- Python -*-
 | 
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
 | 
| -# See LICENSE for details.
 | 
| -
 | 
| -
 | 
| -# TODO:
 | 
| -#  * send script
 | 
| -#  * replace method
 | 
| -#  * save readline history
 | 
| -#  * save-history-as-python
 | 
| -#  * save transcript
 | 
| -#  * identifier completion
 | 
| -
 | 
| -import code, string, sys, traceback, types
 | 
| -import gtk
 | 
| -
 | 
| -from twisted.python import rebuild, util
 | 
| -from twisted.spread.ui import gtkutil
 | 
| -from twisted.spread import pb
 | 
| -from twisted.manhole import explorer
 | 
| -
 | 
| -True = gtk.TRUE
 | 
| -False = gtk.FALSE
 | 
| -
 | 
| -try:
 | 
| -    import spelunk_gnome
 | 
| -except ImportError:
 | 
| -    _GNOME_POWER = False
 | 
| -else:
 | 
| -    _GNOME_POWER = True
 | 
| -
 | 
| -
 | 
| -## def findBeginningOfLineWithPoint(entry):
 | 
| -##     pos = entry.get_point()
 | 
| -##     while pos:
 | 
| -##         pos = pos - 1
 | 
| -##         c = entry.get_chars(pos, pos+1)
 | 
| -##         if c == '\n':
 | 
| -##             return pos+1
 | 
| -##     return 0
 | 
| -
 | 
| -import pywidgets
 | 
| -
 | 
| -class Interaction(pywidgets.Interaction, pb.Referenceable):
 | 
| -    loginWindow = None
 | 
| -
 | 
| -    capabilities = {
 | 
| -        "Explorer": 'Set',
 | 
| -        }
 | 
| -
 | 
| -    def __init__(self):
 | 
| -        pywidgets.Interaction.__init__(self)
 | 
| -        self.signal_connect('destroy', gtk.mainquit, None)
 | 
| -
 | 
| -        if _GNOME_POWER:
 | 
| -            self.display = BrowserDisplay()
 | 
| -            dWindow = gtk.GtkWindow(title="Spelunking")
 | 
| -            dWindow.add(self.display)
 | 
| -            dWindow.show_all()
 | 
| -            self.display.makeDefaultCanvas()
 | 
| -        else:
 | 
| -            self.display = BrowserDisplay(self)
 | 
| -
 | 
| -        # The referencable attached to the Perspective
 | 
| -        self.client = self
 | 
| -
 | 
| -    def remote_console(self, message):
 | 
| -        self.output.console(message)
 | 
| -
 | 
| -    def remote_receiveExplorer(self, xplorer):
 | 
| -        if _GNOME_POWER:
 | 
| -            self.display.receiveExplorer(xplorer)
 | 
| -        else:
 | 
| -            XXX # text display?
 | 
| -
 | 
| -    def remote_listCapabilities(self):
 | 
| -        return self.capabilities
 | 
| -
 | 
| -    def connected(self, perspective):
 | 
| -        self.loginWindow.hide()
 | 
| -        self.name = self.loginWindow.username.get_text()
 | 
| -        self.hostname = self.loginWindow.hostname.get_text()
 | 
| -        perspective.broker.notifyOnDisconnect(self.connectionLost)
 | 
| -        self.perspective = perspective
 | 
| -        self.show_all()
 | 
| -        self.set_title("Manhole: %s@%s" % (self.name, self.hostname))
 | 
| -
 | 
| -    def connectionLost(self, reason=None):
 | 
| -        if not reason:
 | 
| -            reason = "Connection Lost"
 | 
| -        self.loginWindow.loginReport(reason)
 | 
| -        self.hide()
 | 
| -        self.loginWindow.show()
 | 
| -
 | 
| -    def codeInput(self, text):
 | 
| -        methodName = 'do'
 | 
| -        if text[0] == '/':
 | 
| -            split = string.split(text[1:],' ',1)
 | 
| -            statement = split[0]
 | 
| -            if len(split) == 2:
 | 
| -                remainder = split[1]
 | 
| -            if statement in ('browse', 'explore'):
 | 
| -                methodName = 'explore'
 | 
| -                text = remainder
 | 
| -            elif statement == 'watch':
 | 
| -                methodName = 'watch'
 | 
| -                text = remainder
 | 
| -            elif statement == 'self_rebuild':
 | 
| -                rebuild.rebuild(explorer)
 | 
| -                if _GNOME_POWER:
 | 
| -                    rebuild.rebuild(spelunk_gnome)
 | 
| -                rebuild.rebuild(sys.modules[__name__])
 | 
| -                return
 | 
| -        try:
 | 
| -            self.perspective.callRemote(methodName, text)
 | 
| -        except pb.ProtocolError:
 | 
| -            # ASSUMPTION: pb.ProtocolError means we lost our connection.
 | 
| -            (eType, eVal, tb) = sys.exc_info()
 | 
| -            del tb
 | 
| -            s = string.join(traceback.format_exception_only(eType, eVal),
 | 
| -                            '')
 | 
| -            self.connectionLost(s)
 | 
| -        except:
 | 
| -            traceback.print_exc()
 | 
| -            gtk.mainquit()
 | 
| -
 | 
| -
 | 
| -class LineOrientedBrowserDisplay:
 | 
| -    def __init__(self, toplevel=None):
 | 
| -        if toplevel:
 | 
| -            self.toplevel = toplevel
 | 
| -
 | 
| -    def receiveBrowserObject(self, obj):
 | 
| -        """Display a browser ObjectLink.
 | 
| -        """
 | 
| -        # This is a stop-gap implementation.  Ideally, everything
 | 
| -        # would be nicely formatted with pretty colours and you could
 | 
| -        # select referenced objects to browse them with
 | 
| -        # browse(selectedLink.identifier)
 | 
| -
 | 
| -        if obj.type in map(explorer.typeString, [types.FunctionType,
 | 
| -                                                 types.MethodType]):
 | 
| -            arglist = []
 | 
| -            for arg in obj.value['signature']:
 | 
| -                if arg.has_key('default'):
 | 
| -                    a = "%s=%s" % (arg['name'], arg['default'])
 | 
| -                elif arg.has_key('list'):
 | 
| -                    a = "*%s" % (arg['name'],)
 | 
| -                elif arg.has_key('keywords'):
 | 
| -                    a = "**%s" % (arg['name'],)
 | 
| -                else:
 | 
| -                    a = arg['name']
 | 
| -                arglist.append(a)
 | 
| -
 | 
| -            things = ''
 | 
| -            if obj.value.has_key('class'):
 | 
| -                things = "Class: %s\n" % (obj.value['class'],)
 | 
| -            if obj.value.has_key('self'):
 | 
| -                things = things + "Self: %s\n" % (obj.value['self'],)
 | 
| -
 | 
| -            s = "%(name)s(%(arglist)s)\n%(things)s\n%(doc)s\n" % {
 | 
| -                'name': obj.value['name'],
 | 
| -                'doc': obj.value['doc'],
 | 
| -                'things': things,
 | 
| -                'arglist': string.join(arglist,", "),
 | 
| -                }
 | 
| -        else:
 | 
| -            s = str(obj) + '\n'
 | 
| -
 | 
| -        self.toplevel.output.console([('stdout',s)])
 | 
| -
 | 
| -
 | 
| -if _GNOME_POWER:
 | 
| -    BrowserDisplay = spelunk_gnome.SpelunkDisplay
 | 
| -else:
 | 
| -    BrowserDisplay = LineOrientedBrowserDisplay
 | 
| -
 | 
| -class Signature(pb.RemoteCopy, explorer.Signature):
 | 
| -    def __init__(self):
 | 
| -        pass
 | 
| -
 | 
| -    __str__ = explorer.Signature.__str__
 | 
| -
 | 
| -pb.setCopierForClass('twisted.manhole.explorer.Signature', Signature)
 | 
| 
 |