summaryrefslogtreecommitdiffstats
path: root/kopete/libkopete/kopeteblacklister.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kopete/libkopete/kopeteblacklister.cpp')
-rw-r--r--kopete/libkopete/kopeteblacklister.cpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/kopete/libkopete/kopeteblacklister.cpp b/kopete/libkopete/kopeteblacklister.cpp
new file mode 100644
index 00000000..e249d736
--- /dev/null
+++ b/kopete/libkopete/kopeteblacklister.cpp
@@ -0,0 +1,109 @@
+/*
+ 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"