mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 09:39:09 +02:00
Implements LCLIntf.OpenDocument to open a document with the default application
git-svn-id: trunk@25413 -
This commit is contained in:
parent
8a1ed611d5
commit
aa50d358b4
@ -89,6 +89,7 @@ function GetTickStep: DWord;
|
|||||||
|
|
||||||
function FindDefaultBrowser(out ABrowser, AParams: String): Boolean;
|
function FindDefaultBrowser(out ABrowser, AParams: String): Boolean;
|
||||||
function OpenURL(AURL: String): Boolean;
|
function OpenURL(AURL: String): Boolean;
|
||||||
|
function OpenDocument(APath: String): Boolean;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -239,8 +240,8 @@ begin
|
|||||||
Result := ABrowser <> '';
|
Result := ABrowser <> '';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF Windows}
|
|
||||||
function OpenURL(AURL: String): Boolean;
|
function OpenURL(AURL: String): Boolean;
|
||||||
|
{$IFDEF Windows}
|
||||||
var
|
var
|
||||||
{$IFDEF WinCE}
|
{$IFDEF WinCE}
|
||||||
Info: SHELLEXECUTEINFO;
|
Info: SHELLEXECUTEINFO;
|
||||||
@ -274,7 +275,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF DARWIN}
|
{$IFDEF DARWIN}
|
||||||
function OpenURL(AURL: string): Boolean;
|
|
||||||
var
|
var
|
||||||
cf: CFStringRef;
|
cf: CFStringRef;
|
||||||
url: CFURLRef;
|
url: CFURLRef;
|
||||||
@ -290,7 +290,6 @@ begin
|
|||||||
CFRelease(cf);
|
CFRelease(cf);
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
function OpenURL(AURL: String): Boolean;
|
|
||||||
var
|
var
|
||||||
ABrowser, AParams: String;
|
ABrowser, AParams: String;
|
||||||
BrowserProcess: TProcessUTF8;
|
BrowserProcess: TProcessUTF8;
|
||||||
@ -311,6 +310,36 @@ end;
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
function OpenDocument(APath: String): Boolean;
|
||||||
|
{$IFDEF Windows}
|
||||||
|
begin
|
||||||
|
Result := OpenURL(APath);
|
||||||
|
end;
|
||||||
|
{$ELSE}
|
||||||
|
{$IFDEF DARWIN}
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
Shell('Open ' + APath);
|
||||||
|
end;
|
||||||
|
{$ELSE}
|
||||||
|
var
|
||||||
|
lApp: string;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
|
||||||
|
if shell('which xdg-open') = 0 then // Portland OSDL/FreeDesktop standard on Linux
|
||||||
|
lApp := 'xdg-open '
|
||||||
|
else if shell('which kfmclient') = 0 then // KDE command
|
||||||
|
lApp := 'kfmclient exec '
|
||||||
|
else if shell('which gnome-open') = 0 then// GNOME command
|
||||||
|
lApp := 'gnome-open '
|
||||||
|
else Exit(False);
|
||||||
|
|
||||||
|
shell(lApp + APath);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$I winapi.inc}
|
{$I winapi.inc}
|
||||||
{$I lclintf.inc}
|
{$I lclintf.inc}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user