Subversion Repositories svn1-original

Rev

Rev 158 | Rev 161 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 158 Rev 159
Line 20... Line 20...
20
    ui->legNumber->setMaximum(config.num_legs);
20
    ui->legNumber->setMaximum(config.num_legs);
21
 
21
 
22
    // Connect up buttons
22
    // Connect up buttons
23
    connect(ui->load, SIGNAL(clicked()), this, SLOT(load()));
23
    connect(ui->load, SIGNAL(clicked()), this, SLOT(load()));
24
    connect(ui->cancel,SIGNAL(clicked()), this, SLOT(close()));
24
    connect(ui->cancel,SIGNAL(clicked()), this, SLOT(close()));
-
 
25
    connect(ui->update,SIGNAL(clicked()), this, SLOT(update()));
-
 
26
    connect(ui->deltaTime, SIGNAL(valueChanged(int)), this, SLOT(updateDeltaDisplay(int)));
25
 
27
 
26
 
28
 
27
    // Set up the table
29
    // Set up the table
28
     ui->tableWidget->setColumnCount(5);
30
     ui->tableWidget->setColumnCount(5);
29
 
31
 
Line 33... Line 35...
33
 
35
 
34
     //ui->tableWidget->setItemDelegateForColumn(1, new timeDelegate());
36
     //ui->tableWidget->setItemDelegateForColumn(1, new timeDelegate());
35
     ui->tableWidget->setItemDelegateForColumn(2, new timeDelegate());
37
     ui->tableWidget->setItemDelegateForColumn(2, new timeDelegate());
36
     ui->tableWidget->setItemDelegateForColumn(3, new timeDelegate());
38
     ui->tableWidget->setItemDelegateForColumn(3, new timeDelegate());
37
     ui->tableWidget->setItemDelegateForColumn(4, new timeDelegate());
39
     ui->tableWidget->setItemDelegateForColumn(4, new timeDelegate());
-
 
40
 
-
 
41
     ui->status->setText("Load Leg File");
38
}
42
}
39
 
43
 
40
QmDialogUploadLegTimes::~QmDialogUploadLegTimes()
44
QmDialogUploadLegTimes::~QmDialogUploadLegTimes()
41
{
45
{
42
    delete ui;
46
    delete ui;
Line 61... Line 65...
61
    if ( ! file.open(QIODevice::ReadOnly | QIODevice::Text) )
65
    if ( ! file.open(QIODevice::ReadOnly | QIODevice::Text) )
62
    {
66
    {
63
        MainWindow::showMessage("Cannot open Leg Data file");
67
        MainWindow::showMessage("Cannot open Leg Data file");
64
        return;
68
        return;
65
    }
69
    }
66
    MainWindow::showMessage("Loading Leg Data");
70
    ui->status->setText("Loading Data");
67
    // Insert column headers
71
    // Insert column headers
68
    ui->tableWidget->clearContents();
72
    ui->tableWidget->clearContents();
69
    ui->tableWidget->setRowCount(0);
73
    ui->tableWidget->setRowCount(0);
70
 
74
 
71
 
75
 
Line 135... Line 139...
135
        {
139
        {
136
            ui->tableWidget->item(team-1,1)->setData(Qt::EditRole, QTime().addSecs(delta));
140
            ui->tableWidget->item(team-1,1)->setData(Qt::EditRole, QTime().addSecs(delta));
137
        }
141
        }
138
    }
142
    }
139
 
143
 
-
 
144
    // Update Error information
-
 
145
    updateDeltaDisplay( ui->deltaTime->value() );
-
 
146
 
-
 
147
}
-
 
148
 
-
 
149
void QmDialogUploadLegTimes::updateDeltaDisplay( int delta_secs )
-
 
150
{
-
 
151
    bool isFlagged = false;
-
 
152
    QTime delta = QTime().addSecs(delta_secs);
-
 
153
    for ( int ii = 0; ii < ui->tableWidget->rowCount(); ii++)
-
 
154
    {
-
 
155
        QTableWidgetItem *item;
-
 
156
        item = ui->tableWidget->item(ii, 1);
-
 
157
        if (item)
-
 
158
        {
-
 
159
            QTime time = item->data(Qt::EditRole).toTime();
-
 
160
            if ( time > delta )
-
 
161
            {
-
 
162
                item->setBackgroundColor(QColor(255,0,0,50));
-
 
163
                isFlagged = true;
-
 
164
            }
-
 
165
            else
-
 
166
            {
-
 
167
                item->setBackgroundColor(QColor(255,255,255));
-
 
168
            }
-
 
169
        }
-
 
170
    }
-
 
171
    if (isFlagged)
-
 
172
    {
-
 
173
        ui->status->setText("Large Delta Times");
-
 
174
    }
-
 
175
    else
-
 
176
    {
-
 
177
        ui->status->setText("");
-
 
178
    }
-
 
179
}
-
 
180
 
-
 
181
void QmDialogUploadLegTimes::update(void)
-
 
182
{
-
 
183
    int leg = ui->legNumber->value() ;
-
 
184
    if (leg <= 0 || leg > config.num_legs)
-
 
185
    {
-
 
186
        ui->status->setText("Must select leg number");
-
 
187
        return;
-
 
188
    }
-
 
189
 
-
 
190
    // Insert the first time into the desired leg
-
 
191
    for ( int ii = 0; ii < ui->tableWidget->rowCount(); ii++)
-
 
192
    {
-
 
193
        QTableWidgetItem *item;
-
 
194
        item = ui->tableWidget->item(ii, 0);
-
 
195
        if (item)
-
 
196
        {
-
 
197
            int team = item->data(Qt::EditRole).toInt();
-
 
198
            if( valid_field( team ) && g_record( team, &team_buf ) )
-
 
199
            {
-
 
200
                item = ui->tableWidget->item(ii, 2);
-
 
201
                if (item)
-
 
202
                {
-
 
203
                    QTime time = item->data(Qt::EditRole).toTime();
-
 
204
                    int secs = QTime(0,0,0).secsTo(time);
-
 
205
 
-
 
206
                    if ( ui->legStart->isChecked())
-
 
207
                    {
-
 
208
                        team_buf.leg[leg].start = secs;
-
 
209
                        team_buf.leg[leg].manual = TRUE;
-
 
210
                    }
-
 
211
                    else
-
 
212
                    {
-
 
213
                        team_buf.leg[leg].end = secs;
-
 
214
                    }
-
 
215
                    set_times( &team_buf );                 /* Calc start of next leg */
-
 
216
                    test_times( &team_buf, 0 );             /* Calc elapsed times etc */
-
 
217
                    put_team_record( team, &team_buf );
-
 
218
                    ui->tableWidget->hideRow(ii);
-
 
219
                }
-
 
220
            }
-
 
221
        }
-
 
222
     }
140
}
223
}