Show invite menu in wlm chat window immediately
[kdenetwork.git] / kopete / libkopete / kopetemessagehandler.cpp
blob27029f42a136a1e5f6561a372fc5b736eb6b83df
1 /*
2 kopetemessagefilter.cpp - Kopete Message Filtering
4 Copyright (c) 2004 by Richard Smith <kde@metafoo.co.uk>
5 Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>
7 *************************************************************************
8 * *
9 * This library is free software; you can redistribute it and/or *
10 * modify it under the terms of the GNU Lesser General Public *
11 * License as published by the Free Software Foundation; either *
12 * version 2 of the License, or (at your option) any later version. *
13 * *
14 *************************************************************************
17 #include "kopetemessagehandler.h"
18 #include "kopetemessageevent.h"
20 #include <kglobal.h>
22 namespace Kopete
25 class MessageHandler::Private
27 public:
28 Private() : next(0) {}
29 MessageHandler *next;
32 MessageHandler::MessageHandler()
33 : QObject( 0 ), d( new Private )
37 MessageHandler::~MessageHandler()
39 delete d;
42 MessageHandler *MessageHandler::next()
44 return d->next;
47 void MessageHandler::setNext( MessageHandler *next )
49 d->next = next;
52 int MessageHandler::capabilities()
54 return d->next->capabilities();
57 void MessageHandler::handleMessageInternal( MessageEvent *event )
59 connect( event, SIGNAL( accepted(Kopete::MessageEvent*) ), this, SLOT( messageAccepted(Kopete::MessageEvent*) ) );
60 handleMessage( event );
63 void MessageHandler::handleMessage( MessageEvent *event )
65 messageAccepted( event );
68 void MessageHandler::messageAccepted( MessageEvent *event )
70 disconnect( event, SIGNAL( accepted(Kopete::MessageEvent*) ), this, SLOT( messageAccepted(Kopete::MessageEvent*) ) );
71 d->next->handleMessageInternal( event );
75 class MessageHandlerFactory::Private
77 public:
78 static FactoryList &factories();
79 FactoryList::Iterator iterator;
82 K_GLOBAL_STATIC(MessageHandlerFactory::FactoryList, g_list)
83 MessageHandlerFactory::FactoryList& MessageHandlerFactory::Private::factories()
85 return *g_list;
88 MessageHandlerFactory::MessageHandlerFactory()
89 : d( new Private )
91 d->iterator = Private::factories().insert( Private::factories().end(), (this));
94 MessageHandlerFactory::~MessageHandlerFactory()
96 Private::factories().erase( d->iterator );
97 delete d;
100 MessageHandlerFactory::FactoryList MessageHandlerFactory::messageHandlerFactories()
102 return Private::factories();
107 #include "kopetemessagehandler.moc"
109 // vim: set noet ts=4 sts=4 sw=4: