Show invite menu in wlm chat window immediately
[kdenetwork.git] / kopete / libkopete / kopetecontactlistelement.cpp
blob23bdebe0ce0b31900713849493ca7d7f9c5929f3
1 /*
2 kopeteplugindataobject.cpp - Kopete Plugin Data Object
4 Copyright (c) 2003-2005 by Olivier Goffart <ogoffart@kde.org>
5 Copyright (c) 2003 by Martijn Klingens <klingens@kde.org>
6 Copyright (c) 2004 by Richard Smith <kde@metafoo.co.uk>
8 Kopete (c) 2002-2005 by the Kopete developers <kopete-devel@kde.org>
10 *************************************************************************
11 * *
12 * This library is free software; you can redistribute it and/or *
13 * modify it under the terms of the GNU Lesser General Public *
14 * License as published by the Free Software Foundation; either *
15 * version 2 of the License, or (at your option) any later version. *
16 * *
17 *************************************************************************
20 #include "kopetecontactlistelement.h"
22 #include <kconfig.h>
23 #include <kdebug.h>
24 #include <kglobal.h>
26 #include "kopeteplugin.h"
28 namespace Kopete {
30 class ContactListElement::Private
32 public:
33 ContactListElement::PluginDataMap pluginData;
34 ContactListElement::IconMap icons;
35 bool useCustomIcon;
36 bool loading;
39 ContactListElement::ContactListElement( QObject *parent )
40 : PropertyContainer( parent ), d(new Private())
42 d->useCustomIcon = false;
43 d->loading = false;
44 #if 0 //TODO
45 connect( Kopete::Global::onlineStatusIconCache(), SIGNAL( iconsChanged() ), SIGNAL( iconAppearanceChanged() ) );
46 #endif
49 ContactListElement::~ContactListElement()
51 delete d;
54 void ContactListElement::setLoading( bool value )
56 d->loading = value;
59 bool ContactListElement::loading() const
61 return d->loading;
64 void ContactListElement::setPluginData( Plugin *plugin, const QMap<QString, QString> &pluginData )
66 setPluginData( plugin->pluginId(), pluginData );
69 void ContactListElement::setPluginData( const QString &pluginId, const QMap<QString, QString> &pluginData )
71 if ( pluginData.isEmpty() )
73 d->pluginData.remove( pluginId );
74 return;
77 d->pluginData[ pluginId ] = pluginData;
79 emit pluginDataChanged();
82 void ContactListElement::setPluginData( Plugin *p, const QString &key, const QString &value )
84 d->pluginData[ p->pluginId() ][ key ] = value;
86 emit pluginDataChanged();
89 QMap<QString, QString> ContactListElement::pluginData( Plugin *plugin ) const
91 if ( !d->pluginData.contains( plugin->pluginId() ) )
92 return QMap<QString, QString>();
94 return d->pluginData[ plugin->pluginId() ];
97 QString ContactListElement::pluginData( Plugin *plugin, const QString &key ) const
99 if ( !d->pluginData.contains( plugin->pluginId() ) || !d->pluginData[ plugin->pluginId() ].contains( key ) )
100 return QString();
102 return d->pluginData[ plugin->pluginId() ][ key ];
105 const ContactListElement::PluginDataMap ContactListElement::pluginData() const
107 return d->pluginData;
110 const ContactListElement::IconMap ContactListElement::icons() const
112 return d->icons;
115 QString ContactListElement::icon( ContactListElement::IconState state ) const
117 if ( d->icons.contains( state ) )
118 return d->icons[state];
120 return d->icons[ None ];
123 void ContactListElement::setIcon( const QString& icon , ContactListElement::IconState state )
125 if ( icon.isNull() )
126 d->icons.remove( state );
127 else
128 d->icons[ state ] = icon;
130 emit iconChanged( state, icon );
131 emit iconAppearanceChanged();
134 bool ContactListElement::useCustomIcon() const
136 return d->useCustomIcon;
139 void ContactListElement::setUseCustomIcon( bool useCustomIcon )
141 if ( d->useCustomIcon != useCustomIcon )
143 d->useCustomIcon = useCustomIcon;
144 emit useCustomIconChanged( useCustomIcon );
148 } //END namespace Kopete
150 #include "kopetecontactlistelement.moc"