File indexing completed on 2024-05-05 04:57:31
0001 /* 0002 This file is part of Choqok, the KDE micro-blogging client 0003 0004 SPDX-FileCopyrightText: 2010-2012 Andrey Esin <gmlastik@gmail.com> 0005 0006 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0007 */ 0008 0009 #include "imstatusconfig.h" 0010 0011 #include <QCheckBox> 0012 #include <QComboBox> 0013 #include <QPlainTextEdit> 0014 #include <QVBoxLayout> 0015 0016 #include <KAboutData> 0017 #include <KPluginFactory> 0018 0019 #include "imqdbus.h" 0020 #include "imstatussettings.h" 0021 0022 K_PLUGIN_CLASS_WITH_JSON(IMStatusConfig, "choqok_imstatus_config.json") 0023 0024 IMStatusConfig::IMStatusConfig(QWidget *parent, const QVariantList &args) : 0025 KCModule(parent, args) 0026 { 0027 QVBoxLayout *layout = new QVBoxLayout(this); 0028 QWidget *wd = new QWidget(this); 0029 wd->setObjectName(QLatin1String("mIMStatusCtl")); 0030 ui.setupUi(wd); 0031 addConfig(IMStatusSettings::self(), wd); 0032 layout->addWidget(wd); 0033 setButtons(KCModule::Apply); 0034 connect(ui.cfg_imclient, (void (QComboBox::*)(int))&QComboBox::currentIndexChanged, 0035 this, &IMStatusConfig::emitChanged); 0036 connect(ui.cfg_repeat, &QCheckBox::stateChanged, this, &IMStatusConfig::emitChanged); 0037 connect(ui.cfg_reply, &QCheckBox::stateChanged, this, &IMStatusConfig::emitChanged); 0038 connect(ui.cfg_templtate, &QPlainTextEdit::textChanged, this, &IMStatusConfig::emitChanged); 0039 imList = IMQDBus::scanForIMs(); 0040 ui.cfg_imclient->addItems(imList); 0041 } 0042 0043 IMStatusConfig::~IMStatusConfig() 0044 { 0045 } 0046 0047 void IMStatusConfig::load() 0048 { 0049 KCModule::load(); 0050 KConfigGroup grp(KSharedConfig::openConfig(), "IMStatus"); 0051 IMStatusSettings::self()->load(); 0052 ui.cfg_imclient->setCurrentIndex(imList.indexOf(IMStatusSettings::imclient())); 0053 ui.cfg_templtate->setPlainText(IMStatusSettings::templtate().isEmpty() ? 0054 QLatin1String("%username%: \"%status%\" at %time% from %client% (%url%)") : IMStatusSettings::templtate()); 0055 ui.cfg_reply->setChecked(IMStatusSettings::reply()); 0056 ui.cfg_repeat->setChecked(IMStatusSettings::repeat()); 0057 } 0058 0059 void IMStatusConfig::save() 0060 { 0061 KCModule::save(); 0062 IMStatusSettings::setImclient(ui.cfg_imclient->currentText()); 0063 IMStatusSettings::setTempltate(ui.cfg_templtate->toPlainText()); 0064 IMStatusSettings::setReply(ui.cfg_reply->isChecked()); 0065 IMStatusSettings::setRepeat(ui.cfg_repeat->isChecked()); 0066 IMStatusSettings::self()->save(); 0067 } 0068 0069 void IMStatusConfig::emitChanged() 0070 { 0071 Q_EMIT changed(true); 0072 } 0073 0074 #include "imstatusconfig.moc" 0075 #include "moc_imstatusconfig.cpp"