File indexing completed on 2024-05-12 17:07:08
0001 /* 0002 SPDX-FileCopyrightText: 2002 Joseph Wenninger <jowenn@kde.org> 0003 SPDX-FileCopyrightText: 2020 Méven Car <meven.car@kdemail.net> 0004 SPDX-FileCopyrightText: 2020 Tobias Fella <fella@posteo.de> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "componentchooseremail.h" 0010 0011 #include <KEMailSettings> 0012 #include <KService> 0013 0014 ComponentChooserEmail::ComponentChooserEmail(QObject *parent) 0015 : ComponentChooser(parent, 0016 QStringLiteral("x-scheme-handler/mailto"), 0017 QStringLiteral("Email"), 0018 QStringLiteral("org.kde.kmail2.desktop"), 0019 i18n("Select default e-mail client")) 0020 { 0021 } 0022 0023 void ComponentChooserEmail::save() 0024 { 0025 const QString storageId = m_applications[m_index].toMap()[QStringLiteral("storageId")].toString(); 0026 const KService::Ptr emailClientService = KService::serviceByStorageId(storageId); 0027 if (!emailClientService) { 0028 return; 0029 } 0030 const bool kmailSelected = storageId == QStringLiteral("org.kde.kmail2.desktop"); 0031 0032 KEMailSettings *emailSettings = new KEMailSettings(); 0033 0034 if (kmailSelected) { 0035 emailSettings->setSetting(KEMailSettings::ClientProgram, QString()); 0036 emailSettings->setSetting(KEMailSettings::ClientTerminal, QStringLiteral("false")); 0037 } else { 0038 emailSettings->setSetting(KEMailSettings::ClientProgram, storageId); 0039 emailSettings->setSetting(KEMailSettings::ClientTerminal, emailClientService->terminal() ? QStringLiteral("true") : QStringLiteral("false")); 0040 } 0041 0042 delete emailSettings; 0043 0044 saveMimeTypeAssociation(QStringLiteral("x-scheme-handler/mailto"), storageId); 0045 }