Subversion Repositories svn1

Rev

Rev 144 | Rev 146 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "qmdialogloadexternalteams.h"
#include "ui_qmdialogloadexternalteams.h"
#include "QFile"
#include "QTextStream"
#include "mainwindow.h"
#include <QRegExp>

#include    "consts.h"
#include    "structs.h"
#include    "proto.h"

QmDialogLoadExternalTeams::QmDialogLoadExternalTeams(const QString &efile,QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QmDialogLoadExternalTeams)
{
    ui->setupUi(this);
    setWindowTitle("Load External Team Data");
    ui->fileName->setText(efile);

    // Open the users file

    QFile file(efile);
    if ( ! file.open(QIODevice::ReadOnly | QIODevice::Text) )
    {
        MainWindow::showMessage("Cannot open external data file");
        return;
    }

    ui->tableWidget->setColumnCount(3 + ( 2 * config.num_legs) );


    // Process Each line of the file
    QTextStream in(&file);
    int ii = 0;
    QRegExp csv_split("\"?,\"?");
    while (!in.atEnd())
    {
         QString line = in.readLine();
         line = line.trimmed();             // Remove leading and training White Space
         line.remove(0xA0);                 // M$ special uglyness

         QStringList parts = line.split(csv_split);
         QString first = parts.value(0);
         bool ok;
         if ( first.isEmpty() )
             continue;
         int team = first.toInt(&ok);
         if ( ! ok || team <= 0 )
             continue;
         ui->tableWidget->setRowCount(1+ii);

         // Insert Team number
         ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(first));
         parts.removeFirst();

         // Extract Team Name
         ui->tableWidget->setItem(ii, 1, new QTableWidgetItem( parts.value(0) ) );
         parts.removeFirst();

         // Extract Team Cat
         ui->tableWidget->setItem(ii, 2, new QTableWidgetItem( parts.value(0)));
         parts.removeFirst();

         int yy = 0;
         while ( parts.count() > 0)
         {
             // Name of competitor
             ui->tableWidget->setItem(ii, 3+yy, new QTableWidgetItem( parts.value(0)));
             parts.removeFirst();

             // Posible age - if its a number
             int age = parts.value(0).toInt(&ok);
             if ( ok && age > 0 )
             {
                 ui->tableWidget->setItem(ii, 4+yy, new QTableWidgetItem( parts.value(0)));
                 parts.removeFirst();
             }
             yy += 2;
         }
         ii++;


         //process_line(line);
     }
}

QmDialogLoadExternalTeams::~QmDialogLoadExternalTeams()
{
    delete ui;
}