Changed: Give priority to xdg-open (if present) to open URLs under Linux
This commit is contained in:
parent
953e7b3df6
commit
4d99b9d3bc
1 changed files with 29 additions and 12 deletions
|
@ -1078,9 +1078,36 @@ static bool openDocWithExtension (const char *document, const char *ext)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#elif defined(NL_OS_MAC)
|
||||||
|
return launchProgram("open", document);
|
||||||
#else
|
#else
|
||||||
// TODO: implement for Linux and Mac OS X
|
std::string command = "/usr/bin/xdg-open";
|
||||||
nlunreferenced(document);
|
|
||||||
|
if (!CFile::fileExists(command))
|
||||||
|
{
|
||||||
|
if (strcmp(ext, "htm") == 0)
|
||||||
|
{
|
||||||
|
command = "/etc/alternatives/x-www-browser";
|
||||||
|
|
||||||
|
if (!CFile::fileExists(command))
|
||||||
|
{
|
||||||
|
command.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
command.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (command.empty())
|
||||||
|
{
|
||||||
|
nlwarning("Unable to open %s", document);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return launchProgram(command, document);
|
||||||
|
|
||||||
#endif // NL_OS_WINDOWS
|
#endif // NL_OS_WINDOWS
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -1088,17 +1115,7 @@ static bool openDocWithExtension (const char *document, const char *ext)
|
||||||
|
|
||||||
bool openURL (const char *url)
|
bool openURL (const char *url)
|
||||||
{
|
{
|
||||||
#ifdef NL_OS_WINDOWS
|
|
||||||
return openDocWithExtension(url, "htm");
|
return openDocWithExtension(url, "htm");
|
||||||
#elif defined(NL_OS_MAC)
|
|
||||||
return launchProgram("open", url);
|
|
||||||
#elif defined(NL_OS_UNIX)
|
|
||||||
return launchProgram("/etc/alternatives/x-www-browser", url);
|
|
||||||
#else
|
|
||||||
nlwarning("openURL() is not implemented for this OS");
|
|
||||||
#endif // NL_OS_WINDOWS
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool openDoc (const char *document)
|
bool openDoc (const char *document)
|
||||||
|
|
Loading…
Reference in a new issue