• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kopete/libkopete

  • sources
  • kde-4.14
  • kdenetwork
  • kopete
  • libkopete
kopetemessagehandler.cpp
Go to the documentation of this file.
1 /*
2  kopetemessagefilter.cpp - Kopete Message Filtering
3 
4  Copyright (c) 2004 by Richard Smith <kde@metafoo.co.uk>
5  Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>
6 
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  *************************************************************************
15 */
16 
17 #include "kopetemessagehandler.h"
18 #include "kopetemessageevent.h"
19 
20 #include <kglobal.h>
21 
22 namespace Kopete
23 {
24 
25 class MessageHandler::Private
26 {
27 public:
28  Private() : next(0) {}
29  MessageHandler *next;
30 };
31 
32 MessageHandler::MessageHandler()
33  : QObject( 0 ), d( new Private )
34 {
35 }
36 
37 MessageHandler::~MessageHandler()
38 {
39  delete d;
40 }
41 
42 MessageHandler *MessageHandler::next()
43 {
44  return d->next;
45 }
46 
47 void MessageHandler::setNext( MessageHandler *next )
48 {
49  d->next = next;
50 }
51 
52 int MessageHandler::capabilities()
53 {
54  return d->next->capabilities();
55 }
56 
57 void MessageHandler::handleMessageInternal( MessageEvent *event )
58 {
59  connect( event, SIGNAL(accepted(Kopete::MessageEvent*)), this, SLOT(messageAccepted(Kopete::MessageEvent*)) );
60  handleMessage( event );
61 }
62 
63 void MessageHandler::handleMessage( MessageEvent *event )
64 {
65  messageAccepted( event );
66 }
67 
68 void MessageHandler::messageAccepted( MessageEvent *event )
69 {
70  disconnect( event, SIGNAL(accepted(Kopete::MessageEvent*)), this, SLOT(messageAccepted(Kopete::MessageEvent*)) );
71  d->next->handleMessageInternal( event );
72 }
73 
74 
75 class MessageHandlerFactory::Private
76 {
77 public:
78  static FactoryList &factories();
79  FactoryList::Iterator iterator;
80 };
81 
82 K_GLOBAL_STATIC(MessageHandlerFactory::FactoryList, g_list)
83 MessageHandlerFactory::FactoryList& MessageHandlerFactory::Private::factories()
84 {
85  return *g_list;
86 }
87 
88 MessageHandlerFactory::MessageHandlerFactory()
89  : d( new Private )
90 {
91  d->iterator = Private::factories().insert( Private::factories().end(), (this));
92 }
93 
94 MessageHandlerFactory::~MessageHandlerFactory()
95 {
96  if (g_list.isDestroyed())
97  return;
98  Private::factories().erase( d->iterator );
99  delete d;
100 }
101 
102 MessageHandlerFactory::FactoryList MessageHandlerFactory::messageHandlerFactories()
103 {
104  return Private::factories();
105 }
106 
107 }
108 
109 #include "kopetemessagehandler.moc"
110 
111 // vim: set noet ts=4 sts=4 sw=4:
Kopete::MessageHandler::MessageHandler
MessageHandler()
Definition: kopetemessagehandler.cpp:32
Kopete::MessageEvent
Definition: kopetemessageevent.h:41
Kopete::MessageHandler::~MessageHandler
virtual ~MessageHandler()=0
Definition: kopetemessagehandler.cpp:37
Kopete::MessageHandlerFactory::~MessageHandlerFactory
virtual ~MessageHandlerFactory()
Destroys the MessageHandlerFactory and removes it from the list of factories.
Definition: kopetemessagehandler.cpp:94
Kopete::MessageHandlerFactory::FactoryList
QLinkedList< MessageHandlerFactory * > FactoryList
Definition: kopetemessagehandler.h:126
Kopete::MessageHandler::setNext
void setNext(MessageHandler *next)
Definition: kopetemessagehandler.cpp:47
Kopete::MessageHandler::capabilities
virtual int capabilities()
Gets the rich-text capabilities of this message handling object.
Definition: kopetemessagehandler.cpp:52
Kopete::MessageHandlerFactory::MessageHandlerFactory
MessageHandlerFactory()
Constructs a MessageHandlerFactory, and adds it to the list of factories considered when creating a M...
Definition: kopetemessagehandler.cpp:88
QObject::disconnect
bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
Kopete::MessageHandler::next
MessageHandler * next()
Definition: kopetemessagehandler.cpp:42
QLinkedList
QObject
Kopete::MessageHandler::handleMessageInternal
void handleMessageInternal(MessageEvent *event)
Definition: kopetemessagehandler.cpp:57
Kopete::MessageHandler::handleMessage
virtual void handleMessage(MessageEvent *event)
Performs any processing necessary on the message.
Definition: kopetemessagehandler.cpp:63
Kopete::MessageHandlerFactory::messageHandlerFactories
static FactoryList messageHandlerFactories()
Definition: kopetemessagehandler.cpp:102
kopetemessageevent.h
Kopete::MessageHandler
Definition: kopetemessagehandler.h:44
kopetemessagehandler.h
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QLinkedList::Iterator
typedef Iterator
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:29:19 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kopete/libkopete

Skip menu "kopete/libkopete"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal