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 }