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 }