1 #include "favouritestations.h"
2 #include "ui_favouritestations.h"
4 FavouriteStations::FavouriteStations(QWidget *parent) : QDialog(parent), ui(new Ui::FavouriteStations)
10 * Add a new favourite station to the list.
12 void FavouriteStations::addFavourite()
14 StationChooser chooser;
16 if(chooser.exec() == QDialog::Accepted)
18 QListWidgetItem * li = new QListWidgetItem(chooser.getChoice());
19 li->setData(Qt::UserRole, chooser.getChoiceCRS());
20 ui->listWidget->addItem(li);
21 ui->listWidget->sortItems();
27 * Delete the currently selected station from the list of favourites
29 void FavouriteStations::deleteFavourite()
31 if(ui->listWidget->currentRow() != -1)
32 ui->listWidget->takeItem(ui->listWidget->currentRow());
36 * Save the current list of favourites into the application's settings with QSettings
38 void FavouriteStations::save()
43 for(int i = 0; i < ui->listWidget->count(); i++)
45 nameList << ui->listWidget->item(i)->text();
46 codeList << ui->listWidget->item(i)->data(Qt::UserRole).toString();
49 settings.setValue(names, nameList);
50 settings.setValue(codes, codeList);
53 void FavouriteStations::accept()
59 void FavouriteStations::reject()
65 int FavouriteStations::exec(QString stationNames, QString stationCodes)
67 ui->listWidget->clear();
72 //Populate the list with the current favourite stations
73 QVariant nameV = settings.value(names, QVariant());
74 QVariant codeV = settings.value(codes, QVariant());
76 if(nameV != QVariant())
78 QStringList nameList = nameV.toStringList();
79 QStringList codeList = codeV.toStringList();
81 for(int i = 0; i < nameList.size(); i++)
83 QListWidgetItem * wi = new QListWidgetItem(nameList.at(i));
84 wi->setData(Qt::UserRole, codeList.at(i));
85 ui->listWidget->addItem(wi);
89 ui->listWidget->sortItems();
90 ui->listWidget->setCurrentRow(0);
92 return QDialog::exec();
95 FavouriteStations::~FavouriteStations()
100 void FavouriteStations::changeEvent(QEvent *e)
102 QDialog::changeEvent(e);
104 case QEvent::LanguageChange:
105 ui->retranslateUi(this);