File indexing completed on 2024-04-28 05:35:34

0001 // SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0002 // SPDX-FileCopyrightText: 2023 Harald Sitter <sitter@kde.org>
0003 
0004 #include "defaultservice.h"
0005 
0006 #include <KApplicationTrader>
0007 #include <KConfigGroup>
0008 #include <KSharedConfig>
0009 
0010 KService::Ptr DefaultService::browser()
0011 {
0012     // NOTE this function could be lifted into a framework or refactored into only following scheme-handler
0013     KService::Ptr preferredService = KApplicationTrader::preferredService(QStringLiteral("x-scheme-handler/http"));
0014     if (preferredService) {
0015         return preferredService;
0016     }
0017 
0018     KService::Ptr htmlApp = KApplicationTrader::preferredService(QStringLiteral("text/html"));
0019     if (htmlApp) {
0020         return htmlApp;
0021     }
0022 
0023     return KService::serviceByStorageId(legacyBrowserExec());
0024 }
0025 
0026 QString DefaultService::legacyBrowserExec()
0027 {
0028     KConfigGroup config(KSharedConfig::openConfig(), QStringLiteral("General"));
0029     QString browserApp = config.readPathEntry("BrowserApplication", QString());
0030     if (!browserApp.isEmpty()) {
0031         if (browserApp.startsWith(QLatin1Char('!'))) {
0032             browserApp.remove(0, 1);
0033         }
0034         return browserApp;
0035     }
0036 
0037     return {};
0038 }