mirror of https://github.com/python/cpython
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.
This commit is contained in:
parent
6bf31278ac
commit
d48364e8b1
|
@ -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>
|
|
@ -366,6 +366,7 @@ class PackageBrowser(PimpInterface):
|
||||||
self.w.description.enable(0)
|
self.w.description.enable(0)
|
||||||
|
|
||||||
def updatestatus(self):
|
def updatestatus(self):
|
||||||
|
topcell = self.w.packagebrowser.gettopcell()
|
||||||
sel = self.w.packagebrowser.getselection()
|
sel = self.w.packagebrowser.getselection()
|
||||||
data = self.getbrowserdata(self.w.hidden_button.get())
|
data = self.getbrowserdata(self.w.hidden_button.get())
|
||||||
self.w.packagebrowser.setitems(data)
|
self.w.packagebrowser.setitems(data)
|
||||||
|
@ -396,6 +397,7 @@ class PackageBrowser(PimpInterface):
|
||||||
self.w.recursive_button.enable(1)
|
self.w.recursive_button.enable(1)
|
||||||
self.w.force_button.enable(1)
|
self.w.force_button.enable(1)
|
||||||
self.w.user_button.enable(1)
|
self.w.user_button.enable(1)
|
||||||
|
self.w.packagebrowser.settopcell(topcell)
|
||||||
|
|
||||||
def listhit(self, *args, **kwargs):
|
def listhit(self, *args, **kwargs):
|
||||||
self.updatestatus()
|
self.updatestatus()
|
||||||
|
|
|
@ -27,13 +27,22 @@
|
||||||
<string>PythonIDE</string>
|
<string>PythonIDE</string>
|
||||||
|
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>2.3, (c) 2003 Python Software Foundation.</string>
|
<string>2.4a0, (c) 2003 Python Software Foundation.</string>
|
||||||
<key>CFBundleLongVersionString</key>
|
<key>CFBundleLongVersionString</key>
|
||||||
<string>2.3, (c) 2003 Python Software Foundation.</string>
|
<string>2.4a0, (c) 2003 Python Software Foundation.</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright 2003 Python Software Foundation.</string>
|
<string>Copyright 2003 Python Software Foundation.</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<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>
|
<key>CFBundleIconFile</key>
|
||||||
<string>PythonIDE.icns</string>
|
<string>PythonIDE.icns</string>
|
||||||
|
@ -48,7 +57,7 @@
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>Pide</string>
|
<string>Pide</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.3</string>
|
<string>2.3.2</string>
|
||||||
<key>LSRequiresCarbon</key>
|
<key>LSRequiresCarbon</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>CSResourcesFileMapped</key>
|
<key>CSResourcesFileMapped</key>
|
||||||
|
|
|
@ -49,7 +49,7 @@ def init():
|
||||||
# We are a fully frozen application
|
# We are a fully frozen application
|
||||||
ide_path = sys.argv[0]
|
ide_path = sys.argv[0]
|
||||||
if ide_path not in sys.path:
|
if ide_path not in sys.path:
|
||||||
sys.path.insert(0, ide_path)
|
sys.path.insert(1, ide_path)
|
||||||
|
|
||||||
|
|
||||||
init()
|
init()
|
||||||
|
|
|
@ -32,6 +32,11 @@ def getmodtime(file):
|
||||||
class PythonIDE(Wapplication.Application):
|
class PythonIDE(Wapplication.Application):
|
||||||
|
|
||||||
def __init__(self):
|
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")
|
self.preffilepath = os.path.join("Python", "PythonIDE preferences")
|
||||||
Wapplication.Application.__init__(self, 'Pide')
|
Wapplication.Application.__init__(self, 'Pide')
|
||||||
from Carbon import AE
|
from Carbon import AE
|
||||||
|
@ -49,11 +54,6 @@ class PythonIDE(Wapplication.Application):
|
||||||
self.quitevent)
|
self.quitevent)
|
||||||
import PyConsole, PyEdit
|
import PyConsole, PyEdit
|
||||||
Splash.wait()
|
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
|
# With -D option (OSX command line only) keep stderr, for debugging the IDE
|
||||||
# itself.
|
# itself.
|
||||||
debug_stderr = None
|
debug_stderr = None
|
||||||
|
@ -140,9 +140,12 @@ class PythonIDE(Wapplication.Application):
|
||||||
except:
|
except:
|
||||||
path = os.path.join(os.getcwd(), "Mac", "IDE scripts")
|
path = os.path.join(os.getcwd(), "Mac", "IDE scripts")
|
||||||
if not os.path.exists(path):
|
if not os.path.exists(path):
|
||||||
|
if sys.platform == "darwin":
|
||||||
|
path = os.path.join(os.getenv("HOME"), "Library", "Python", "IDE-Scripts")
|
||||||
|
else:
|
||||||
path = os.path.join(os.getcwd(), "Scripts")
|
path = os.path.join(os.getcwd(), "Scripts")
|
||||||
if not os.path.exists(path):
|
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 = open(os.path.join(path, "Place your scripts here"+ELIPSES), "w")
|
||||||
f.close()
|
f.close()
|
||||||
fsr = File.FSRef(path)
|
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.
|
# is located in the framework, but there's a symlink in Python.app.
|
||||||
# And as AHRegisterHelpBook wants a bundle (with the right bits in
|
# And as AHRegisterHelpBook wants a bundle (with the right bits in
|
||||||
# the plist file) we refer it to Python.app
|
# the plist file) we refer it to Python.app
|
||||||
python_app = os.path.join(sys.prefix, 'Resources/Python.app')
|
#
|
||||||
help_source = os.path.join(python_app, 'Contents/Resources/English.lproj/Documentation')
|
# To make matters worse we have to look in two places: first in the IDE
|
||||||
doc_source = os.path.join(python_app, 'Contents/Resources/English.lproj/PythonDocumentation')
|
# 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_help = os.path.isdir(help_source)
|
||||||
has_doc = os.path.isdir(doc_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')
|
||||||
|
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:
|
if has_help or has_doc:
|
||||||
try:
|
try:
|
||||||
from Carbon import AH
|
from Carbon import AH
|
||||||
|
|
Loading…
Reference in New Issue