File indexing completed on 2024-05-12 05:11:20

0001 /*
0002  * SPDX-FileCopyrightText: 2015 Daniel Vrátil <dvratil@redhat.com>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-or-later
0005  *
0006  */
0007 
0008 #include "pimcontactsrunnerconfig.h"
0009 #include <KConfigGroup>
0010 #include <KLocalizedString>
0011 #include <KPluginFactory>
0012 #include <KSharedConfig>
0013 #include <QCheckBox>
0014 #include <QVBoxLayout>
0015 
0016 K_PLUGIN_FACTORY(PIMContactsRunnerConfigFactory, registerPlugin<PIMContactsRunnerConfig>();)
0017 PIMContactsRunnerConfig::PIMContactsRunnerConfig(QObject *parent, const KPluginMetaData &data)
0018     : KCModule(parent, data)
0019     , mQueryCompletionCheckBox(new QCheckBox(i18n("Search in contacts indexed from sent and received emails too"), widget()))
0020 {
0021     auto vbox = new QVBoxLayout(widget());
0022 
0023     connect(mQueryCompletionCheckBox, &QCheckBox::stateChanged, this, &PIMContactsRunnerConfig::configChanged);
0024 
0025     vbox->addWidget(mQueryCompletionCheckBox);
0026 
0027     load();
0028 }
0029 
0030 void PIMContactsRunnerConfig::configChanged()
0031 {
0032     markAsChanged();
0033 }
0034 
0035 void PIMContactsRunnerConfig::load()
0036 {
0037     KCModule::load();
0038 
0039     const KSharedConfig::Ptr cfg = KSharedConfig::openConfig(QStringLiteral("krunnerrc"));
0040     KConfigGroup grp = cfg->group(QStringLiteral("Runners"));
0041     grp = KConfigGroup(&grp, QStringLiteral("PIM Contacts Search Runner"));
0042 
0043     mQueryCompletionCheckBox->setChecked(grp.readEntry(QStringLiteral("queryAutocompleter"), true));
0044 
0045     setNeedsSave(false);
0046 }
0047 
0048 void PIMContactsRunnerConfig::save()
0049 {
0050     KCModule::save();
0051 
0052     const KSharedConfig::Ptr cfg = KSharedConfig::openConfig(QStringLiteral("krunnerrc"));
0053     KConfigGroup grp = cfg->group(QStringLiteral("Runners"));
0054     grp = KConfigGroup(&grp, QStringLiteral("PIM Contacts Search Runner"));
0055 
0056     grp.writeEntry(QStringLiteral("queryAutocompleter"), mQueryCompletionCheckBox->isChecked());
0057 
0058     cfg->sync();
0059     setNeedsSave(false);
0060 }
0061 
0062 void PIMContactsRunnerConfig::defaults()
0063 {
0064     KCModule::defaults();
0065 
0066     mQueryCompletionCheckBox->setChecked(true);
0067     setNeedsSave(true);
0068 }
0069 
0070 #include "pimcontactsrunnerconfig.moc"
0071 
0072 #include "moc_pimcontactsrunnerconfig.cpp"