File indexing completed on 2024-05-26 05:37:00

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     SPDX-FileCopyrightText: 2022 Méven Car <meven@kde.org>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #include "componentchooseremail.h"
0011 
0012 #include <KEMailSettings>
0013 #include <KService>
0014 
0015 ComponentChooserEmail::ComponentChooserEmail(QObject *parent)
0016     : ComponentChooser(parent,
0017                        QStringLiteral("x-scheme-handler/mailto"),
0018                        QStringLiteral("Email"),
0019                        QStringLiteral("org.kde.kmail2.desktop"),
0020                        i18n("Select default e-mail client"))
0021 {
0022 }
0023 
0024 static const QStringList emailMimetypes{"x-scheme-handler/mailto"};
0025 
0026 QStringList ComponentChooserEmail::mimeTypes() const
0027 {
0028     return emailMimetypes;
0029 }
0030 
0031 void ComponentChooserEmail::save()
0032 {
0033     const auto storageId = currentStorageId();
0034 
0035     const KService::Ptr emailClientService = KService::serviceByStorageId(storageId);
0036     if (!emailClientService) {
0037         return;
0038     }
0039     const bool kmailSelected = storageId == QStringLiteral("org.kde.kmail2.desktop");
0040 
0041     KEMailSettings *emailSettings = new KEMailSettings();
0042 
0043     if (kmailSelected) {
0044         emailSettings->setSetting(KEMailSettings::ClientProgram, QString());
0045         emailSettings->setSetting(KEMailSettings::ClientTerminal, QStringLiteral("false"));
0046     } else {
0047         emailSettings->setSetting(KEMailSettings::ClientProgram, storageId);
0048         emailSettings->setSetting(KEMailSettings::ClientTerminal, emailClientService->terminal() ? QStringLiteral("true") : QStringLiteral("false"));
0049     }
0050 
0051     saveMimeTypeAssociations(storageId, emailMimetypes);
0052 }