mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Allow opening of alternate databases.
This commit is contained in:
parent
0dacac48b9
commit
4ab8437e7f
1 changed files with 38 additions and 7 deletions
|
@ -41,6 +41,7 @@ import FrameWork
|
||||||
import sys
|
import sys
|
||||||
import string
|
import string
|
||||||
import os
|
import os
|
||||||
|
import urllib
|
||||||
|
|
||||||
import pimp
|
import pimp
|
||||||
|
|
||||||
|
@ -78,14 +79,14 @@ class PackageManagerMain(Wapplication.Application):
|
||||||
|
|
||||||
def makeusermenus(self):
|
def makeusermenus(self):
|
||||||
m = Wapplication.Menu(self.menubar, "File")
|
m = Wapplication.Menu(self.menubar, "File")
|
||||||
## newitem = FrameWork.MenuItem(m, "Open Standard Database", "N", 'openstandard')
|
newitem = FrameWork.MenuItem(m, "Open Standard Database", "N", 'openstandard')
|
||||||
## openitem = FrameWork.MenuItem(m, "Open"+ELIPSES, "O", 'open')
|
openitem = FrameWork.MenuItem(m, "Open"+ELIPSES, "O", 'open')
|
||||||
## openbynameitem = FrameWork.MenuItem(m, "Open URL"+ELIPSES, "D", 'openbyname')
|
openURLitem = FrameWork.MenuItem(m, "Open URL"+ELIPSES, "D", 'openURL')
|
||||||
FrameWork.Separator(m)
|
FrameWork.Separator(m)
|
||||||
closeitem = FrameWork.MenuItem(m, "Close", "W", 'close')
|
closeitem = FrameWork.MenuItem(m, "Close", "W", 'close')
|
||||||
## saveitem = FrameWork.MenuItem(m, "Save", "S", 'save')
|
## saveitem = FrameWork.MenuItem(m, "Save", "S", 'save')
|
||||||
## saveasitem = FrameWork.MenuItem(m, "Save as"+ELIPSES, None, 'save_as')
|
## saveasitem = FrameWork.MenuItem(m, "Save as"+ELIPSES, None, 'save_as')
|
||||||
FrameWork.Separator(m)
|
## FrameWork.Separator(m)
|
||||||
|
|
||||||
m = Wapplication.Menu(self.menubar, "Edit")
|
m = Wapplication.Menu(self.menubar, "Edit")
|
||||||
undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo")
|
undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo")
|
||||||
|
@ -138,12 +139,26 @@ class PackageManagerMain(Wapplication.Application):
|
||||||
def do_about(self, id, item, window, event):
|
def do_about(self, id, item, window, event):
|
||||||
EasyDialogs.Message("Package Install Manager for Python")
|
EasyDialogs.Message("Package Install Manager for Python")
|
||||||
|
|
||||||
|
def domenu_openstandard(self, *args):
|
||||||
|
self.opendoc(None)
|
||||||
|
|
||||||
def domenu_open(self, *args):
|
def domenu_open(self, *args):
|
||||||
filename = EasyDialogs.AskFileForOpen(typeList=("TEXT",))
|
filename = EasyDialogs.AskFileForOpen(typeList=("TEXT",))
|
||||||
if filename:
|
if filename:
|
||||||
filename = urllib.pathname2url(filename)
|
filename = urllib.pathname2url(filename)
|
||||||
self.opendoc(filename)
|
self.opendoc(filename)
|
||||||
|
|
||||||
|
def domenu_openURL(self, *args):
|
||||||
|
ok = EasyDialogs.AskYesNoCancel(
|
||||||
|
"Warning: by opening a non-standard database "
|
||||||
|
"you are trusting the maintainer of it "
|
||||||
|
"to run arbitrary code on your machine.",
|
||||||
|
yes="OK", no="")
|
||||||
|
if ok <= 0: return
|
||||||
|
url = EasyDialogs.AskString("URL of database to open:", ok="Open")
|
||||||
|
if url:
|
||||||
|
self.opendoc(url)
|
||||||
|
|
||||||
def domenu_openbyname(self, *args):
|
def domenu_openbyname(self, *args):
|
||||||
url = EasyDialogs.AskString("Open URL:", ok="Open")
|
url = EasyDialogs.AskString("Open URL:", ok="Open")
|
||||||
if url:
|
if url:
|
||||||
|
@ -208,7 +223,18 @@ class PimpInterface:
|
||||||
self.pimpinstaller = pimp.PimpInstaller(self.pimpdb)
|
self.pimpinstaller = pimp.PimpInstaller(self.pimpdb)
|
||||||
if not url:
|
if not url:
|
||||||
url = self.pimpprefs.pimpDatabase
|
url = self.pimpprefs.pimpDatabase
|
||||||
|
try:
|
||||||
self.pimpdb.appendURL(url)
|
self.pimpdb.appendURL(url)
|
||||||
|
except IOError, arg:
|
||||||
|
return "Cannot open %s: %s" % (url, arg)
|
||||||
|
return None
|
||||||
|
|
||||||
|
def closepimp(self):
|
||||||
|
self.pimpdb.close()
|
||||||
|
self.pimpprefs = None
|
||||||
|
self.pimpdb = None
|
||||||
|
self.pimpinstaller = None
|
||||||
|
self.packages = []
|
||||||
|
|
||||||
def getbrowserdata(self):
|
def getbrowserdata(self):
|
||||||
self.packages = self.pimpdb.list()
|
self.packages = self.pimpdb.list()
|
||||||
|
@ -236,10 +262,15 @@ class PackageBrowser(PimpInterface):
|
||||||
|
|
||||||
def __init__(self, url = None):
|
def __init__(self, url = None):
|
||||||
self.ic = None
|
self.ic = None
|
||||||
self.setuppimp(url)
|
msg = self.setuppimp(url)
|
||||||
|
if msg:
|
||||||
|
EasyDialogs.Message(msg)
|
||||||
self.setupwidgets()
|
self.setupwidgets()
|
||||||
self.updatestatus()
|
self.updatestatus()
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
self.closepimp()
|
||||||
|
|
||||||
def setupwidgets(self):
|
def setupwidgets(self):
|
||||||
self.w = W.Window((580, 400), "Python Install Manager", minsize = (300, 200), tabbable = 0)
|
self.w = W.Window((580, 400), "Python Install Manager", minsize = (300, 200), tabbable = 0)
|
||||||
## self.w.divline = W.HorizontalLine((0, 20, 0, 0))
|
## self.w.divline = W.HorizontalLine((0, 20, 0, 0))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue