Subversion Repositories svn1

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
211 - 1
#include "qmdownloadlegtimes.h"
2
#include "ui_qmdownloadlegtimes.h"
3
#include "mainwindow.h"
4
 
5
#include    "consts.h"
6
#include    "structs.h"
7
#include    "proto.h"
8
 
9
QmDownloadLegTimes::QmDownloadLegTimes(QWidget *parent) :
10
    QDialog(parent),
11
    ui(new Ui::QmDownloadLegTimes)
12
{
13
    ui->setupUi(this);
14
    connect(ui->cancel, SIGNAL(clicked()), this, SLOT(close()));
15
    connect(ui->save, SIGNAL(clicked()), this, SLOT(save()));
16
    connect(ui->legNumber, SIGNAL(valueChanged(int)), this, SLOT(legNumberChanged(int)));
17
 
18
    ui->legNumber->setMaximum(config.num_legs);
19
    legNumberChanged(0);
20
}
21
 
22
QmDownloadLegTimes::~QmDownloadLegTimes()
23
{
24
    delete ui;
25
}
26
 
27
void QmDownloadLegTimes::legNumberChanged(int leg)
28
{
29
    ui->save->setEnabled(leg != 0);
30
}
31
 
32
void QmDownloadLegTimes::save(void)
33
{
34
    bool manstart = !ui->legEnd->isChecked();
35
    int leg = ui->legNumber->value();
36
 
37
        /*
38
         * Locate the required data file and prepare for processing
39
         */
40
    QString filename;
41
    filename = QString("%1leg%2.txt").arg(manstart ? "S" : "").arg(QString::number(leg));
42
    MainWindow::showMessage(QString("Using: ") + filename);
43
    filename.prepend(filepath);
44
    qDebug("Using:%s", qPrintable(filename));
45
 
46
    QFile file;
47
    file.setFileName(filename);
48
    if ( ! file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text) )
49
    {
50
        MainWindow::showMessage("Cannot open external leg file");
51
        return;
52
    }
53
    QTextStream out(&file);
54
 
55
    /*
56
     * Write the data to the data file
57
     */
58
    team_type   team_buf;
59
    for(int i = config.min_team; i <= config.max_team; i++ )
60
    {
61
        if( valid_field( i ) && g_record( i, &team_buf ) )
62
        {
63
            time_t ptime;
64
            if (manstart)
65
                ptime = team_buf.leg[leg].start ;
66
            else
67
                ptime = team_buf.leg[leg].end;
68
            if (ptime >= 0 )
69
            {
70
                out << i;
71
                out << " ";
72
                out <<  time_a( ptime );
73
                out << endl;
74
            }
75
        }
76
 
77
    }
78
}
79