Subversion Repositories svn1-original

Rev

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

Rev 294 Rev 314
Line 3... Line 3...
3
#include "ui_qmconfclass.h"
3
#include "ui_qmconfclass.h"
4
#include    "consts.h"
4
#include    "consts.h"
5
#include    "structs.h"
5
#include    "structs.h"
6
#include    "proto.h"
6
#include    "proto.h"
7
#include "mainwindow.h"
7
#include "mainwindow.h"
-
 
8
#include "qmTableWidgetItem.h"
8
 
9
 
9
#include <QDialogButtonBox>
10
#include <QDialogButtonBox>
10
#include "QTableWidgetItem"
11
#include "QTableWidgetItem"
11
#include "spinboxdelegate.h"
12
#include "spinboxdelegate.h"
12
#include "timedelegate.h"
13
#include "timedelegate.h"
Line 114... Line 115...
114
}
115
}
115
 
116
 
116
void QmConfClass::populate(void)
117
void QmConfClass::populate(void)
117
{
118
{
118
    populating = true;
119
    populating = true;
-
 
120
    tableWidget->clearContents();
-
 
121
    tableWidget->setSortingEnabled(false);
-
 
122
    
119
    tableWidget->setRowCount(config.num_class + 1);
123
    tableWidget->setRowCount(config.num_class + 1);
120
    for ( int ii = 0; ii < MAX_CLASS; ii++)
124
    for ( int ii = 0; ii < MAX_CLASS; ii++)
121
    {
125
    {
122
        tableWidget->setItem(ii, COL_ABR, new QTableWidgetItem(config.team_class[ii].abr) );
126
        tableWidget->setItem(ii, COL_ABR, new QTableWidgetItem(config.team_class[ii].abr) );
123
        tableWidget->setItem(ii, COL_CLASS, new QTableWidgetItem(config.team_class[ii].full_name ));
127
        tableWidget->setItem(ii, COL_CLASS, new QTableWidgetItem(config.team_class[ii].full_name ));
Line 127... Line 131...
127
            QTableWidgetItem *item;
131
            QTableWidgetItem *item;
128
            item = new QTableWidgetItem();
132
            item = new QTableWidgetItem();
129
            item->setData(Qt::EditRole,QTime().addSecs(config.team_class[ii].start) );
133
            item->setData(Qt::EditRole,QTime().addSecs(config.team_class[ii].start) );
130
            tableWidget->setItem(ii, COL_TIME, item);
134
            tableWidget->setItem(ii, COL_TIME, item);
131
 
135
 
132
            item = new QTableWidgetItem();
-
 
133
            item->setData(Qt::EditRole,config.class_winners[ii] );
136
            item = new qmTwiEditNumber(config.class_winners[ii]);
134
            tableWidget->setItem(ii, COL_WINNERS, item);
137
            tableWidget->setItem(ii, COL_WINNERS, item);
135
 
138
 
136
            item = new QTableWidgetItem();
139
            item = new QTableWidgetItem();
137
            item->setCheckState(config.nonequestrian_class == 1 + ii ? Qt::Checked : Qt::Unchecked);
140
            item->setCheckState(config.nonequestrian_class == 1 + ii ? Qt::Checked : Qt::Unchecked);
138
            tableWidget->setItem(ii, COL_NE, item);
141
            tableWidget->setItem(ii, COL_NE, item);
139
 
142
 
140
            item = new QTableWidgetItem();
-
 
141
            item->setData(Qt::EditRole,config.class_ne_winners[ii] );
143
            item = new qmTwiEditNumber(config.class_ne_winners[ii]);
142
            tableWidget->setItem(ii, COL_NE_WINNERS, item);
144
            tableWidget->setItem(ii, COL_NE_WINNERS, item);
143
        }
145
        }
144
    }
146
    }
145
    updateChanged(false);
147
    updateChanged(false);
146
    populating = false;
148
    populating = false;
Line 154... Line 156...
154
    QmConfig newcfg(config);
156
    QmConfig newcfg(config);
155
 
157
 
156
    /*
158
    /*
157
    **  Extract the data from the Widgets
159
    **  Extract the data from the Widgets
158
    */
160
    */
-
 
161
    int entryIndex = 0;
-
 
162
    int ii = 0;
159
    for ( int ii = 0; ii < MAX_CLASS; ii++)
163
    for (; entryIndex < tableWidget->rowCount() &&  ii < MAX_CLASS; entryIndex++)
160
    {
164
    {
-
 
165
 
-
 
166
        // Check that this is a real Entry or the 'Totals' header
-
 
167
        //      If its a qmTwiString, then this is not a real Class entry
-
 
168
        //
161
        QTableWidgetItem *item = tableWidget->item ( ii, COL_ABR );
169
        QTableWidgetItem *item = tableWidget->item ( entryIndex, COL_ABR );
-
 
170
        if ( item && dynamic_cast<const qmTwiString *>(item))
-
 
171
        {
-
 
172
            qDebug("Ignore row:%d", entryIndex);
-
 
173
            continue;
-
 
174
        }
-
 
175
 
162
        if ( item )
176
        if ( item )
163
        {
177
        {
164
            strncpy(newcfg.team_class[ii].abr, qPrintable(item->text()), sizeof(newcfg.team_class[ii].abr)-1);
178
            strncpy(newcfg.team_class[ii].abr, qPrintable(item->text()), sizeof(newcfg.team_class[ii].abr)-1);
165
        }
179
        }
166
        else
180
        else
167
        {
181
        {
168
            *newcfg.team_class[ii].abr = 0;
182
            *newcfg.team_class[ii].abr = 0;
169
        }
183
        }
170
 
184
 
171
        item = tableWidget->item ( ii, COL_CLASS );
185
        item = tableWidget->item ( entryIndex, COL_CLASS );
172
        if ( item )
186
        if ( item )
173
        {
187
        {
174
            strncpy(newcfg.team_class[ii].full_name, qPrintable(item->text()), sizeof(newcfg.team_class[ii].full_name)-1);
188
            strncpy(newcfg.team_class[ii].full_name, qPrintable(item->text()), sizeof(newcfg.team_class[ii].full_name)-1);
175
        }
189
        }
176
        else
190
        else
177
        {
191
        {
178
            *newcfg.team_class[ii].full_name = 0;
192
            *newcfg.team_class[ii].full_name = 0;
179
        }
193
        }
180
 
194
 
181
        item = tableWidget->item( ii, COL_TIME );
195
        item = tableWidget->item( entryIndex, COL_TIME );
182
        if ( item )
196
        if ( item )
183
        {
197
        {
184
            QVariant data = item->data(Qt::EditRole);
198
            QVariant data = item->data(Qt::EditRole);
185
            if (data.isValid())
199
            if (data.isValid())
186
            {
200
            {
Line 194... Line 208...
194
        else
208
        else
195
        {
209
        {
196
            newcfg.team_class[ii].start = -1;
210
            newcfg.team_class[ii].start = -1;
197
        }
211
        }
198
 
212
 
199
        item = tableWidget->item( ii, COL_WINNERS );
213
        item = tableWidget->item( entryIndex, COL_WINNERS );
200
        if ( item )
214
        if ( item )
201
        {
215
        {
202
            newcfg.class_winners[ii] = item->data(Qt::EditRole).toInt();
216
            newcfg.class_winners[ii] = item->data(Qt::EditRole).toInt();
203
        }
217
        }
204
        else
218
        else
205
        {
219
        {
206
            newcfg.class_winners[ii] = 0;
220
            newcfg.class_winners[ii] = 0;
207
        }
221
        }
208
 
222
 
209
        item = tableWidget->item( ii, COL_NE );
223
        item = tableWidget->item( entryIndex, COL_NE );
210
        if ( item )
224
        if ( item )
211
        {
225
        {
212
            if ( item->checkState() == Qt::Checked)
226
            if ( item->checkState() == Qt::Checked)
213
            {
227
            {
214
                newcfg.nonequestrian_class = ii;
228
                newcfg.nonequestrian_class = ii;
215
                strncpy(newcfg.nonequestrian_class_abr, newcfg.team_class[ii].abr, sizeof(newcfg.team_class[ii].abr)-1);
229
                strncpy(newcfg.nonequestrian_class_abr, newcfg.team_class[ii].abr, sizeof(newcfg.team_class[ii].abr)-1);
216
            }
230
            }
217
        }
231
        }
218
 
232
 
219
        item = tableWidget->item( ii, COL_NE_WINNERS );
233
        item = tableWidget->item( entryIndex, COL_NE_WINNERS );
220
        if ( item )
234
        if ( item )
221
        {
235
        {
222
            newcfg.class_ne_winners[ii] = item->data(Qt::EditRole).toInt();
236
            newcfg.class_ne_winners[ii] = item->data(Qt::EditRole).toInt();
223
        }
237
        }
224
        else
238
        else
225
        {
239
        {
226
            newcfg.class_ne_winners[ii] = 0;
240
            newcfg.class_ne_winners[ii] = 0;
227
        }
241
        }
-
 
242
        ii++;
228
    }
243
    }
229
    
244
    
230
    // Validate the data
245
    // Validate the data
231
    try
246
    try
232
    {
247
    {
Line 360... Line 375...
360
    tableWidget->setRowCount( 1+ tableWidget->rowCount());
375
    tableWidget->setRowCount( 1+ tableWidget->rowCount());
361
}
376
}
362
 
377
 
363
void QmConfClass::updateStatus(void)
378
void QmConfClass::updateStatus(void)
364
{
379
{
-
 
380
    populate();
365
    populating = true;
381
    populating = true;
-
 
382
    tableWidget->setSortingEnabled(false);
366
    if (!statusShown)
383
    if (!statusShown)
367
    {
384
    {
368
        tableWidget->setColumnHidden(COL_ST_TOTAL, false);
385
        tableWidget->setColumnHidden(COL_ST_TOTAL, false);
369
        tableWidget->setColumnHidden(COL_ST_VALID, false);
386
        tableWidget->setColumnHidden(COL_ST_VALID, false);
370
        tableWidget->setColumnHidden(COL_ST_DISQ, false);
387
        tableWidget->setColumnHidden(COL_ST_DISQ, false);
Line 382... Line 399...
382
 
399
 
383
        // Insert summary data
400
        // Insert summary data
384
        int ii;
401
        int ii;
385
        for (ii = 0; ii < config.num_class; ii++)
402
        for (ii = 0; ii < config.num_class; ii++)
386
        {
403
        {
387
            QTableWidgetItem *item;
404
            tableWidget->setItem(ii,COL_ST_TOTAL, new qmTwiNumber(data.teamclass[ii+1].total) );
388
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].total));
405
            tableWidget->setItem(ii,COL_ST_VALID, new qmTwiNumber(data.teamclass[ii+1].valid) );
389
            item->setFlags(Qt::NoItemFlags);
406
            tableWidget->setItem(ii,COL_ST_DISQ,  new qmTwiNumber(data.teamclass[ii+1].disqualified));
390
            tableWidget->setItem(ii,COL_ST_TOTAL, item );
407
            tableWidget->setItem(ii,COL_ST_NONEQ, new qmTwiNumber(data.teamclass[ii+1].non_equestrian));
391
 
-
 
392
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].valid));
408
            tableWidget->setItem(ii,COL_ST_VET,   new qmTwiNumber(data.teamclass[ii+1].vet_check));
393
            item->setFlags(Qt::NoItemFlags);
409
            tableWidget->setItem(ii,COL_ST_CEV,   new qmTwiNumber(data.teamclass[ii+1].valid_ev));
394
            tableWidget->setItem(ii,COL_ST_VALID, item );
410
            tableWidget->setItem(ii,COL_ST_CNE,   new qmTwiNumber(data.teamclass[ii+1].valid_ne));
-
 
411
        }
395
 
412
 
396
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].disqualified)) ;
-
 
397
            item->setFlags(Qt::NoItemFlags);
413
        //  Insert Totals
398
            tableWidget->setItem(ii,COL_ST_DISQ, item);
414
        tableWidget->setItem(ii,0,            new qmTwiString("Totals", 1));
399
 
-
 
400
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].non_equestrian));
415
        tableWidget->setItem(ii,COL_ST_TOTAL, new qmTwiNumber(data.total.total, 1));
401
            item->setFlags(Qt::NoItemFlags);
416
        tableWidget->setItem(ii,COL_ST_VALID, new qmTwiNumber(data.total.valid, 1));
402
            tableWidget->setItem(ii,COL_ST_NONEQ, item);
417
        tableWidget->setItem(ii,COL_ST_DISQ,  new qmTwiNumber(data.total.disqualified, 1));
403
 
-
 
404
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].vet_check));
418
        tableWidget->setItem(ii,COL_ST_NONEQ, new qmTwiNumber(data.total.non_equestrian, 1));
405
            item->setFlags(Qt::NoItemFlags);
-
 
406
            tableWidget->setItem(ii,COL_ST_VET, item);
419
        tableWidget->setItem(ii,COL_ST_VET,   new qmTwiNumber(data.total.vet_check, 1));
407
 
-
 
408
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].valid_ev));
420
        tableWidget->setItem(ii,COL_ST_CEV,   new qmTwiNumber(data.total.valid_ev, 1));
409
            item->setFlags(Qt::NoItemFlags);
-
 
410
            tableWidget->setItem(ii,COL_ST_CEV, item);
421
        tableWidget->setItem(ii,COL_ST_CNE,   new qmTwiNumber(data.total.valid_ne, 1));
411
 
422
 
412
            item = new QTableWidgetItem(QString::number(data.teamclass[ii+1].valid_ne));
-
 
413
            item->setFlags(Qt::NoItemFlags);
-
 
414
            tableWidget->setItem(ii,COL_ST_CNE, item);
-
 
415
            
-
 
416
        }
-
 
417
 
423
 
418
        tableWidget->resizeColumnsToContents();
424
        tableWidget->resizeColumnsToContents();
419
        tableWidget->resizeRowsToContents();
425
        tableWidget->resizeRowsToContents();
420
    }
426
    }
-
 
427
    tableWidget->setSortingEnabled(true);
421
    populating = false;
428
    populating = false;
422
}
429
}
423
 
430
 
424
void QmConfClass::cellChanged(int row,int col)
431
void QmConfClass::cellChanged(int row,int col)
425
{
432
{