File indexing completed on 2024-05-12 04:57:45
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 0010 #include "twitgooconfig.h" 0011 0012 #include <QCheckBox> 0013 #include <QComboBox> 0014 #include <QVBoxLayout> 0015 0016 #include <KAboutData> 0017 #include <KLocalizedString> 0018 #include <KMessageBox> 0019 #include <KPluginFactory> 0020 0021 #include "accountmanager.h" 0022 0023 #include "twitgoosettings.h" 0024 0025 K_PLUGIN_CLASS_WITH_JSON(TwitgooConfig, "choqok_twitgoo_config.json") 0026 0027 TwitgooConfig::TwitgooConfig(QWidget *parent, const QVariantList &) 0028 : KCModule(parent) 0029 { 0030 QVBoxLayout *layout = new QVBoxLayout(this); 0031 QWidget *wd = new QWidget(this); 0032 wd->setObjectName(QLatin1String("mTwitgooCtl")); 0033 ui.setupUi(wd); 0034 addConfig(TwitgooSettings::self(), wd); 0035 layout->addWidget(wd); 0036 connect(ui.cfg_accountsList, (void (QComboBox::*)(int))&QComboBox::currentIndexChanged, 0037 this, &TwitgooConfig::emitChanged); 0038 connect(ui.cfg_directLink, &QCheckBox::stateChanged, this, &TwitgooConfig::emitChanged); 0039 } 0040 0041 TwitgooConfig::~TwitgooConfig() 0042 { 0043 } 0044 0045 void TwitgooConfig::load() 0046 { 0047 KCModule::load(); 0048 QList<Choqok::Account *> list = Choqok::AccountManager::self()->accounts(); 0049 for (Choqok::Account *acc: list) { 0050 if (acc->inherits("TwitterAccount")) { 0051 ui.cfg_accountsList->addItem(acc->alias()); 0052 } 0053 } 0054 TwitgooSettings::self()->load(); 0055 ui.cfg_accountsList->setCurrentText(TwitgooSettings::alias()); 0056 ui.cfg_directLink->setChecked(TwitgooSettings::directLink()); 0057 } 0058 0059 void TwitgooConfig::save() 0060 { 0061 if (ui.cfg_accountsList->currentIndex() > -1) { 0062 TwitgooSettings::setAlias(ui.cfg_accountsList->currentText()); 0063 //qDebug() << TwitgooSettings::alias(); 0064 } else { 0065 TwitgooSettings::setAlias(QString()); 0066 KMessageBox::error(this, i18n("You have to configure at least one Twitter account to use this plugin.")); 0067 } 0068 TwitgooSettings::setDirectLink(ui.cfg_directLink->isChecked()); 0069 TwitgooSettings::self()->save(); 0070 KCModule::save(); 0071 } 0072 0073 void TwitgooConfig::emitChanged() 0074 { 0075 Q_EMIT changed(true); 0076 } 0077 0078 #include "moc_twitgooconfig.cpp" 0079 #include "twitgooconfig.moc"