diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2003-11-19 13:45:26 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2003-11-19 13:45:26 (GMT) |
commit | d48364e8b18647bdb71df0d375ba930a14f65ce2 (patch) | |
tree | 6c9ced68b07bf620500c973f38fb9c3816c37d76 /Mac/Tools | |
parent | 6bf31278ac5c902e436a38a2c652b06627190920 (diff) | |
download | cpython-d48364e8b18647bdb71df0d375ba930a14f65ce2.zip cpython-d48364e8b18647bdb71df0d375ba930a14f65ce2.tar.gz cpython-d48364e8b18647bdb71df0d375ba930a14f65ce2.tar.bz2 |
Forward port of various fixes that were initially only done on the
release23-maint branch:
- Remember the scroll position when rebuilding the browser (as we do far
too often). Fixes #824430.
- Allow for the documentation to be inside PythonIDE as well as in
the Python.app inside the framework (the original location for 2.3).
- Updated version numbers
- In PythonIDE, add the Tools/IDE directory as the second entry in
sys.path in stead of as the first, leaving PythonIDE.app/Contents/Resources
as the first one.
- The code for setting the working directory to $HOME was both incorrect
and in the wrong place, fixed.
- On OSX the default location for IDE scripts is now
$HOME/Library/Python/IDE-Scripts.
Diffstat (limited to 'Mac/Tools')
-rw-r--r-- | Mac/Tools/IDE/PackageManager.plist | 41 | ||||
-rwxr-xr-x | Mac/Tools/IDE/PackageManager.py | 2 | ||||
-rw-r--r-- | Mac/Tools/IDE/PythonIDE.plist | 17 | ||||
-rw-r--r-- | Mac/Tools/IDE/PythonIDE.py | 2 | ||||
-rw-r--r-- | Mac/Tools/IDE/PythonIDEMain.py | 45 |
5 files changed, 91 insertions, 16 deletions
diff --git a/Mac/Tools/IDE/PackageManager.plist b/Mac/Tools/IDE/PackageManager.plist new file mode 100644 index 0000000..9d582d6 --- /dev/null +++ b/Mac/Tools/IDE/PackageManager.plist @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> +<plist version="0.9"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleDocumentTypes</key> + <array> + </array> + <key>CFBundleExecutable</key> + <string>PackageManager</string> + + <key>CFBundleGetInfoString</key> + <string>2.3.2, (c) 2003 Python Software Foundation.</string> + <key>CFBundleLongVersionString</key> + <string>2.3.2, (c) 2003 Python Software Foundation.</string> + <key>NSHumanReadableCopyright</key> + <string>Copyright 2003 Python Software Foundation.</string> + <key>CFBundleShortVersionString</key> + <string>2.3.2</string> + + <key>CFBundleIconFile</key> + <string>PackageManager.icns</string> + <key>CFBundleIdentifier</key> + <string>org.python.pythonide</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>PythonIDE</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleSignature</key> + <string>Pide</string> + <key>CFBundleVersion</key> + <string>2.3.2</string> + <key>LSRequiresCarbon</key> + <true/> + <key>CSResourcesFileMapped</key> + <true/> +</dict> +</plist> diff --git a/Mac/Tools/IDE/PackageManager.py b/Mac/Tools/IDE/PackageManager.py index 2b27ac0..a4b9acc 100755 --- a/Mac/Tools/IDE/PackageManager.py +++ b/Mac/Tools/IDE/PackageManager.py @@ -366,6 +366,7 @@ class PackageBrowser(PimpInterface): self.w.description.enable(0) def updatestatus(self): + topcell = self.w.packagebrowser.gettopcell() sel = self.w.packagebrowser.getselection() data = self.getbrowserdata(self.w.hidden_button.get()) self.w.packagebrowser.setitems(data) @@ -396,6 +397,7 @@ class PackageBrowser(PimpInterface): self.w.recursive_button.enable(1) self.w.force_button.enable(1) self.w.user_button.enable(1) + self.w.packagebrowser.settopcell(topcell) def listhit(self, *args, **kwargs): self.updatestatus() diff --git a/Mac/Tools/IDE/PythonIDE.plist b/Mac/Tools/IDE/PythonIDE.plist index 8bebe37..a3f9229 100644 --- a/Mac/Tools/IDE/PythonIDE.plist +++ b/Mac/Tools/IDE/PythonIDE.plist @@ -27,13 +27,22 @@ <string>PythonIDE</string> <key>CFBundleGetInfoString</key> - <string>2.3, (c) 2003 Python Software Foundation.</string> + <string>2.4a0, (c) 2003 Python Software Foundation.</string> <key>CFBundleLongVersionString</key> - <string>2.3, (c) 2003 Python Software Foundation.</string> + <string>2.4a0, (c) 2003 Python Software Foundation.</string> <key>NSHumanReadableCopyright</key> <string>Copyright 2003 Python Software Foundation.</string> <key>CFBundleShortVersionString</key> - <string>2.3</string> + <string>2.4a0</string> + + <key>CFBundleHelpBookFolder</key> + <array> + <string>PythonDocumentation</string> + </array> + <key>CFBundleHelpBookName</key> + <string>Python Help</string> + <key>CFBundleHelpTOCFile</key> + <string>index.html</string> <key>CFBundleIconFile</key> <string>PythonIDE.icns</string> @@ -48,7 +57,7 @@ <key>CFBundleSignature</key> <string>Pide</string> <key>CFBundleVersion</key> - <string>2.3</string> + <string>2.3.2</string> <key>LSRequiresCarbon</key> <true/> <key>CSResourcesFileMapped</key> diff --git a/Mac/Tools/IDE/PythonIDE.py b/Mac/Tools/IDE/PythonIDE.py index b7bc388..fb991b0 100644 --- a/Mac/Tools/IDE/PythonIDE.py +++ b/Mac/Tools/IDE/PythonIDE.py @@ -49,7 +49,7 @@ def init(): # We are a fully frozen application ide_path = sys.argv[0] if ide_path not in sys.path: - sys.path.insert(0, ide_path) + sys.path.insert(1, ide_path) init() diff --git a/Mac/Tools/IDE/PythonIDEMain.py b/Mac/Tools/IDE/PythonIDEMain.py index 5987c10..3ad35b7 100644 --- a/Mac/Tools/IDE/PythonIDEMain.py +++ b/Mac/Tools/IDE/PythonIDEMain.py @@ -32,6 +32,11 @@ def getmodtime(file): class PythonIDE(Wapplication.Application): def __init__(self): + if sys.platform == "darwin": + if len(sys.argv) > 1 and sys.argv[1].startswith("-psn"): + home = os.getenv("HOME") + if home: + os.chdir(home) self.preffilepath = os.path.join("Python", "PythonIDE preferences") Wapplication.Application.__init__(self, 'Pide') from Carbon import AE @@ -49,11 +54,6 @@ class PythonIDE(Wapplication.Application): self.quitevent) import PyConsole, PyEdit Splash.wait() - if sys.platform == "darwin": - if sys.argv and sys.argv[0].startswith("-psn"): - home = os.getenv("HOME") - if home: - os.chdir(home) # With -D option (OSX command line only) keep stderr, for debugging the IDE # itself. debug_stderr = None @@ -140,9 +140,12 @@ class PythonIDE(Wapplication.Application): except: path = os.path.join(os.getcwd(), "Mac", "IDE scripts") if not os.path.exists(path): - path = os.path.join(os.getcwd(), "Scripts") + if sys.platform == "darwin": + path = os.path.join(os.getenv("HOME"), "Library", "Python", "IDE-Scripts") + else: + path = os.path.join(os.getcwd(), "Scripts") if not os.path.exists(path): - os.mkdir(path) + os.makedirs(path) f = open(os.path.join(path, "Place your scripts here"+ELIPSES), "w") f.close() fsr = File.FSRef(path) @@ -451,11 +454,31 @@ class PythonIDE(Wapplication.Application): # is located in the framework, but there's a symlink in Python.app. # And as AHRegisterHelpBook wants a bundle (with the right bits in # the plist file) we refer it to Python.app + # + # To make matters worse we have to look in two places: first in the IDE + # itself, then in the Python application inside the framework. + has_help = False + has_doc = False + ide_path_components = sys.argv[0].split("/") + if ide_path_components[-3:] == ["Contents", "Resources", "PythonIDE.py"]: + ide_app = "/".join(ide_path_components[:-3]) + help_source = os.path.join(ide_app, 'Contents/Resources/English.lproj/Documentation') + doc_source = os.path.join(ide_app, 'Contents/Resources/English.lproj/PythonDocumentation') + has_help = os.path.isdir(help_source) + has_doc = os.path.isdir(doc_source) + if has_help or has_doc: + try: + from Carbon import AH + AH.AHRegisterHelpBook(ide_app) + except (ImportError, MacOS.Error), arg: + pass # W.Message("Cannot register Python Documentation: %s" % str(arg)) python_app = os.path.join(sys.prefix, 'Resources/Python.app') - help_source = os.path.join(python_app, 'Contents/Resources/English.lproj/Documentation') - doc_source = os.path.join(python_app, 'Contents/Resources/English.lproj/PythonDocumentation') - has_help = os.path.isdir(help_source) - has_doc = os.path.isdir(doc_source) + if not has_help: + help_source = os.path.join(python_app, 'Contents/Resources/English.lproj/Documentation') + has_help = os.path.isdir(help_source) + if not has_doc: + doc_source = os.path.join(python_app, 'Contents/Resources/English.lproj/PythonDocumentation') + has_doc = os.path.isdir(doc_source) if has_help or has_doc: try: from Carbon import AH |