Updated packaging files in debian folder.
[ptas] / zouba / src / gui / routeresultwidget.cpp
1 #include "routeresultwidget.h"
2 #include "ui_routeresultwidget.h"
3
4 #include "routelegwidget.h"
5 #include "routeoneitemwidget.h"
6
7 #include "src/logic/routeleg.h"
8
9 #include <QLabel>
10 #include <QList>
11 #include <QScrollArea>
12 #include <QScrollBar>
13 #include <QDebug>
14 #include <QApplication>
15 #include <QDesktopWidget>
16 #include <QTime>
17
18 RouteResultWidget::RouteResultWidget(QWidget *parent) :
19     QMainWindow(parent),
20     ui(new Ui::RouteResultWidget),
21     routes()
22 {
23
24     ui->setupUi(this);
25 #ifdef Q_WS_MAEMO_5
26     this->setAttribute(Qt::WA_Maemo5StackedWindow);
27     //connect(QApplication::desktop(), SIGNAL(resized(int)), SLOT(rotationEvent()));
28     //this->setObjectName(this->parent()->objectName());
29     //this->resize(800, 480);
30 #endif
31     this->setWindowTitle(QCoreApplication::applicationName());
32 }
33
34 RouteResultWidget::~RouteResultWidget()
35 {
36     delete ui;
37     while (this->routes.size() > 0)
38         delete this->routes.takeLast();
39 }
40
41 void RouteResultWidget::addRoute(RouteNew *route)
42 {
43     RouteOneItemWidget *item = new RouteOneItemWidget();
44
45     QHBoxLayout *layout = new QHBoxLayout();
46
47     item->setStartTime(route->startTime);
48     item->setEndTime(route->endTime);
49
50     RouteLeg *leg = route->route.at(0);
51     if (leg->type == WALK)
52     {
53         if (route->route.size() > 1)
54             leg = route->route.at(1);
55         else
56             leg = NULL;
57     }
58     if (leg == NULL)
59     {
60         QDateTime none;
61         item->setStopTime(none);
62     }
63     else
64         item->setStopTime(leg->startPoint->departure_time);
65
66     QTime duration = QTime().addSecs(route->startTime.secsTo(route->endTime));
67     qDebug() << "Duration:" << duration;
68     qDebug() << "Seconds:" << route->startTime.secsTo(route->endTime);
69     item->setDuration(duration);
70
71     QList<RouteLeg*>::const_iterator iter;
72     for (iter = route->route.constBegin(); iter != route->route.constEnd(); iter++)
73     {
74         RouteLegWidget *leg_widget = new RouteLegWidget();
75         leg_widget->setDisplay(*iter);
76         layout->addWidget(leg_widget);
77         layout->setSpacing(0);
78     }
79
80     item->setItemsWidget(layout);
81
82     QListWidgetItem *listItem = new QListWidgetItem("");
83     item->adjustSize();
84
85     qDebug() << "Item size:" << item->size().width();
86     qDebug() << "SizeHint:" << item->sizeHint().width();
87     qDebug() << "Min:" << item->minimumWidth();
88     qDebug() << "Max:" << item->maximumWidth();
89
90     listItem->setSizeHint(item->sizeHint());
91     this->ui->routesArea->addItem(listItem);
92     this->ui->routesArea->setItemWidget(listItem, item);
93
94     this->routes.append(new RouteNew(*route));
95
96     //this->ui->routesArea->setMinimumWidth(this->ui->routesArea->sizeHint().width());
97 }