From ae501e256ea462268dbae8109ad07ef457c4fd8e Mon Sep 17 00:00:00 2001 From: Maufeat Date: Sat, 17 Jan 2026 01:48:15 +0100 Subject: [bcat/news/web/am] Implement news applet, proper TLV return, external web browser URL and qlaunch app sorting (#3308) This pulls eden releases changelog & text from our github releases. We don't store the msgpack file but rather generate them in-memory for the News Applet. Uses cache folder. Files generated are: - cache/news/github_releases.json - cache/news/eden_logo.jpg - cache/news/news_read Additional changes: - Proper TLV returning for online web applet, to open external URL - Add applet type `LHub` to properly close, as it also uses TLV return - qlaunch app sorting, adds another cached .json to track last launched app timestamps and sort them accordingly Co-authored-by: crueter Co-authored-by: DraVee Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3308 Reviewed-by: MaranBr Reviewed-by: DraVee Reviewed-by: Lizzie Co-authored-by: Maufeat Co-committed-by: Maufeat --- src/yuzu/applets/qt_web_browser.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/yuzu/applets/qt_web_browser.cpp') diff --git a/src/yuzu/applets/qt_web_browser.cpp b/src/yuzu/applets/qt_web_browser.cpp index cab8ef190e..3d9d851ab6 100644 --- a/src/yuzu/applets/qt_web_browser.cpp +++ b/src/yuzu/applets/qt_web_browser.cpp @@ -4,6 +4,11 @@ // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include +#include + +#include "common/logging/log.h" + #ifdef YUZU_USE_QT_WEB_ENGINE #include @@ -429,15 +434,17 @@ void QtWebBrowser::OpenLocalWebPage(const std::string& local_url, void QtWebBrowser::OpenExternalWebPage(const std::string& external_url, OpenWebPageCallback callback_) const { - callback = std::move(callback_); + LOG_INFO(Service_AM, "Opening external URL in host browser: {}", external_url); - const auto index = external_url.find('?'); + const QUrl url(QString::fromStdString(external_url)); + const bool success = QDesktopServices::openUrl(url); - if (index == std::string::npos) { - emit MainWindowOpenWebPage(external_url, "", false); + if (success) { + LOG_INFO(Service_AM, "Successfully opened URL in host browser"); + callback_(Service::AM::Frontend::WebExitReason::EndButtonPressed, external_url); } else { - emit MainWindowOpenWebPage(external_url.substr(0, index), external_url.substr(index), - false); + LOG_ERROR(Service_AM, "Failed to open URL in host browser"); + callback_(Service::AM::Frontend::WebExitReason::WindowClosed, external_url); } } -- cgit v1.2.3