diff options
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 47256dc..af60eca 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -43,8 +43,26 @@ class EditorWindow: from MultiStatusBar import MultiStatusBar vars = {} + help_url = None def __init__(self, flist=None, filename=None, key=None, root=None): + if EditorWindow.help_url is None: + if sys.platform.count('linux'): + # look for html docs in a couple of standard places + pyver = 'python-docs-' + '%s.%s.%s' % sys.version_info[:3] + if os.path.isdir('/var/www/html/python/'): # "python2" rpm + dochome = '/var/www/html/python/index.html' + else: + basepath = '/usr/share/doc/' # standard location + dochome = os.path.join(basepath, pyver, + 'Doc', 'index.html') + else: + dochome = os.path.join(sys.prefix, 'Doc', 'index.html') + dochome = os.path.normpath(dochome) + if os.path.isfile(dochome): + EditorWindow.help_url = dochome + else: + EditorWindow.help_url = "http://www.python.org/doc/current" currentTheme=idleConf.CurrentTheme() self.flist = flist root = root or flist.root @@ -285,28 +303,20 @@ class EditorWindow: fn=os.path.join(os.path.abspath(os.path.dirname(__file__)),'help.txt') textView.TextViewer(self.top,'Help',fn) - help_url = "http://www.python.org/doc/current/" - if sys.platform[:3] == "win": - fn = os.path.dirname(__file__) - fn = os.path.join(fn, os.pardir, os.pardir, "pythlp.chm") - fn = os.path.normpath(fn) - if os.path.isfile(fn): - help_url = fn - else: - fn = os.path.dirname(__file__) - fn = os.path.join(fn, os.pardir, os.pardir, "Doc", "index.html") - fn = os.path.normpath(fn) - if os.path.isfile(fn): - help_url = fn - del fn - def python_docs(self, event=None): + def python_docs(self, event=None): + if sys.platform.count('win') or sys.platform.count('nt'): os.startfile(self.help_url) - else: - def python_docs(self, event=None): - self.display_docs(self.help_url) + return "break" + else: + webbrowser.open(self.help_url) + return "break" def display_docs(self, url): - webbrowser.open(url) + url = os.path.normpath(url) + if sys.platform.count('win') or sys.platform.count('nt'): + os.startfile(url) + else: + webbrowser.open(url) def cut(self,event): self.text.event_generate("<<Cut>>") |