Modified FriendListItem.
[situare] / src / ui / listview.cpp
1 #include <QDebug>
2
3 #include "listitem.h"
4 #include "listview.h"
5
6 ListView::ListView(QWidget *parent)
7     : QListWidget(parent),
8       previousItem(0)
9 {
10     qDebug() << __PRETTY_FUNCTION__;
11
12     connect(this, SIGNAL(itemClicked(QListWidgetItem*)),
13             this, SLOT(listItemClicked(QListWidgetItem*)));
14 //    connect(this, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
15 //            this, SLOT(selectedChanged(QListWidgetItem*,QListWidgetItem*)));
16 }
17
18 void ListView::listItemClicked(QListWidgetItem *item)
19 {
20     qWarning() << __PRETTY_FUNCTION__;
21
22     ListItem *currentItem = static_cast<ListItem*>(item);
23
24     if (currentItem) {
25
26         if (previousItem == currentItem) {
27             currentItem->toggleHeight();
28         }
29         else {
30             if (previousItem)
31                 previousItem->setExpanded(false);
32
33             currentItem->setExpanded(true);
34         }
35
36         previousItem = currentItem;
37         emit listItemClicked(currentItem->id());
38     }
39 }
40
41 void ListView::selectedChanged(QListWidgetItem *current, QListWidgetItem *previous)
42 {
43     qWarning() << __PRETTY_FUNCTION__;
44
45     if (previous) {
46         ListItem *previousItem = static_cast<ListItem*>(previous);
47
48         if (previousItem)
49             previousItem->toggleHeight();
50     }
51
52     if (current) {
53         ListItem *currentItem = static_cast<ListItem*>(current);
54
55         if (currentItem)
56             currentItem->toggleHeight();
57     }
58 }