mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 12:09:32 +02:00
50 lines
1.4 KiB
PHP
50 lines
1.4 KiB
PHP
{%MainUnit ../lclintf.pas}
|
|
|
|
|
|
function FindDefaultBrowser(out ABrowser, AParams: String): Boolean;
|
|
begin
|
|
Result := FindPredefinedBrowser(ABrowser, AParams);
|
|
end;
|
|
|
|
// Open a given URL with the default browser
|
|
function OpenURL(AURL: String): Boolean;
|
|
var
|
|
ABrowser, AParams: String;
|
|
begin
|
|
// Android uses this
|
|
if Assigned(OpenURLWidgetsetImplementation) then
|
|
Exit(OpenURLWidgetsetImplementation(AURL));
|
|
|
|
Result := FindDefaultBrowser(ABrowser, AParams) and
|
|
FileExistsUTF8(ABrowser) and FileIsExecutable(ABrowser);
|
|
if not Result then
|
|
Exit;
|
|
RunCmdFromPath(ABrowser,Format(AParams, [AURL]));
|
|
end;
|
|
|
|
// Open a document with the default application associated with it in the system
|
|
function OpenDocument(APath: String): Boolean;
|
|
var
|
|
lApp: string;
|
|
begin
|
|
// Android uses this
|
|
if Assigned(OpenDocumentWidgetsetImplementation) then
|
|
Exit(OpenDocumentWidgetsetImplementation(APath));
|
|
|
|
Result := True;
|
|
if not (FileExistsUTF8(APath) or DirectoryExistsUTF8(APath)) then
|
|
Exit(false);
|
|
|
|
lApp:=FindFilenameOfCmd('xdg-open'); // Portland OSDL/FreeDesktop standard on Linux
|
|
if lApp='' then
|
|
lApp:=FindFilenameOfCmd('kfmclient'); // KDE command
|
|
if lApp='' then
|
|
lApp:=FindFilenameOfCmd('gnome-open'); // GNOME command
|
|
if lApp='' then
|
|
Exit(False);
|
|
|
|
if (APath<>'') and (APath[1]<>'"') then
|
|
APath:=QuotedStr(APath);
|
|
RunCmdFromPath(lApp,APath);
|
|
end;
|