]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Backport EditorWindow rev 1.60 configHelpSourceEdit rev 1.7 15Jul04
authorKurt B. Kaiser <kbk@shore.net>
Wed, 19 Jan 2005 04:12:38 +0000 (04:12 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Wed, 19 Jan 2005 04:12:38 +0000 (04:12 +0000)
checking sys.platform for substring 'win' was breaking IDLE docs on Mac
(darwin).  Also, Mac Safari browser requires full file:// URIs.  SF 900580.

M EditorWindow.py
M NEWS.txt
M configHelpSourceEdit.py

Lib/idlelib/EditorWindow.py
Lib/idlelib/NEWS.txt
Lib/idlelib/configHelpSourceEdit.py

index 2d340914e6c89b01f5421402535bc159fa1851ab..98f09bf4401ab63c9f8bf8885eef7fc14bf788ed 100644 (file)
@@ -60,7 +60,7 @@ class EditorWindow:
                     basepath = '/usr/share/doc/'  # standard location
                     dochome = os.path.join(basepath, pyver,
                                            'Doc', 'index.html')
-            elif sys.platform.count('win') or sys.platform.count('nt'):
+            elif sys.platform[:3] == 'win':
                 # Try the HTMLHelp file
                 chmpath = os.path.join(sys.prefix, 'Doc',
                                        'Python%d%d.chm' % sys.version_info[:2])
@@ -311,20 +311,11 @@ class EditorWindow:
         textView.TextViewer(self.top,'Help',fn)
 
     def python_docs(self, event=None):
-        if sys.platform.count('win') or sys.platform.count('nt'):
+        if sys.platform[:3] == 'win':
             os.startfile(self.help_url)
-            return "break"
         else:
             webbrowser.open(self.help_url)
-            return "break"
-
-    def display_docs(self, url):
-        if not (url.startswith('www') or url.startswith('http')):
-            url = os.path.normpath(url)
-        if sys.platform.count('win') or sys.platform.count('nt'):
-            os.startfile(url)
-        else:
-            webbrowser.open(url)
+        return "break"
 
     def cut(self,event):
         self.text.event_generate("<<Cut>>")
@@ -575,7 +566,12 @@ class EditorWindow:
     def __extra_help_callback(self, helpfile):
         "Create a callback with the helpfile value frozen at definition time"
         def display_extra_help(helpfile=helpfile):
-            self.display_docs(helpfile)
+            if not (helpfile.startswith('www') or helpfile.startswith('http')):
+                url = os.path.normpath(helpfile)
+            if sys.platform[:3] == 'win':
+                os.startfile(helpfile)
+            else:
+                webbrowser.open(helpfile)
         return display_extra_help
 
     def UpdateRecentFilesList(self,newFile=None):
index f1ad5060c01acecb76c9e2bafe60a5d3372eb69a..5660abef962d0960a7bddafe675302a779c62924 100644 (file)
@@ -3,6 +3,10 @@ What's New in IDLE 1.0.4?
 
 *Release date: XX-Jan-2005*
 
+- checking sys.platform for substring 'win' was breaking IDLE docs on Mac
+  (darwin).  Also, Mac Safari browser requires full file:// URIs.  Backport of
+  fix for SF 900580.
+
 - rpc.py:SocketIO - Large modules were generating large pickles when downloaded
   to the execution server.  The return of the OK response from the subprocess
   initialization was interfering and causing the sending socket to be not
index b7818846b3d9d5fb6e63bf125802c1f77b79e97b..3db1e0ae5eca45b6899f749218458ac1efa73357 100644 (file)
@@ -1,6 +1,7 @@
 "Dialog to specify or edit the parameters for a user configured help source."
 
 import os
+import sys
 
 from Tkinter import *
 import tkMessageBox
@@ -84,7 +85,7 @@ class GetHelpSourceDialog(Toplevel):
             dir, base = os.path.split(path)
         else:
             base = None
-            if sys.platform.count('win') or sys.platform.count('nt'):
+            if sys.platform[:3] == 'win':
                 dir = os.path.join(os.path.dirname(sys.executable), 'Doc')
                 if not os.path.isdir(dir):
                     dir = os.getcwd()
@@ -127,19 +128,30 @@ class GetHelpSourceDialog(Toplevel):
             self.entryPath.focus_set()
             pathOk = False
         elif path.startswith('www.') or path.startswith('http'):
-            pathOk = True
-        elif not os.path.exists(path):
-            tkMessageBox.showerror(title='File Path Error',
-                                   message='Help file path does not exist.',
-                                   parent=self)
-            self.entryPath.focus_set()
-            pathOk = False
+            pass
+        else:
+            if path[:5] == 'file:':
+                path = path[5:]
+            if not os.path.exists(path):
+                tkMessageBox.showerror(title='File Path Error',
+                                       message='Help file path does not exist.',
+                                       parent=self)
+                self.entryPath.focus_set()
+                pathOk = False
         return pathOk
 
     def Ok(self, event=None):
         if self.MenuOk() and self.PathOk():
             self.result = (self.menu.get().strip(),
                            self.path.get().strip())
+            if sys.platform == 'darwin':
+                path = self.result[1]
+                if (path.startswith('www') or path.startswith('file:')
+                    or path.startswith('http:')):
+                    pass
+                else:
+                    # Mac Safari insists on using the URI form for local files
+                    self.result[1] = "file://" + path
             self.destroy()
 
     def Cancel(self, event=None):