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

kopete/kopete

  • sources
  • kde-4.12
  • kdenetwork
  • kopete
  • kopete
  • contactlist
contactlisttreemodel_p.h
Go to the documentation of this file.
1 /*
2  Kopete Contactlist Model Private Items
3 
4  Copyright 2009 by Roman Jarosz <kedgedev@gmail.com>
5 
6  Kopete (c) 2009 by the Kopete developers <kopete-devel@kde.org>
7 
8  *************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  *************************************************************************
16 */
17 
18 #ifndef KOPETE_UI_CONTACTLISTTREEMODEL_P_H
19 #define KOPETE_UI_CONTACTLISTTREEMODEL_P_H
20 
21 #include <QPointer>
22 
23 namespace Kopete {
24 
25 class Group;
26 class MetaContact;
27 
28 namespace UI {
29 
30 class MetaContactModelItem;
31 class GroupModelItem;
32 class ContactListModelItem;
33 
34 class ContactListModelItem
35 {
36 public:
37  ContactListModelItem() : mParent( 0 ) {}
38  virtual ~ContactListModelItem() {}
39 
40  virtual bool isGroup() const
41  {
42  return false;
43  }
44 
45  virtual int count() const
46  {
47  return 0;
48  }
49 
50  virtual int metaContactCount() const
51  {
52  return 0;
53  }
54 
55  virtual bool hasChildren() const
56  {
57  return false;
58  }
59 
60  inline GroupModelItem* parent() const
61  {
62  return mParent;
63  }
64 
65  int index() const;
66 
67  bool remove();
68 
69  virtual void sort( bool (*lessThan)(const ContactListModelItem*, const ContactListModelItem*) )
70  {
71  Q_UNUSED( lessThan );
72  }
73 
74 protected:
75  friend class GroupModelItem;
76  GroupModelItem* mParent;
77 };
78 
79 class MetaContactModelItem : public ContactListModelItem
80 {
81 public:
82  MetaContactModelItem( Kopete::MetaContact* metaContact )
83  : ContactListModelItem(), mMetaContact( metaContact )
84  {}
85 
86  inline Kopete::MetaContact* metaContact() const
87  {
88  return mMetaContact;
89  }
90 
91 private:
92  QPointer <Kopete::MetaContact> mMetaContact;
93 };
94 
95 class GroupModelItem : public ContactListModelItem
96 {
97 public:
98  GroupModelItem( Kopete::Group* group )
99  : ContactListModelItem(), mGroup( group )
100  {}
101 
102  virtual ~GroupModelItem()
103  {
104  qDeleteAll( mItems );
105  }
106 
107  virtual bool isGroup() const
108  {
109  return true;
110  }
111 
112  virtual int count() const
113  {
114  return mItems.count();
115  }
116 
117  virtual int metaContactCount() const;
118 
119  virtual bool hasChildren() const
120  {
121  return !mItems.isEmpty();
122  }
123 
124  inline Kopete::Group* group() const
125  {
126  return mGroup;
127  }
128 
129  inline void append( ContactListModelItem* item )
130  {
131  item->mParent = this;
132  mItems.append( item );
133  }
134 
135  inline void insert( int i, ContactListModelItem* item )
136  {
137  item->mParent = this;
138  mItems.insert( i, item );
139  }
140 
141  inline ContactListModelItem* at( int i ) const
142  {
143  return mItems.at( i );
144  }
145 
146  inline QList<ContactListModelItem*> items() const
147  {
148  return mItems;
149  }
150 
151  virtual void sort( bool (*lessThan)(const ContactListModelItem*, const ContactListModelItem*) );
152 
153 protected:
154  friend class ContactListModelItem;
155  int indexOf( const ContactListModelItem* item ) const;
156 
157  inline void removeAt( int i )
158  {
159  mItems.removeAt( i );
160  }
161 
162 private:
163  QPointer <Kopete::Group> mGroup;
164  QList<ContactListModelItem*> mItems;
165 };
166 
167 }
168 
169 }
170 
171 #endif
172 //kate: tab-width 4
Kopete::UI::MetaContactModelItem
Definition: contactlisttreemodel_p.h:79
Kopete::UI::ContactListModelItem::~ContactListModelItem
virtual ~ContactListModelItem()
Definition: contactlisttreemodel_p.h:38
Kopete::UI::ContactListModelItem::sort
virtual void sort(bool(*lessThan)(const ContactListModelItem *, const ContactListModelItem *))
Definition: contactlisttreemodel_p.h:69
Kopete::UI::ContactListModelItem::isGroup
virtual bool isGroup() const
Definition: contactlisttreemodel_p.h:40
Kopete::UI::GroupModelItem::~GroupModelItem
virtual ~GroupModelItem()
Definition: contactlisttreemodel_p.h:102
Kopete::UI::MetaContactModelItem::metaContact
Kopete::MetaContact * metaContact() const
Definition: contactlisttreemodel_p.h:86
Kopete::UI::ContactListModelItem::ContactListModelItem
ContactListModelItem()
Definition: contactlisttreemodel_p.h:37
Kopete::UI::GroupModelItem::at
ContactListModelItem * at(int i) const
Definition: contactlisttreemodel_p.h:141
Kopete::UI::ContactListModelItem::count
virtual int count() const
Definition: contactlisttreemodel_p.h:45
Kopete::UI::GroupModelItem::insert
void insert(int i, ContactListModelItem *item)
Definition: contactlisttreemodel_p.h:135
Kopete::UI::ContactListModelItem::index
int index() const
Definition: contactlisttreemodel.cpp:819
Kopete::UI::ContactListModelItem
Definition: contactlisttreemodel_p.h:34
Kopete::Items::MetaContact
Definition: kopeteitembase.h:57
Kopete::Items::Group
Definition: kopeteitembase.h:57
Kopete::UI::GroupModelItem::isGroup
virtual bool isGroup() const
Definition: contactlisttreemodel_p.h:107
Kopete::UI::ContactListModelItem::parent
GroupModelItem * parent() const
Definition: contactlisttreemodel_p.h:60
Kopete::UI::GroupModelItem::sort
virtual void sort(bool(*lessThan)(const ContactListModelItem *, const ContactListModelItem *))
Definition: contactlisttreemodel.cpp:850
Kopete::UI::GroupModelItem::append
void append(ContactListModelItem *item)
Definition: contactlisttreemodel_p.h:129
Kopete::UI::GroupModelItem::hasChildren
virtual bool hasChildren() const
Definition: contactlisttreemodel_p.h:119
Kopete::UI::GroupModelItem::items
QList< ContactListModelItem * > items() const
Definition: contactlisttreemodel_p.h:146
Kopete::UI::GroupModelItem::group
Kopete::Group * group() const
Definition: contactlisttreemodel_p.h:124
Kopete::UI::GroupModelItem::count
virtual int count() const
Definition: contactlisttreemodel_p.h:112
Kopete::UI::MetaContactModelItem::MetaContactModelItem
MetaContactModelItem(Kopete::MetaContact *metaContact)
Definition: contactlisttreemodel_p.h:82
Kopete::UI::GroupModelItem::GroupModelItem
GroupModelItem(Kopete::Group *group)
Definition: contactlisttreemodel_p.h:98
Kopete::UI::GroupModelItem::metaContactCount
virtual int metaContactCount() const
Definition: contactlisttreemodel.cpp:838
Kopete::UI::ContactListModelItem::mParent
GroupModelItem * mParent
Definition: contactlisttreemodel_p.h:76
Kopete::UI::ContactListModelItem::metaContactCount
virtual int metaContactCount() const
Definition: contactlisttreemodel_p.h:50
Kopete::UI::GroupModelItem::indexOf
int indexOf(const ContactListModelItem *item) const
Definition: contactlisttreemodel.cpp:858
Kopete::UI::GroupModelItem
Definition: contactlisttreemodel_p.h:95
Kopete::UI::GroupModelItem::removeAt
void removeAt(int i)
Definition: contactlisttreemodel_p.h:157
Kopete::UI::ContactListModelItem::hasChildren
virtual bool hasChildren() const
Definition: contactlisttreemodel_p.h:55
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:40 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kopete/kopete

Skip menu "kopete/kopete"
  • 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