@@ -45,6 +45,8 @@ def _init():
4545
4646import pimp
4747
48+ PACKMAN_HOMEPAGE = "http://www.python.org/packman"
49+
4850ELIPSES = '...'
4951
5052USER_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\n PackMan 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