percent encode all urls opening in external browsers

This commit is contained in:
Martin Rotter 2023-12-05 10:19:58 +01:00
parent d2210bd01c
commit 4286b7246e
2 changed files with 7 additions and 5 deletions

View File

@ -82,7 +82,7 @@ bool ExternalTool::run(const QString& target) {
pars = pars.replace(QSL("%1"), target); pars = pars.replace(QSL("%1"), target);
} }
else { else {
pars += QSL(" \"%1\"").arg(target); pars += QSL(" '%1'").arg(target);
} }
auto params = TextFactory::tokenizeProcessArguments(pars); auto params = TextFactory::tokenizeProcessArguments(pars);

View File

@ -120,7 +120,9 @@ void WebFactory::loadCustomCss(const QString user_styles_path) {
#endif #endif
bool WebFactory::openUrlInExternalBrowser(const QString& url) const { bool WebFactory::openUrlInExternalBrowser(const QString& url) const {
qDebugNN << LOGSEC_NETWORK << "We are trying to open URL" << QUOTE_W_SPACE_DOT(url); QString my_url = QUrl::toPercentEncoding(url);
qDebugNN << LOGSEC_NETWORK << "We are trying to open URL" << QUOTE_W_SPACE_DOT(my_url);
bool result = false; bool result = false;
@ -129,7 +131,7 @@ bool WebFactory::openUrlInExternalBrowser(const QString& url) const {
qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserExecutable)).toString(); qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserExecutable)).toString();
const QString arguments = const QString arguments =
qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserArguments)).toString(); qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserArguments)).toString();
const auto nice_args = arguments.arg(url); const auto nice_args = arguments.arg(my_url);
qDebugNN << LOGSEC_NETWORK << "Arguments for external browser:" << QUOTE_W_SPACE_DOT(nice_args); qDebugNN << LOGSEC_NETWORK << "Arguments for external browser:" << QUOTE_W_SPACE_DOT(nice_args);
@ -140,7 +142,7 @@ bool WebFactory::openUrlInExternalBrowser(const QString& url) const {
} }
} }
else { else {
result = QDesktopServices::openUrl(url); result = QDesktopServices::openUrl(my_url);
} }
if (!result) { if (!result) {
@ -152,7 +154,7 @@ bool WebFactory::openUrlInExternalBrowser(const QString& url) const {
"below website URL in your web browser manually.") "below website URL in your web browser manually.")
.arg(QSL(APP_NAME)), .arg(QSL(APP_NAME)),
{}, {},
url, my_url,
QMessageBox::StandardButton::Ok); QMessageBox::StandardButton::Ok);
} }