| 144 |
- |
1 |
#include "qmdialogloadexternalteams.h"
|
|
|
2 |
#include "ui_qmdialogloadexternalteams.h"
|
| 145 |
- |
3 |
#include "QFile"
|
|
|
4 |
#include "QTextStream"
|
|
|
5 |
#include "mainwindow.h"
|
|
|
6 |
#include <QRegExp>
|
| 144 |
- |
7 |
|
| 145 |
- |
8 |
#include "consts.h"
|
|
|
9 |
#include "structs.h"
|
|
|
10 |
#include "proto.h"
|
|
|
11 |
|
|
|
12 |
QmDialogLoadExternalTeams::QmDialogLoadExternalTeams(const QString &efile,QWidget *parent) :
|
| 144 |
- |
13 |
QDialog(parent),
|
|
|
14 |
ui(new Ui::QmDialogLoadExternalTeams)
|
|
|
15 |
{
|
|
|
16 |
ui->setupUi(this);
|
| 145 |
- |
17 |
setWindowTitle("Load External Team Data");
|
|
|
18 |
ui->fileName->setText(efile);
|
|
|
19 |
|
|
|
20 |
// Open the users file
|
|
|
21 |
|
|
|
22 |
QFile file(efile);
|
|
|
23 |
if ( ! file.open(QIODevice::ReadOnly | QIODevice::Text) )
|
|
|
24 |
{
|
|
|
25 |
MainWindow::showMessage("Cannot open external data file");
|
|
|
26 |
return;
|
|
|
27 |
}
|
|
|
28 |
|
|
|
29 |
ui->tableWidget->setColumnCount(3 + ( 2 * config.num_legs) );
|
|
|
30 |
|
|
|
31 |
|
|
|
32 |
// Process Each line of the file
|
|
|
33 |
QTextStream in(&file);
|
|
|
34 |
int ii = 0;
|
|
|
35 |
QRegExp csv_split("\"?,\"?");
|
|
|
36 |
while (!in.atEnd())
|
|
|
37 |
{
|
|
|
38 |
QString line = in.readLine();
|
|
|
39 |
line = line.trimmed(); // Remove leading and training White Space
|
|
|
40 |
line.remove(0xA0); // M$ special uglyness
|
|
|
41 |
|
|
|
42 |
QStringList parts = line.split(csv_split);
|
|
|
43 |
QString first = parts.value(0);
|
|
|
44 |
bool ok;
|
|
|
45 |
if ( first.isEmpty() )
|
|
|
46 |
continue;
|
|
|
47 |
int team = first.toInt(&ok);
|
|
|
48 |
if ( ! ok || team <= 0 )
|
|
|
49 |
continue;
|
|
|
50 |
ui->tableWidget->setRowCount(1+ii);
|
|
|
51 |
|
|
|
52 |
// Insert Team number
|
|
|
53 |
ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(first));
|
|
|
54 |
parts.removeFirst();
|
|
|
55 |
|
|
|
56 |
// Extract Team Name
|
|
|
57 |
ui->tableWidget->setItem(ii, 1, new QTableWidgetItem( parts.value(0) ) );
|
|
|
58 |
parts.removeFirst();
|
|
|
59 |
|
|
|
60 |
// Extract Team Cat
|
|
|
61 |
ui->tableWidget->setItem(ii, 2, new QTableWidgetItem( parts.value(0)));
|
|
|
62 |
parts.removeFirst();
|
|
|
63 |
|
|
|
64 |
int yy = 0;
|
|
|
65 |
while ( parts.count() > 0)
|
|
|
66 |
{
|
|
|
67 |
// Name of competitor
|
|
|
68 |
ui->tableWidget->setItem(ii, 3+yy, new QTableWidgetItem( parts.value(0)));
|
|
|
69 |
parts.removeFirst();
|
|
|
70 |
|
|
|
71 |
// Posible age - if its a number
|
|
|
72 |
int age = parts.value(0).toInt(&ok);
|
|
|
73 |
if ( ok && age > 0 )
|
|
|
74 |
{
|
|
|
75 |
ui->tableWidget->setItem(ii, 4+yy, new QTableWidgetItem( parts.value(0)));
|
|
|
76 |
parts.removeFirst();
|
|
|
77 |
}
|
|
|
78 |
yy += 2;
|
|
|
79 |
}
|
|
|
80 |
ii++;
|
|
|
81 |
|
|
|
82 |
|
|
|
83 |
//process_line(line);
|
|
|
84 |
}
|
| 144 |
- |
85 |
}
|
|
|
86 |
|
|
|
87 |
QmDialogLoadExternalTeams::~QmDialogLoadExternalTeams()
|
|
|
88 |
{
|
|
|
89 |
delete ui;
|
|
|
90 |
}
|