1 #include "locationsdisplaywindow.h"
2 #include "ui_locationsdisplaywindow.h"
4 #include "src/logic/locations.h"
6 #include "src/addressdialog.h"
9 #include <QListWidgetItem>
10 #include <QListWidget>
13 const QString invalidPostText = " - Invalid address";
14 const QString editText = "Edit list";
16 QString getLocName(const QListWidgetItem *item);
17 Location* getSelectedLocation(QList<QListWidgetItem*> list);
18 /*QString getLocName(const QListWidgetItem *item);
19 Location* getSelectedLocation(QList<QListWidgetItem*> list);*/
21 LocationsDisplayWindow::LocationsDisplayWindow(QWidget *parent) :
23 ui(new Ui::LocationsDisplayWindow)
28 this->setAttribute(Qt::WA_Maemo5StackedWindow);
31 this->populateLocations();
33 Locations *locations = Locations::GetInstance();
34 connect(locations, SIGNAL(locationsChanged()), this, SLOT(populateLocations()));
36 this->ui->buttonsStacked->adjustSize();
37 this->ui->locationsWidget->adjustSize();
40 LocationsDisplayWindow::~LocationsDisplayWindow()
45 void LocationsDisplayWindow::populateLocations()
47 this->ui->locationsWidget->clear();
48 qDebug() << "Populating locations";
49 Locations *locations = Locations::GetInstance();
52 for (int index = 1; index <= locations->size(); ++index)
54 qDebug() << "Adding location: " << locations->getLocation(index)->label();
55 Location* loc = locations->getLocation(index);
56 QString dispName = loc->label();
58 dispName.append(invalidPostText);
61 this->ui->locationsWidget->addItems(locs);
62 qDebug() << "Locations populated";
66 void LocationsDisplayWindow::editLocation(QListWidgetItem *item)
71 Locations *locations = Locations::GetInstance();
72 QString findText = getLocName(item);
73 Location *loc = locations->getLocation(findText);
75 qDebug() << "No location with label " << findText << " was found from locations.";
78 AddressDialog *dialog = new AddressDialog(this, loc);
83 QString LocationsDisplayWindow::getLocName(const QListWidgetItem *item)
85 if (!item) return NULL;
86 QString retText = item->text();
87 if (retText.contains(" - Invalid address", Qt::CaseSensitive))
92 Location* LocationsDisplayWindow::getSelectedLocation(QList<QListWidgetItem*> list)
96 qDebug() << "No item is selected";
99 QListWidgetItem *item = list.at(0);
100 QString name = getLocName(item);
101 qDebug() << "Selected item is" << name;
102 Locations *locations = Locations::GetInstance();
103 return locations->getLocation(name);
106 void LocationsDisplayWindow::on_newLocButton_clicked()
109 /*AddressDialog *dialog = new AddressDialog(this);
113 void LocationsDisplayWindow::on_upButton_clicked()
115 qDebug() << "Move up called";
116 Location* loc = this->getSelectedLocation(this->ui->locationsWidget->selectedItems());
118 qDebug() << "No location with selected label was found from locations.";
121 Locations *locations = Locations::GetInstance();
122 locations->lowerLocationIndex(loc->label());
126 void LocationsDisplayWindow::on_downButton_clicked()
128 qDebug() << "Move down called";
129 Location* loc = this->getSelectedLocation(this->ui->locationsWidget->selectedItems());
131 qDebug() << "No location with selected label was found from locations.";
134 Locations *locations = Locations::GetInstance();
135 locations->increaseLocationIndex(loc->label());
139 void LocationsDisplayWindow::on_deleteButton_clicked()
141 qDebug() << "Remove called";
142 Location* loc = this->getSelectedLocation(this->ui->locationsWidget->selectedItems());
144 qDebug() << "No location with selected label was found from locations.";
147 Locations *locations = Locations::GetInstance();
148 locations->removeLocation(loc);
152 void LocationsDisplayWindow::on_customizeButton_clicked()
154 this->ui->buttonsStacked->setCurrentIndex(1);
157 void LocationsDisplayWindow::on_doneButton_clicked()
159 this->ui->buttonsStacked->setCurrentIndex(0);
162 void LocationsDisplayWindow::on_locationsWidget_itemClicked(QListWidgetItem* item)
164 if (this->ui->buttonsStacked->currentIndex() == 0)
165 this->editLocation(item);
168 void LocationsDisplayWindow::on_locationsWidget_clicked(QModelIndex index){}