File indexing completed on 2024-04-28 05:49:10

0001 /* This file is part of the KDE project
0002    SPDX-FileCopyrightText: 2014 Martin Sandsmark <martin.sandsmark@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "replicodeconfigpage.h"
0008 #include "replicodeconfig.h"
0009 #include <KConfig>
0010 #include <KConfigGroup>
0011 #include <KSharedConfig>
0012 #include <KUrlRequester>
0013 
0014 #include <KLocalizedString>
0015 #include <QGridLayout>
0016 #include <QLabel>
0017 
0018 ReplicodeConfigPage::ReplicodeConfigPage(QWidget *parent)
0019     : KTextEditor::ConfigPage(parent)
0020     , m_config(new ReplicodeConfig(this))
0021 {
0022     QGridLayout *gridlayout = new QGridLayout;
0023     setLayout(gridlayout);
0024     gridlayout->addWidget(new QLabel(i18n("Path to replicode executor:")), 0, 0);
0025 
0026     m_requester = new KUrlRequester;
0027     m_requester->setMode(KFile::File | KFile::ExistingOnly);
0028     gridlayout->addWidget(m_requester, 0, 1);
0029 
0030     gridlayout->addWidget(m_config, 1, 0, 1, 2);
0031 
0032     reset();
0033 
0034     connect(m_requester, &KUrlRequester::textChanged, this, &ReplicodeConfigPage::changed);
0035 }
0036 
0037 QString ReplicodeConfigPage::name() const
0038 {
0039     return i18n("Replicode");
0040 }
0041 
0042 QString ReplicodeConfigPage::fullName() const
0043 {
0044     return i18n("Replicode configuration");
0045 }
0046 
0047 QIcon ReplicodeConfigPage::icon() const
0048 {
0049     return QIcon::fromTheme(QLatin1String("code-block"));
0050 }
0051 
0052 void ReplicodeConfigPage::apply()
0053 {
0054     KConfigGroup config(KSharedConfig::openConfig(), QStringLiteral("Replicode"));
0055     config.writeEntry("replicodePath", m_requester->text());
0056     m_config->save();
0057 }
0058 
0059 void ReplicodeConfigPage::reset()
0060 {
0061     KConfigGroup config(KSharedConfig::openConfig(), QStringLiteral("Replicode"));
0062     m_requester->setText(config.readEntry<QString>("replicodePath", QString()));
0063     m_config->load();
0064 }
0065 
0066 void ReplicodeConfigPage::defaults()
0067 {
0068     m_requester->setText(QString());
0069     m_config->reset();
0070 }
0071 
0072 #include "moc_replicodeconfigpage.cpp"