Index: third_party/twisted_8_1/twisted/manhole/gladereactor.py |
diff --git a/third_party/twisted_8_1/twisted/manhole/gladereactor.py b/third_party/twisted_8_1/twisted/manhole/gladereactor.py |
deleted file mode 100644 |
index b9250d08dff46efd09f677b219b0474b9f2d3291..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/manhole/gladereactor.py |
+++ /dev/null |
@@ -1,219 +0,0 @@ |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
- |
-""" |
-A modified gtk2 reactor with a Glade dialog in-process that allows you to stop, |
-suspend, resume and inspect transports interactively. |
-""" |
- |
-__all__ = ['install'] |
- |
-# Twisted Imports |
-from twisted.python import log, threadable, runtime, failure, util, reflect |
-from twisted.internet.gtk2reactor import Gtk2Reactor as sup |
- |
-import gtk |
-import gobject |
-import gtk.glade |
- |
-COLUMN_DESCRIPTION = 0 |
-COLUMN_TRANSPORT = 1 |
-COLUMN_READING = 2 |
-COLUMN_WRITING = 3 |
- |
- |
-class GladeReactor(sup): |
- """GTK+-2 event loop reactor with GUI. |
- """ |
- |
- def listenTCP(self, port, factory, backlog=50, interface=''): |
- from _inspectro import LoggingFactory |
- factory = LoggingFactory(factory) |
- return sup.listenTCP(self, port, factory, backlog, interface) |
- |
- def connectTCP(self, host, port, factory, timeout=30, bindAddress=None): |
- from _inspectro import LoggingFactory |
- factory = LoggingFactory(factory) |
- return sup.connectTCP(self, host, port, factory, timeout, bindAddress) |
- |
- def listenSSL(self, port, factory, contextFactory, backlog=50, interface=''): |
- from _inspectro import LoggingFactory |
- factory = LoggingFactory(factory) |
- return sup.listenSSL(self, port, factory, contextFactory, backlog, interface) |
- |
- def connectSSL(self, host, port, factory, contextFactory, timeout=30, bindAddress=None): |
- from _inspectro import LoggingFactory |
- factory = LoggingFactory(factory) |
- return sup.connectSSL(self, host, port, factory, contextFactory, timeout, bindAddress) |
- |
- def connectUNIX(self, address, factory, timeout=30): |
- from _inspectro import LoggingFactory |
- factory = LoggingFactory(factory) |
- return sup.connectUNIX(self, address, factory, timeout) |
- |
- def listenUNIX(self, address, factory, backlog=50, mode=0666): |
- from _inspectro import LoggingFactory |
- factory = LoggingFactory(factory) |
- return sup.listenUNIX(self, address, factory, backlog, mode) |
- |
- def on_disconnect_clicked(self, w): |
- store, iter = self.servers.get_selection().get_selected() |
- store[iter][COLUMN_TRANSPORT].loseConnection() |
- |
- def on_viewlog_clicked(self, w): |
- store, iter = self.servers.get_selection().get_selected() |
- data = store[iter][1] |
- from _inspectro import LogViewer |
- if hasattr(data, "protocol") and not data.protocol.logViewer: |
- LogViewer(data.protocol) |
- |
- def on_inspect_clicked(self, w): |
- store, iter = self.servers.get_selection().get_selected() |
- data = store[iter] |
- from _inspectro import Inspectro |
- Inspectro(data[1]) |
- |
- def on_suspend_clicked(self, w): |
- store, iter = self.servers.get_selection().get_selected() |
- data = store[iter] |
- sup.removeReader(self, data[1]) |
- sup.removeWriter(self, data[1]) |
- if data[COLUMN_DESCRIPTION].endswith('(suspended)'): |
- if data[COLUMN_READING]: |
- sup.addReader(self, data[COLUMN_TRANSPORT]) |
- if data[COLUMN_WRITING]: |
- sup.addWriter(self, data[COLUMN_TRANSPORT]) |
- data[COLUMN_DESCRIPTION] = str(data[COLUMN_TRANSPORT]) |
- self.toggle_suspend(1) |
- else: |
- data[0] += ' (suspended)' |
- self.toggle_suspend(0) |
- |
- def toggle_suspend(self, suspending=0): |
- stock, nonstock = [('gtk-redo', 'Resume'), |
- ('gtk-undo', 'Suspend')][suspending] |
- b = self.xml.get_widget("suspend") |
- b.set_use_stock(1) |
- b.set_label(stock) |
- b.get_child().get_child().get_children()[1].set_label(nonstock) |
- |
- def servers_selection_changed(self, w): |
- store, iter = w.get_selected() |
- if iter is None: |
- self.xml.get_widget("suspend").set_sensitive(0) |
- self.xml.get_widget('disconnect').set_sensitive(0) |
- else: |
- data = store[iter] |
- self.toggle_suspend(not |
- data[COLUMN_DESCRIPTION].endswith('(suspended)')) |
- self.xml.get_widget("suspend").set_sensitive(1) |
- self.xml.get_widget('disconnect').set_sensitive(1) |
- |
- def on_quit_clicked(self, w): |
- self.stop() |
- |
- def __init__(self): |
- self.xml = gtk.glade.XML(util.sibpath(__file__,"gladereactor.glade")) |
- d = {} |
- for m in reflect.prefixedMethods(self, "on_"): |
- d[m.im_func.__name__] = m |
- self.xml.signal_autoconnect(d) |
- self.xml.get_widget('window1').connect('destroy', |
- lambda w: self.stop()) |
- self.servers = self.xml.get_widget("servertree") |
- sel = self.servers.get_selection() |
- sel.set_mode(gtk.SELECTION_SINGLE) |
- sel.connect("changed", |
- self.servers_selection_changed) |
- ## argh coredump: self.servers_selection_changed(sel) |
- self.xml.get_widget('suspend').set_sensitive(0) |
- self.xml.get_widget('disconnect').set_sensitive(0) |
- # setup model, connect it to my treeview |
- self.model = gtk.ListStore(str, object, gobject.TYPE_BOOLEAN, |
- gobject.TYPE_BOOLEAN) |
- self.servers.set_model(self.model) |
- self.servers.set_reorderable(1) |
- self.servers.set_headers_clickable(1) |
- # self.servers.set_headers_draggable(1) |
- # add a column |
- for col in [ |
- gtk.TreeViewColumn('Server', |
- gtk.CellRendererText(), |
- text=0), |
- gtk.TreeViewColumn('Reading', |
- gtk.CellRendererToggle(), |
- active=2), |
- gtk.TreeViewColumn('Writing', |
- gtk.CellRendererToggle(), |
- active=3)]: |
- |
- self.servers.append_column(col) |
- col.set_resizable(1) |
- sup.__init__(self) |
- |
- def addReader(self, reader): |
- sup.addReader(self, reader) |
-## gtk docs suggest this - but it's stupid |
-## self.model.set(self.model.append(), |
-## 0, str(reader), |
-## 1, reader) |
- self._maybeAddServer(reader, read=1) |
- |
- def _goAway(self,reader): |
- for p in range(len(self.model)): |
- if self.model[p][1] == reader: |
- self.model.remove(self.model.get_iter_from_string(str(p))) |
- return |
- |
- |
- def _maybeAddServer(self, reader, read=0, write=0): |
- p = 0 |
- for x in self.model: |
- if x[1] == reader: |
- if reader == 0: |
- reader += 1 |
- x[2] += read |
- x[3] += write |
- x[2] = max(x[2],0) |
- x[3] = max(x[3],0) |
- |
- if not (x[2] or x[3]): |
- x[0] = x[0] + '(disconnected)' |
- self.callLater(5, self._goAway, reader) |
- return |
- p += 1 |
- else: |
- read = max(read,0) |
- write = max(write, 0) |
- if read or write: |
- self.model.append((reader,reader,read,write)) |
- |
- def addWriter(self, writer): |
- sup.addWriter(self, writer) |
- self._maybeAddServer(writer, write=1) |
- |
- def removeReader(self, reader): |
- sup.removeReader(self, reader) |
- self._maybeAddServer(reader, read=-1) |
- |
- def removeWriter(self, writer): |
- sup.removeWriter(self, writer) |
- self._maybeAddServer(writer, write=-1) |
- |
- def crash(self): |
- gtk.main_quit() |
- |
- def run(self, installSignalHandlers=1): |
- self.startRunning(installSignalHandlers=installSignalHandlers) |
- self.simulate() |
- gtk.main() |
- |
- |
-def install(): |
- """Configure the twisted mainloop to be run inside the gtk mainloop. |
- """ |
- reactor = GladeReactor() |
- from twisted.internet.main import installReactor |
- installReactor(reactor) |
- return reactor |