| 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)
|
|
|