You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdenetwork/kopete/libkopete/kopeteblacklister.cpp

110 lines
2.5 KiB

/*
kopeteblacklister.cpp - Kopete BlackLister
Copyright (c) 2004 by Roie Kerstein <sf_kersteinroie@bezeqint.net>
*************************************************************************
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
*************************************************************************
*/
#include "kopeteblacklister.h"
#include "kopetecontact.h"
#include <tdeconfig.h>
#include <kglobal.h>
#include <tqstringlist.h>
namespace Kopete
{
class BlackLister::Private
{
public:
TQStringList blacklist;
TQString owner;
TQString protocol;
};
BlackLister::BlackLister(const TQString &protocolId, const TQString &accountId, TQObject *parent, const char *name)
: TQObject(parent, name), d( new Private )
{
TDEConfig *config = TDEGlobal::config();
d->owner = accountId;
d->protocol = protocolId;
config->setGroup("BlackLister");
d->blacklist = config->readListEntry( d->protocol + TQString::fromLatin1("_") + d->owner );
}
BlackLister::~BlackLister()
{
delete d;
}
bool BlackLister::isBlocked(const TQString &contactId)
{
return (d->blacklist.find( contactId ) != d->blacklist.end() );
}
bool BlackLister::isBlocked(Contact *contact)
{
return isBlocked(contact->contactId());
}
void BlackLister::addContact(const TQString &contactId)
{
if( !isBlocked(contactId) )
{
d->blacklist += contactId;
saveToDisk();
emit contactAdded( contactId );
}
}
void BlackLister::addContact(Contact *contact)
{
TQString temp = contact->contactId();
addContact( temp );
}
void BlackLister::removeContact(Contact *contact)
{
TQString temp = contact->contactId();
removeContact( temp );
}
void BlackLister::saveToDisk()
{
TDEConfig *config = TDEGlobal::config();
config->setGroup("BlackLister");
config->writeEntry( d->protocol + TQString::fromLatin1("_") + d->owner, d->blacklist );
config->sync();
}
void BlackLister::removeContact(const TQString &contactId)
{
if( isBlocked(contactId) )
{
d->blacklist.remove( contactId );
saveToDisk();
emit contactRemoved( contactId );
}
}
}
#include "kopeteblacklister.moc"