File indexing completed on 2024-06-09 05:29:35

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 "componentchooserterminal.h"
0011 
0012 #include <QDBusConnection>
0013 #include <QDBusMessage>
0014 
0015 #include <KQuickConfigModule>
0016 #include <KService>
0017 
0018 #include "terminal_settings.h"
0019 
0020 ComponentChooserTerminal::ComponentChooserTerminal(QObject *parent)
0021     : ComponentChooser(parent,
0022                        QString(),
0023                        QStringLiteral("TerminalEmulator"),
0024                        QStringLiteral("org.kde.konsole.desktop"),
0025                        i18n("Select default terminal emulator"))
0026 {
0027 }
0028 
0029 void ComponentChooserTerminal::load()
0030 {
0031     TerminalSettings terminalSettings;
0032     const auto preferredStorageId = terminalSettings.terminalService();
0033 
0034     m_model->load(m_mimeType, m_applicationCategory, m_defaultApplication, KService::KService::serviceByStorageId(preferredStorageId));
0035 
0036     m_index = m_model->currentIndex();
0037 
0038     m_currentApplication = currentStorageId();
0039 
0040     Q_EMIT indexChanged();
0041     Q_EMIT isDefaultsChanged();
0042 }
0043 
0044 void ComponentChooserTerminal::save()
0045 {
0046     const auto modelIndex = m_model->index(m_index, 0);
0047     const auto storageId = m_model->data(modelIndex, ApplicationModel::StorageId).toString();
0048     const auto execLine = m_model->data(modelIndex, ApplicationModel::ExecLine).toString();
0049 
0050     TerminalSettings terminalSettings;
0051     terminalSettings.setTerminalApplication(execLine);
0052     terminalSettings.setTerminalService(storageId);
0053     terminalSettings.save();
0054 
0055     m_currentApplication = storageId;
0056 }