summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/IDE/ModuleBrowser.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Tools/IDE/ModuleBrowser.py')
-rw-r--r--Mac/Tools/IDE/ModuleBrowser.py177
1 files changed, 0 insertions, 177 deletions
diff --git a/Mac/Tools/IDE/ModuleBrowser.py b/Mac/Tools/IDE/ModuleBrowser.py
deleted file mode 100644
index 9fe1064..0000000
--- a/Mac/Tools/IDE/ModuleBrowser.py
+++ /dev/null
@@ -1,177 +0,0 @@
-import W
-import sys
-from Carbon import Qd
-
-__version__ = "0.2"
-__author__ = "jvr"
-
-class _modulebrowser:
-
- def __init__(self):
- self.editmodules = []
- self.modules = []
- self.window = W.Window((210, 1000), "Module Browser", minsize = (210, 160), maxsize = (340, 20000))
-
- self.window.openbutton = W.Button((10, 8, 90, 16), "Open", self.openbuttonhit)
- self.window.browsebutton = W.Button((110, 8, 90, 16), "Browse\xc9", self.browsebuttonhit)
- self.window.reloadbutton = W.Button((10, 32, 90, 16), "Reload", self.reloadbuttonhit)
- self.window.openotherbutton = W.Button((110, 32, 90, 16), "Open other\xc9", self.openother)
-
- self.window.openbutton.enable(0)
- self.window.reloadbutton.enable(0)
- self.window.browsebutton.enable(0)
- self.window.setdefaultbutton(self.window.browsebutton)
-
- self.window.bind("cmdr", self.window.reloadbutton.push)
- self.window.bind("cmdb", self.window.browsebutton.push)
-
- self.window.bind("<activate>", self.activate)
- self.window.bind("<close>", self.close)
-
- self.window.list = W.List((-1, 56, 1, -14), [], self.listhit)
-
- self.window.open()
- self.checkbuttons()
-
- def close(self):
- global _browser
- _browser = None
-
- def activate(self, onoff):
- if onoff:
- self.makelist()
-
- def listhit(self, isdbl):
- self.checkbuttons()
- if isdbl:
- if self.window._defaultbutton:
- self.window._defaultbutton.push()
-
- def checkbuttons(self):
- sel = self.window.list.getselection()
- if sel:
- for i in sel:
- if self.editmodules[i]:
- self.window.openbutton.enable(1)
- self.window.reloadbutton.enable(1)
- self.window.setdefaultbutton(self.window.openbutton)
- break
- else:
- self.window.openbutton.enable(0)
- self.window.reloadbutton.enable(0)
- self.window.setdefaultbutton(self.window.browsebutton)
- self.window.browsebutton.enable(1)
- else:
- #self.window.setdefaultbutton(self.window.browsebutton)
- self.window.openbutton.enable(0)
- self.window.reloadbutton.enable(0)
- self.window.browsebutton.enable(0)
-
- def openbuttonhit(self):
- import imp
- sel = self.window.list.getselection()
- W.SetCursor("watch")
- for i in sel:
- modname = self.window.list[i]
- try:
- self.openscript(sys.modules[modname].__file__, modname)
- except IOError:
- try:
- file, path, description = imp.find_module(modname)
- except ImportError:
- W.SetCursor("arrow")
- W.Message("Can't find file for module '%s'."
- % modname)
- else:
- self.openscript(path, modname)
-
- def openscript(self, path, modname):
- import os
- if path[-3:] == '.py':
- W.getapplication().openscript(path, modname=modname)
- elif path[-4:] in ['.pyc', '.pyo']:
- W.getapplication().openscript(path[:-1], modname=modname)
- else:
- W.Message("Can't edit '%s'; it might be a shared library or a .pyc file."
- % modname)
-
- def openother(self):
- import imp
- import EasyDialogs
-
- modname = EasyDialogs.AskString("Open module:")
- if modname:
- try:
- file, path, description = imp.find_module(modname)
- except ImportError:
- if modname in sys.builtin_module_names:
- alerttext = "'%s' is a builtin module, which you can't edit." % modname
- else:
- alerttext = "No module named '%s'." % modname
- raise W.AlertError, alerttext
- self.openscript(path, modname)
-
- def reloadbuttonhit(self):
- sel = self.window.list.getselection()
- W.SetCursor("watch")
- for i in sel:
- mname = self.window.list[i]
- m = sys.modules[mname]
- # Set the __name__ attribute of the module to its real name.
- # reload() complains if it's __main__, which is true
- # when it recently has been run as a script with "Run as __main__"
- # enabled.
- m.__name__ = mname
- reload(m)
-
- def browsebuttonhit(self):
- sel = self.window.list.getselection()
- if not sel:
- return
- import PyBrowser
- for i in sel:
- PyBrowser.Browser(sys.modules[self.window.list[i]])
-
- def makelist(self):
- editmodules, modules = getmoduleslist()
- if modules == self.modules:
- return
- self.editmodules, self.modules = editmodules, modules
- self.window.list.setdrawingmode(0)
- sel = self.window.list.getselectedobjects()
- self.window.list.set(self.modules)
- self.window.list.setselectedobjects(sel)
- self.window.list.setdrawingmode(1)
-
-
-def getmoduleslist():
- import PyBrowser # for caselesssort function
- moduleitems = sys.modules.items()
- moduleitems = filter(lambda (name, module): module is not None, moduleitems)
- modules = map(lambda (name, module): name, moduleitems)
- modules = PyBrowser.caselesssort(modules)
- editmodules = []
- sysmodules = sys.modules
- modulesappend = editmodules.append
- for m in modules:
- module = sysmodules[m]
- try:
- if sysmodules[m].__file__[-3:] == '.py' or \
- sysmodules[m].__file__[-4:] in ['.pyc', '.pyo']:
- modulesappend(1)
- else:
- modulesappend(0)
- except AttributeError:
- modulesappend(0)
- return editmodules, modules
-
-
-
-_browser = None
-
-def ModuleBrowser():
- global _browser
- if _browser is not None:
- _browser.window.select()
- else:
- _browser = _modulebrowser()