#BUGFIX by cg
authorClaus Gittinger <cg@exept.de>
Thu, 09 Aug 2018 13:04:19 +0200
changeset 23269 6a0fe6e99d2d
parent 23268 e3404df6fbbe
child 23270 194ed0e9c2c7
#BUGFIX by cg class: AbstractOperatingSystem class changed: #openApplicationForDocument:operation:mimeType: don't try to open an http-URL with the file browser.
AbstractOperatingSystem.st
--- a/AbstractOperatingSystem.st	Wed Aug 08 22:02:51 2018 +0200
+++ b/AbstractOperatingSystem.st	Thu Aug 09 13:04:19 2018 +0200
@@ -621,7 +621,7 @@
 	mimeType:nil
 !
 
-openApplicationForDocument:aFilenameOrString operation:operationSymbol mimeType:mimeTypeStringArgOrNil
+openApplicationForDocument:aFilenameOrStringOrURLString operation:operationSymbol mimeType:mimeTypeStringArgOrNil
     "open a windows-shell/mac finder/desktop application to present the document contained in aFilenameOrString.
      This is typically used to present help-files, html documents, pdf documents etc.
      operationSymbol is one of:
@@ -633,25 +633,39 @@
     "
 
     self
-        openApplicationForDocument:aFilenameOrString
+        openApplicationForDocument:aFilenameOrStringOrURLString
         operation:operationSymbol
         mimeType:mimeTypeStringArgOrNil
         inDirectory:nil
         ifNone:[
-            "/ last resort: use a fileBrowser
-            FileBrowser default openOn:aFilenameOrString
+            |fn|
+            
+            "/ last resort: use a fileBrowser,
+            "/ but only if it is a valid file (not a URL)
+            (fn := aFilenameOrStringOrURLString) asFilename exists ifFalse:[
+                (aFilenameOrStringOrURLString asURL method = 'file') ifFalse:[^ false].
+                fn := aFilenameOrStringOrURLString asURL path asFilename.
+                fn exists ifFalse:[^ false].
+            ].
+            FileBrowser default openOn:fn
         ].
-
-    "
-     self openApplicationForDocument: Filename currentDirectory operation:#open
-     self openApplicationForDocument: '..\..\doc\books\ArtOfSmalltalk\artMissing186187Fix1.pdf' asFilename operation:#open
-
-     self openApplicationForDocument: 'C:\WINDOWS\Help\clipbrd.chm' asFilename operation:#open
-     self openApplicationForDocument: 'http://www.exept.de' operation:#open mimeType:'text/html'
+        
+    ^ true
+    
+    "
+     OperatingSystem openApplicationForDocument: Filename currentDirectory operation:#open
+     OperatingSystem openApplicationForDocument: '..\..\doc\books\ArtOfSmalltalk\artMissing186187Fix1.pdf' asFilename operation:#open
+
+     OperatingSystem openApplicationForDocument: 'C:\WINDOWS\Help\clipbrd.chm' asFilename operation:#open
+     OperatingSystem openApplicationForDocument: 'http://www.exept.de' operation:#open mimeType:'text/html'
+
+     OperatingSystem openApplicationForDocument: 'file:///tmp/foo' operation:#open mimeType:'text/html'
+     OperatingSystem openApplicationForDocument: 'file://Makefile' operation:#open mimeType:'text/html'
     "
 
     "Created: / 29-10-2010 / 12:16:38 / cg"
     "Modified: / 01-09-2017 / 14:03:36 / cg"
+    "Modified (comment): / 09-08-2018 / 13:02:34 / Claus Gittinger"
 !
 
 openApplicationForDocument:aFilenameOrString operation:operationSymbol mimeType:mimeTypeStringArgOrNil ifNone:exceptionBlock