Subversion Repositories svn1

Rev

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

Rev 110 Rev 111
Line 5... Line 5...
5
#include    "proto.h"
5
#include    "proto.h"
6
 
6
 
7
#include "QTableWidgetItem"
7
#include "QTableWidgetItem"
8
#include "spinboxdelegate.h"
8
#include "spinboxdelegate.h"
9
#include "timedelegate.h"
9
#include "timedelegate.h"
-
 
10
#include "textdelegate.h"
10
 
11
 
11
QmConfClass::QmConfClass(QWidget *parent) :
12
QmConfClass::QmConfClass(QWidget *parent) :
12
    QWidget(parent),
13
    QWidget(parent),
13
    ui(new Ui::QmConfClass)
14
    ui(new Ui::QmConfClass)
14
{
15
{
Line 23... Line 24...
23
    ui->tableWidget->setRowCount(MAX_CLASS);
24
    ui->tableWidget->setRowCount(MAX_CLASS);
24
 
25
 
25
    /*
26
    /*
26
    **  Setup delegated for specialised editing
27
    **  Setup delegated for specialised editing
27
    */
28
    */
-
 
29
    ui->tableWidget->setItemDelegateForColumn(0, new textDelegate(2));
-
 
30
    ui->tableWidget->setItemDelegateForColumn(1, new textDelegate(LEN_CLASS_NAME));
28
    ui->tableWidget->setItemDelegateForColumn(2, new timeDelegate());
31
    ui->tableWidget->setItemDelegateForColumn(2, new timeDelegate());
29
    ui->tableWidget->setItemDelegateForColumn(3, new SpinBoxDelegate(0,50));
32
    ui->tableWidget->setItemDelegateForColumn(3, new SpinBoxDelegate(0,50));
30
 
33
 
31
    populate();
34
    populate();
-
 
35
    ui->tableWidget->resizeColumnsToContents();
32
}
36
}
33
 
37
 
34
void QmConfClass::populate(void)
38
void QmConfClass::populate(void)
35
{
39
{
36
    for ( int ii = 0; ii < MAX_CLASS; ii++)
40
    for ( int ii = 0; ii < MAX_CLASS; ii++)
37
    {
41
    {
38
        QTableWidgetItem *item;
-
 
39
        item = new QTableWidgetItem(config.team_class[ii].abr);
42
        ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(config.team_class[ii].abr) );
40
        ui->tableWidget->setItem(ii, 0, item );
43
        ui->tableWidget->setItem(ii, 1, new QTableWidgetItem(config.team_class[ii].full_name ));
41
 
44
 
42
        item = new QTableWidgetItem(config.team_class[ii].full_name );
45
        if ( *config.team_class[ii].abr )
-
 
46
        {
43
        ui->tableWidget->setItem(ii, 1, item);
47
            QTableWidgetItem *item;
44
 
-
 
45
        item = new QTableWidgetItem();
48
            item = new QTableWidgetItem();
46
        item->setData(Qt::EditRole,QTime().addSecs(config.team_class[ii].start) );
49
            item->setData(Qt::EditRole,QTime().addSecs(config.team_class[ii].start) );
47
        ui->tableWidget->setItem(ii, 2, item);
50
            ui->tableWidget->setItem(ii, 2, item);
48
 
51
 
49
        item = new QTableWidgetItem();
52
            item = new QTableWidgetItem();
50
        item->setData(Qt::EditRole,config.class_winners[ii] );
53
            item->setData(Qt::EditRole,config.class_winners[ii] );
51
        ui->tableWidget->setItem(ii, 3, item);
54
            ui->tableWidget->setItem(ii, 3, item);
-
 
55
        }
52
    }
56
    }
53
}
57
}
54
 
58
 
55
void QmConfClass::save(void)
59
void QmConfClass::save(void)
56
{
60
{
Line 65... Line 69...
65
    **  Extract the data from the Widgets
69
    **  Extract the data from the Widgets
66
    */
70
    */
67
    for ( int ii = 0; ii < MAX_CLASS; ii++)
71
    for ( int ii = 0; ii < MAX_CLASS; ii++)
68
    {
72
    {
69
        QTableWidgetItem *item = ui->tableWidget->item ( ii, 0 );
73
        QTableWidgetItem *item = ui->tableWidget->item ( ii, 0 );
-
 
74
        if ( item )
-
 
75
        {
70
        strncpy(newcfg.team_class[ii].abr, qPrintable(item->text()), sizeof(newcfg.team_class[ii].abr)-1);
76
            strncpy(newcfg.team_class[ii].abr, qPrintable(item->text()), sizeof(newcfg.team_class[ii].abr)-1);
-
 
77
        }
-
 
78
        else
-
 
79
        {
-
 
80
            *newcfg.team_class[ii].abr = 0;
-
 
81
        }
71
 
82
 
72
        item = ui->tableWidget->item ( ii, 1 );
83
        item = ui->tableWidget->item ( ii, 1 );
-
 
84
        if ( item )
-
 
85
        {
73
        strncpy(newcfg.team_class[ii].full_name, qPrintable(item->text()), sizeof(newcfg.team_class[ii].full_name)-1);
86
            strncpy(newcfg.team_class[ii].full_name, qPrintable(item->text()), sizeof(newcfg.team_class[ii].full_name)-1);
-
 
87
        }
-
 
88
        else
-
 
89
        {
-
 
90
            *newcfg.team_class[ii].full_name = 0;
-
 
91
        }
74
 
92
 
75
        item = ui->tableWidget->item( ii, 2 );
93
        item = ui->tableWidget->item( ii, 2 );
-
 
94
        if ( item )
-
 
95
        {
76
        newcfg.team_class[ii].start = QTime(0,0,0).secsTo(item->data(Qt::EditRole).toTime());
96
            newcfg.team_class[ii].start = QTime(0,0,0).secsTo(item->data(Qt::EditRole).toTime());
-
 
97
        }
-
 
98
        else
-
 
99
        {
-
 
100
            newcfg.team_class[ii].start = 0;
-
 
101
        }
-
 
102
 
-
 
103
        item = ui->tableWidget->item( ii, 3 );
-
 
104
        if ( item )
-
 
105
        {
-
 
106
            newcfg.class_winners[ii] = item->data(Qt::EditRole).toInt();
-
 
107
        }
-
 
108
        else
-
 
109
        {
-
 
110
            newcfg.class_winners[ii] = 0;
-
 
111
        }
77
    }
112
    }
78
    
113
    
79
 
114
 
80
    /*
115
    /*
81
     **  Now do the Class definitions
116
     **  Now do the Class definitions
Line 120... Line 155...
120
 
155
 
121
    newcfg.nonequestrian_class = lookup_class( newcfg.nonequestrian_class_abr, &newcfg );
156
    newcfg.nonequestrian_class = lookup_class( newcfg.nonequestrian_class_abr, &newcfg );
122
    if( newcfg.equestrian_leg && newcfg.nonequestrian_class == 0 )
157
    if( newcfg.equestrian_leg && newcfg.nonequestrian_class == 0 )
123
        printf( "WARNING: Non-equestrian class not found\n" );
158
        printf( "WARNING: Non-equestrian class not found\n" );
124
 
159
 
-
 
160
    /*
-
 
161
    **  Sanity test of the data
-
 
162
    */
-
 
163
    for( int i = 0; i < MAX_CLASS; i++ )
-
 
164
    {
-
 
165
        if( newcfg.team_class[i].abr[0] != '\0' && newcfg.class_winners[i] == 0 )
-
 
166
        {
-
 
167
            printf( "  Warning: Class without winners: %s\n", newcfg.team_class[i].abr );
-
 
168
        }
-
 
169
 
-
 
170
//        if ( newcfg.class_winners[i] > class_summary.teamclass[i+1].total )
-
 
171
//        {
-
 
172
//            printf( "  Warning: Num winners greater than those in class: %s\n", newcfg.team_class[i].abr );
-
 
173
//        }
-
 
174
    }
-
 
175
 
-
 
176
 
125
    if ( error == 0 )
177
    if ( error == 0 )
126
    {
178
    {
127
        config = newcfg;
179
        config = newcfg;
128
        wt_config();
180
        wt_config();
129
    }
181
    }