diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /knode/knnntpaccount.cpp | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'knode/knnntpaccount.cpp')
-rw-r--r-- | knode/knnntpaccount.cpp | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/knode/knnntpaccount.cpp b/knode/knnntpaccount.cpp new file mode 100644 index 000000000..22ff904b2 --- /dev/null +++ b/knode/knnntpaccount.cpp @@ -0,0 +1,229 @@ +/* + KNode, the KDE newsreader + Copyright (c) 1999-2005 the KNode authors. + See file AUTHORS for details + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US +*/ + +#include <ksimpleconfig.h> +#include <kstandarddirs.h> +#include <kdebug.h> + +#include "utilities.h" +#include "kncollectionviewitem.h" +#include "knnntpaccount.h" +#include "knconfig.h" +#include "knconfigmanager.h" +#include "knconfigwidgets.h" +#include "kngroupmanager.h" +#include "knglobals.h" + + +KNNntpAccountIntervalChecking::KNNntpAccountIntervalChecking(KNNntpAccount* account) : t_imer(0) { + a_ccount = account; +} + + + +KNNntpAccountIntervalChecking::~KNNntpAccountIntervalChecking() +{ + if (t_imer) deinstallTimer(); + a_ccount = 0; +} + + + +void KNNntpAccountIntervalChecking::installTimer() +{ + if (a_ccount->checkInterval() <= 0) return; + if(!t_imer) + { + t_imer = new QTimer(); + connect(t_imer,SIGNAL(timeout()),this,SLOT(slotCheckNews())); + } + else + { + t_imer->stop(); + } + t_imer->start(a_ccount->checkInterval()*60000); +} + + + +void KNNntpAccountIntervalChecking::deinstallTimer() +{ + delete t_imer; + t_imer = 0; +} + + + +void KNNntpAccountIntervalChecking::slotCheckNews() +{ + knGlobals.groupManager()->checkAll(a_ccount, true); +} + + + +KNNntpAccount::KNNntpAccount() + : KNCollection(0), KNServerInfo(), i_dentity(0), f_etchDescriptions(true), w_asOpen(false), i_ntervalChecking(false), c_heckInterval(10) +{ + l_astNewFetch = QDate::currentDate(); + a_ccountIntervalChecking = new KNNntpAccountIntervalChecking(this); + mCleanupConf = new KNConfig::Cleanup( false ); +} + + +KNNntpAccount::~KNNntpAccount() +{ + delete a_ccountIntervalChecking; + delete i_dentity; + delete mCleanupConf; +} + + +// tries to read information, returns false if it fails to do so +bool KNNntpAccount::readInfo(const QString &confPath) +{ + KSimpleConfig conf(confPath); + + n_ame = conf.readEntry("name"); + //u_nsentCount = conf.readNumEntry("unsentCnt", 0); + f_etchDescriptions = conf.readBoolEntry("fetchDescriptions", true); + l_astNewFetch = conf.readDateTimeEntry("lastNewFetch").date(); + w_asOpen = conf.readBoolEntry("listItemOpen", false); + u_seDiskCache = conf.readBoolEntry("useDiskCache", false); + i_ntervalChecking=conf.readBoolEntry("intervalChecking", false); + c_heckInterval=conf.readNumEntry("checkInterval", 10); + KNServerInfo::readConf(&conf); + + startTimer(); + + i_dentity=new KNConfig::Identity(false); + i_dentity->loadConfig(&conf); + if(!i_dentity->isEmpty()) { + kdDebug(5003) << "KNGroup::readInfo(const QString &confPath) : using alternative user for " << n_ame << endl; + } else { + delete i_dentity; + i_dentity=0; + } + + mCleanupConf->loadConfig( &conf ); + + if (n_ame.isEmpty() || s_erver.isEmpty() || i_d == -1) + return false; + else + return true; +} + + +void KNNntpAccount::saveInfo() +{ + QString dir(path()); + if (dir.isNull()) + return; + + KSimpleConfig conf(dir+"info"); + + conf.writeEntry("name", n_ame); + //conf.writeEntry("unsentCnt", u_nsentCount); + conf.writeEntry("fetchDescriptions", f_etchDescriptions); + conf.writeEntry("lastNewFetch", QDateTime(l_astNewFetch)); + if(l_istItem) + conf.writeEntry("listItemOpen", l_istItem->isOpen()); + conf.writeEntry("useDiskCache", u_seDiskCache); + conf.writeEntry("intervalChecking", i_ntervalChecking); + conf.writeEntry("checkInterval", c_heckInterval); + + KNServerInfo::saveConf(&conf); // save not KNNntpAccount specific settings + + if(i_dentity) + i_dentity->saveConfig(&conf); + else if(conf.hasKey("Email")) { + conf.deleteEntry("Name", false); + conf.deleteEntry("Email", false); + conf.deleteEntry("Reply-To", false); + conf.deleteEntry("Mail-Copies-To", false); + conf.deleteEntry("Org", false); + conf.deleteEntry("UseSigFile", false); + conf.deleteEntry("UseSigGenerator", false); + conf.deleteEntry("sigFile", false); + conf.deleteEntry("sigText", false); + } + + mCleanupConf->saveConfig( &conf ); +} + + +/*void KNNntpAccount::syncInfo() +{ + QString dir(path()); + if (dir.isNull()) + return; + KSimpleConfig conf(dir+"info"); + conf.writeEntry("unsentCnt", u_nsentCount); +}*/ + + +QString KNNntpAccount::path() +{ + QString dir(locateLocal("data","knode/")+QString("nntp.%1/").arg(i_d)); + if (dir.isNull()) + KNHelper::displayInternalFileError(); + return (dir); +} + + +bool KNNntpAccount::editProperties(QWidget *parent) +{ + if(!i_dentity) i_dentity=new KNConfig::Identity(false); + KNConfig::NntpAccountConfDialog *d = new KNConfig::NntpAccountConfDialog(this, parent); + + bool ret=false; + if (d->exec()) { + updateListItem(); + ret=true; + } + + if(i_dentity->isEmpty()) { + delete i_dentity; + i_dentity=0; + } + + delete d; + return ret; +} + +void KNNntpAccount::startTimer() +{ + if ( (i_ntervalChecking == true) && (c_heckInterval > 0) ) + { + a_ccountIntervalChecking->installTimer(); + } + else + { + a_ccountIntervalChecking->deinstallTimer(); + } +} + +void KNNntpAccount::setCheckInterval(int c) +{ + c_heckInterval = c; + startTimer(); +} + +KNConfig::Cleanup *KNNntpAccount::activeCleanupConfig() const +{ + if (cleanupConfig()->useDefault()) + return knGlobals.configManager()->cleanup(); + return cleanupConfig(); +} + +#include "knnntpaccount.moc" |