first release
[groupsms] / sms / contactwidget.h
1 #ifndef CONTACTWIDGET_H
2 #define CONTACTWIDGET_H
3
4 #include <QtGui>
5 #include <QVector>
6
7 #include <contactwidgetitem.h>
8 #include "itemobserver.h"
9
10 class ContactWidget : public QWidget, public ItemObserver
11 {
12     Q_OBJECT
13 public:
14     ContactWidget(QWidget *parent = 0);
15     ~ContactWidget();
16
17     // from ItemObserver
18     void addGroup(Item *item);
19     void addContact( Item *item );
20     void addContact( Item *item, const QString &groupname );
21     void addContact( ItemList items, const QString &groupname );
22     void addContact( ItemListPtr items, const QString &groupname );
23     void removeContact(Item *contact);
24     void removeAllContacts();
25     void refreshContactsList();
26
27     void addContact( Item *item, int groupindex );
28     void addContact(ContactWidgetItem *contact, int index);
29     void removeSelectedContact();
30
31     virtual void initContactWidget();
32     void setItemObserver();
33
34     QVector<ContactWidgetItem*>* getSelectedContacts();
35
36     void cleanSelectedContactList();
37
38     bool isValidRecycle();
39
40 protected:
41     void resizeEvent(QResizeEvent *event);
42     void paintEvent(QPaintEvent *event);
43     void update( QVector<ContactWidgetItem*>* items );
44
45     void cleanContactList();    
46
47     virtual void destroyContactWidget();
48
49     int findGroup(const QString &groupname);
50
51     void checkGroupPartOfSelected(ContactWidgetItem* item);
52
53 protected:
54     QVector<ContactWidgetItem*> *contact_items;
55     QVector<ContactWidgetItem*> *contact_items_selected;
56
57     int last_height;
58
59 Q_SIGNALS:
60     void validRecycle(bool valid);
61
62 public Q_SLOTS:
63     void update();
64     void contactItemSelected(ContactWidgetItem *item, bool selected);
65     void refreshContactList();
66     void resetContacts();
67 };
68
69 #endif // CONTACTWIDGET_H