Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fe99927

Browse files
committed
- Allow easy opening of experimental database, if pimp >= 0.4
- Allow easy access to the PackMan homepage, for even more databases.
1 parent 192bd96 commit fe99927

1 file changed

Lines changed: 29 additions & 9 deletions

File tree

Mac/Tools/IDE/PackageManager.py

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ def _init():
4545

4646
import pimp
4747

48+
PACKMAN_HOMEPAGE="http://www.python.org/packman"
49+
4850
ELIPSES = '...'
4951

5052
USER_INSTALL_DIR = os.path.join(os.environ.get('HOME', ''),
@@ -60,6 +62,7 @@ def __init__(self):
6062
Wapplication.Application.__init__(self, 'Pimp')
6163
from Carbon import AE
6264
from Carbon import AppleEvents
65+
self.defaulturl = ""
6366

6467
AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEOpenApplication,
6568
self.ignoreevent)
@@ -80,15 +83,19 @@ def __init__(self):
8083
PyConsole.installoutput()
8184
if debug_stderr:
8285
sys.stderr = debug_stderr
83-
self.opendoc(None)
86+
self.domenu_openstandard()
8487
self.mainloop()
8588

8689
def makeusermenus(self):
8790
m = Wapplication.Menu(self.menubar, "File")
8891
newitem = FrameWork.MenuItem(m, "Open Standard Database", "N", 'openstandard')
92+
newexpitem = FrameWork.MenuItem(m, "Open Experimental Database", None, 'openexperimental')
93+
newexpitem.enable(pimp.PIMP_VERSION >= "0.4")
8994
openitem = FrameWork.MenuItem(m, "Open"+ELIPSES, "O", 'open')
9095
openURLitem = FrameWork.MenuItem(m, "Open URL"+ELIPSES, "D", 'openURL')
9196
FrameWork.Separator(m)
97+
moreinfoitem = FrameWork.MenuItem(m, "More Databases", None, 'opendatabasepage')
98+
FrameWork.Separator(m)
9299
closeitem = FrameWork.MenuItem(m, "Close", "W", 'close')
93100
## saveitem = FrameWork.MenuItem(m, "Save", "S", 'save')
94101
## saveasitem = FrameWork.MenuItem(m, "Save as"+ELIPSES, None, 'save_as')
@@ -147,16 +154,28 @@ def opendocsevent(self, theAppleEvent, theReply):
147154
self.opendoc(path)
148155

149156
def opendoc(self, url):
157+
if url:
158+
self.defaulturl = url
150159
PackageBrowser(url)
151160

152161
def getabouttext(self):
153162
return "About Package Manager"+ELIPSES
154163

155164
def do_about(self, id, item, window, event):
156-
EasyDialogs.Message("Package Install Manager for Python")
165+
EasyDialogs.Message("Package Install Manager for Python\nPackMan engine (pimp) version: %s" %
166+
pimp.PIMP_VERSION)
157167

158168
def domenu_openstandard(self, *args):
159-
self.opendoc(None)
169+
if pimp.PIMP_VERSION >= "0.4":
170+
url = pimp.getDefaultDatabase()
171+
else:
172+
# 0.3 compatibility
173+
url = None
174+
self.opendoc(url)
175+
176+
def domenu_openexperimental(self, *args):
177+
database = pimp.getDefaultDatabase(experimental=True)
178+
self.opendoc(database)
160179

161180
def domenu_open(self, *args):
162181
filename = EasyDialogs.AskFileForOpen(typeList=("TEXT",))
@@ -171,15 +190,16 @@ def domenu_openURL(self, *args):
171190
"to run arbitrary code on your machine.",
172191
yes="OK", no="")
173192
if ok <= 0: return
174-
url = EasyDialogs.AskString("URL of database to open:", ok="Open")
193+
url = EasyDialogs.AskString("URL of database to open:",
194+
default=self.defaulturl, ok="Open")
175195
if url:
176196
self.opendoc(url)
177197

178-
def domenu_openbyname(self, *args):
179-
url = EasyDialogs.AskString("Open URL:", ok="Open")
180-
if url:
181-
self.opendoc(url)
182-
198+
def domenu_opendatabasepage(self):
199+
import ic
200+
201+
icr = ic.IC()
202+
icr.launchurl(PACKMAN_HOMEPAGE)
183203
def makeopenwindowsmenu(self):
184204
for i in range(len(self.openwindowsmenu.items)):
185205
self.openwindowsmenu.menu.DeleteMenuItem(1)

0 commit comments

Comments
 (0)