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 *************************************************************************
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. *
14 *************************************************************************
17 #include "kopetemessagehandler.h"
18 #include "kopetemessageevent.h"
25 class MessageHandler::Private
28 Private() : next(0) {}
32 MessageHandler::MessageHandler()
33 : QObject( 0 ), d( new Private
)
37 MessageHandler::~MessageHandler()
42 MessageHandler
*MessageHandler::next()
47 void MessageHandler::setNext( MessageHandler
*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
78 static FactoryList
&factories();
79 FactoryList::Iterator iterator
;
82 K_GLOBAL_STATIC(MessageHandlerFactory::FactoryList
, g_list
)
83 MessageHandlerFactory::FactoryList
& MessageHandlerFactory::Private::factories()
88 MessageHandlerFactory::MessageHandlerFactory()
91 d
->iterator
= Private::factories().insert( Private::factories().end(), (this));
94 MessageHandlerFactory::~MessageHandlerFactory()
96 Private::factories().erase( d
->iterator
);
100 MessageHandlerFactory::FactoryList
MessageHandlerFactory::messageHandlerFactories()
102 return Private::factories();
107 #include "kopetemessagehandler.moc"
109 // vim: set noet ts=4 sts=4 sw=4: