Added RoutingPanel class and connected signals from/to panel.
[situare] / src / ui / routingpanel.cpp
1 #include "coordinates/geocoordinate.h"
2 #include "locationlistitem.h"
3 #include "locationlistview.h"
4 #include "extendedlistitemdelegate.h"
5 #include "routing/location.h"
6 #include "panelcommon.h"
7
8 #include "routingpanel.h"
9
10 RoutingPanel::RoutingPanel(QWidget *parent)
11     : QWidget(parent)
12 {
13     qDebug() << __PRETTY_FUNCTION__;
14
15     QVBoxLayout *routingLayout = new QVBoxLayout;
16     routingLayout->setContentsMargins(PANEL_MARGIN_LEFT, 0, PANEL_MARGIN_RIGHT, 0);
17     setLayout(routingLayout);
18
19     m_locationListView = new LocationListView(this);
20     m_locationListView->setItemDelegate(new ExtendedListItemDelegate(this));
21     routingLayout->addWidget(m_locationListView);
22
23     connect(m_locationListView, SIGNAL(locationItemClicked(GeoCoordinate&,GeoCoordinate&)),
24             this, SIGNAL(locationItemClicked(GeoCoordinate&,GeoCoordinate&)));
25 }
26
27 void RoutingPanel::populateLocationListView(QList<Location> &locations)
28 {
29     qDebug() << __PRETTY_FUNCTION__;
30
31     m_locationListView->clearList();
32
33     for (int i = 0; i < locations.size(); ++i) {
34         LocationListItem *item = new LocationListItem();
35         item->setLocationData(locations.at(i));
36         m_locationListView->addListItem(QString::number(i), item);
37     }
38
39     //openPanel();
40
41     if (locations.size() == 1) {
42         ListItem *item = m_locationListView->listItemAt(0);
43
44         if (item)
45             m_locationListView->listItemClicked(item);
46     }
47 }