diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index 19903608e..cf0639240 100755 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -844,11 +844,7 @@ void FormMain::hideEvent(QHideEvent* event) { } void FormMain::showDocs() { - if (!qApp->web()->openUrlInExternalBrowser(APP_URL_DOCUMENTATION)) { - qApp->showGuiMessage(tr("Cannot open external browser"), - tr("Cannot open external browser. Navigate to application website manually."), - QSystemTrayIcon::Warning, this, true); - } + qApp->web()->openUrlInExternalBrowser(APP_URL_DOCUMENTATION); } void FormMain::showAddAccountDialog() { @@ -860,17 +856,9 @@ void FormMain::showAddAccountDialog() { } void FormMain::reportABug() { - if (!qApp->web()->openUrlInExternalBrowser(QSL(APP_URL_ISSUES_NEW))) { - qApp->showGuiMessage(tr("Cannot open external browser"), - tr("Cannot open external browser. Navigate to application website manually."), - QSystemTrayIcon::Warning, this, true); - } + qApp->web()->openUrlInExternalBrowser(QSL(APP_URL_ISSUES_NEW)); } void FormMain::donate() { - if (!qApp->web()->openUrlInExternalBrowser(QSL(APP_DONATE_URL))) { - qApp->showGuiMessage(tr("Cannot open external browser"), - tr("Cannot open external browser. Navigate to application website manually."), - QSystemTrayIcon::Warning, this, true); - } + qApp->web()->openUrlInExternalBrowser(QSL(APP_DONATE_URL)); } diff --git a/src/librssguard/gui/dialogs/formupdate.cpp b/src/librssguard/gui/dialogs/formupdate.cpp index 934eb4afb..b9f20d2d1 100644 --- a/src/librssguard/gui/dialogs/formupdate.cpp +++ b/src/librssguard/gui/dialogs/formupdate.cpp @@ -237,11 +237,6 @@ void FormUpdate::startUpdate() { } else { // Self-update and package are not available. - if (!qApp->web()->openUrlInExternalBrowser(url_file)) { - qApp->showGuiMessage(tr("Cannot update application"), - tr("Cannot navigate to installation file. Download new installation file manually on project website."), - QSystemTrayIcon::MessageIcon::Warning, - this, true); - } + qApp->web()->openUrlInExternalBrowser(url_file); } } diff --git a/src/librssguard/gui/messagesview.cpp b/src/librssguard/gui/messagesview.cpp index 61f744d38..1e243ce56 100644 --- a/src/librssguard/gui/messagesview.cpp +++ b/src/librssguard/gui/messagesview.cpp @@ -380,12 +380,7 @@ void MessagesView::openSelectedSourceMessagesExternally() { .m_url .replace(QRegularExpression("[\\t\\n]"), QString()); - if (!qApp->web()->openUrlInExternalBrowser(link)) { - qApp->showGuiMessage(tr("Problem with starting external web browser"), - tr("External web browser could not be started."), - QSystemTrayIcon::Critical); - return; - } + qApp->web()->openUrlInExternalBrowser(link); } // Finally, mark opened messages as read. diff --git a/src/librssguard/gui/webbrowser.cpp b/src/librssguard/gui/webbrowser.cpp index 80d508073..6388a80f1 100644 --- a/src/librssguard/gui/webbrowser.cpp +++ b/src/librssguard/gui/webbrowser.cpp @@ -185,13 +185,7 @@ void WebBrowser::openCurrentSiteInSystemBrowser() { return; } - if (!qApp->web()->openUrlInExternalBrowser(url.toString())) { - qApp->showGuiMessage(tr("Failed to open URL in web browser"), - tr("URL '%1' could not be opened in system's web browser.").arg(url.toString()), - QSystemTrayIcon::MessageIcon::Critical, - qApp->mainFormWidget(), - true); - } + qApp->web()->openUrlInExternalBrowser(url.toString()); } void WebBrowser::onTitleChanged(const QString& new_title) { diff --git a/src/librssguard/network-web/oauth2service.cpp b/src/librssguard/network-web/oauth2service.cpp index e42358edb..272c83100 100644 --- a/src/librssguard/network-web/oauth2service.cpp +++ b/src/librssguard/network-web/oauth2service.cpp @@ -332,13 +332,5 @@ void OAuth2Service::retrieveAuthCode() { m_id); // We run login URL in external browser, response is caught by light HTTP server. - if (!qApp->web()->openUrlInExternalBrowser(auth_url)) { - MessageBox::show(qApp->mainFormWidget(), - QMessageBox::Icon::Question, - tr("Navigate to website"), - tr("To login, you need to navigate to the below website."), - {}, - auth_url, - QMessageBox::StandardButton::Ok); - } + qApp->web()->openUrlInExternalBrowser(auth_url); } diff --git a/src/librssguard/network-web/webfactory.cpp b/src/librssguard/network-web/webfactory.cpp index a0a30d662..b3eaaae3b 100644 --- a/src/librssguard/network-web/webfactory.cpp +++ b/src/librssguard/network-web/webfactory.cpp @@ -2,6 +2,7 @@ #include "network-web/webfactory.h" +#include "gui/messagebox.h" #include "miscellaneous/application.h" #include "miscellaneous/iconfactory.h" @@ -64,9 +65,9 @@ bool WebFactory::sendMessageViaEmail(const Message& message) { } bool WebFactory::openUrlInExternalBrowser(const QString& url) const { - qDebugNN << LOGSEC_NETWORK - << "We are trying to open URL:" - << QUOTE_W_SPACE_DOT(url); + qDebugNN << LOGSEC_NETWORK << "We are trying to open URL" << QUOTE_W_SPACE_DOT(url); + + bool result = false; if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserEnabled)).toBool()) { const QString browser = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserExecutable)).toString(); @@ -75,17 +76,29 @@ bool WebFactory::openUrlInExternalBrowser(const QString& url) const { qDebugNN << LOGSEC_NETWORK << "Arguments for external browser:" << QUOTE_W_SPACE_DOT(nice_args); - const bool result = IOFactory::startProcessDetached(browser, {}, nice_args); + result = IOFactory::startProcessDetached(browser, {}, nice_args); if (!result) { qDebugNN << LOGSEC_NETWORK << "External web browser call failed."; } - - return result; } else { - return QDesktopServices::openUrl(url); + result = QDesktopServices::openUrl(url); } + + if (!result) { + // We display GUI information that browser was not probably opened. + MessageBox::show(qApp->mainFormWidget(), + QMessageBox::Icon::Critical, + tr("Navigate to website manually"), + tr("%1 was unable to launch your web browser with the given URL, you need to open the " + "below website URL in your web browser manually.").arg(APP_NAME), + {}, + url, + QMessageBox::StandardButton::Ok); + } + + return result; } QString WebFactory::stripTags(QString text) {