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 }