1 #include "src/stationchooser.h"
2 #include "ui_stationchooser.h"
4 QStringList StationChooser::names;
5 QStringList StationChooser::codes;
7 StationChooser::StationChooser(QWidget *parent) :
8 QDialog(parent), ui(new Ui::StationChooser)
11 if(StationChooser::names.size() == 0)
13 StationChooser::loadStations();
17 StationChooser::~StationChooser()
22 int StationChooser::exec()
25 return QDialog::exec();
28 void StationChooser::reset()
30 ui->lineEdit->setText("");
34 void StationChooser::loadStations()
36 QFile file(":/stations/stations.txt");
37 file.open(QIODevice::ReadOnly | QIODevice::Text);
39 QTextStream stream(&file);
41 while(!stream.atEnd())
43 QString in = file.readLine();
44 QStringList l = in.trimmed().split(",");
46 StationChooser::names << QString("%1 (%2)").arg(l.at(0)).arg(l.at(1));
47 StationChooser::codes << l.at(1);
53 void StationChooser::accept()
55 choice = ui->listWidget->currentItem()->text();
56 choiceCRS = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
61 void StationChooser::typing(QString text)
63 ui->listWidget->clear();
67 for(int i = 0; i < StationChooser::names.size(); i++)
69 QListWidgetItem * li = new QListWidgetItem(StationChooser::names.at(i));
70 li->setData(Qt::UserRole, StationChooser::codes.at(i));
72 ui->listWidget->addItem(li);
77 for(int i = 0; i < StationChooser::names.size(); i++)
79 if(StationChooser::names.at(i).contains(text, Qt::CaseInsensitive))
81 QListWidgetItem * li = new QListWidgetItem(StationChooser::names.at(i));
82 li->setData(Qt::UserRole, StationChooser::codes.at(i));
83 ui->listWidget->addItem(li);
88 ui->listWidget->setCurrentRow(0);
91 void StationChooser::changeEvent(QEvent *e)
93 QDialog::changeEvent(e);
95 case QEvent::LanguageChange:
96 ui->retranslateUi(this);