984bc800723bb89a2dd1b2bf566c37af54f2d419
[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     }
38 }
39
40 void ListView::selectedChanged(QListWidgetItem *current, QListWidgetItem *previous)
41 {
42     qWarning() << __PRETTY_FUNCTION__;
43
44     if (previous) {
45         ListItem *previousItem = static_cast<ListItem*>(previous);
46
47         if (previousItem)
48             previousItem->toggleHeight();
49     }
50
51     if (current) {
52         ListItem *currentItem = static_cast<ListItem*>(current);
53
54         if (currentItem)
55             currentItem->toggleHeight();
56     }
57 }