Subversion Repositories svn1

Rev

Rev 121 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 121 Rev 123
Line 26... Line 26...
26
    ui->members->setItemDelegateForColumn(2, new SpinBoxDelegate(0,120));
26
    ui->members->setItemDelegateForColumn(2, new SpinBoxDelegate(0,120));
27
 
27
 
28
    /*
28
    /*
29
    ** Insert widgets for the Team Times
29
    ** Insert widgets for the Team Times
30
    */
30
    */
-
 
31
    int ii;
31
    for ( int ii = 0 ; ii < config.num_legs; ii++)
32
    for ( ii = 1 ; ii <= config.num_legs; ii++)
32
    {
33
    {
33
        lt[ii] = new QmLegTimes(ii, config.leg_name[ii]);
34
        lt[ii] = new QmLegTimes(ii-1, config.leg_name[ii-1]);
34
        ui->legTime_layout->addWidget(lt[ii]);
35
        ui->legTime_layout->addWidget(lt[ii]);
35
        connect (lt[ii], SIGNAL(dataChanged()), this, SLOT(recalculateTimes()) );
36
        connect (lt[ii], SIGNAL(dataChanged()), this, SLOT(recalculateTimes()) );
36
    }
37
    }
-
 
38
    lt[0] = new QmLegTimes(0, "Overall Event");
-
 
39
    ui->legTime_layout->addWidget(lt[0]);
37
 
40
 
38
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
41
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
39
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
42
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
40
    connect(ui->teamNumber, SIGNAL(valueChanged(int)), this, SLOT(populate(int)) );
43
    connect(ui->teamNumber, SIGNAL(valueChanged(int)), this, SLOT(populate(int)) );
41
}
44
}
Line 54... Line 57...
54
    ** Basic Data
57
    ** Basic Data
55
    */
58
    */
56
    ui->name->setText( team_buf.name );
59
    ui->name->setText( team_buf.name );
57
    ui->category_abr->setText( config.team_class[team_buf.teamclass - 1].abr );
60
    ui->category_abr->setText( config.team_class[team_buf.teamclass - 1].abr );
58
    ui->category->setCurrentIndex(team_buf.teamclass - 1);
61
    ui->category->setCurrentIndex(team_buf.teamclass - 1);
-
 
62
    //TODO: Link update of combo box to the abreviation display
59
 
63
 
60
    /*
64
    /*
61
    ** Team Member data
65
    ** Team Member data
62
    */
66
    */
63
    for ( int ii = 0; ii < config.num_legs; ii ++)
67
    for ( int ii = 0; ii < config.num_legs; ii ++)
Line 83... Line 87...
83
    ui->members->resizeColumnsToContents();
87
    ui->members->resizeColumnsToContents();
84
 
88
 
85
    /*
89
    /*
86
    ** Leg Times
90
    ** Leg Times
87
    */
91
    */
88
    for ( int ii = 0 ; ii < config.num_legs; ii++)
92
    for ( int ii = 0 ; ii <= config.num_legs; ii++)
89
    {
93
    {
90
        lt[ii]->setData(&team_buf.leg[1+ii]);
94
        lt[ii]->setData(&team_buf.leg[ii]);
91
    }
95
    }
92
}
96
}
93
 
97
 
94
void teamDisplay::recalculateTimes( void )
98
void teamDisplay::recalculateTimes( void )
95
{
99
{
96
    for ( int ii = 0 ; ii < config.num_legs; ii++)
100
    for ( int ii = 0 ; ii <= config.num_legs; ii++)
97
    {
101
    {
98
        lt[ii]->getData(&team_buf.leg[1+ii]);
102
        lt[ii]->getData(&team_buf.leg[ii]);
99
    }
103
    }
100
    set_times( &team_buf );
104
    set_times( &team_buf );
101
    test_times( &team_buf, 0 );
105
    test_times( &team_buf, 0 );
102
    for ( int ii = 0 ; ii < config.num_legs; ii++)
106
    for ( int ii = 0 ; ii <= config.num_legs; ii++)
103
    {
107
    {
104
        lt[ii]->setData(&team_buf.leg[1+ii]);
108
        lt[ii]->setData(&team_buf.leg[ii]);
105
    }
109
    }
106
}
110
}
107
 
111
 
108
void teamDisplay::save(void)
112
void teamDisplay::save(void)
109
{
113
{
110
    /*
114
    /*
111
    ** Extract data from the widgets
115
    ** Extract data from the widgets
112
    ** The time stuff is done on the fly as it changes
116
    ** The time stuff is done on the fly as it changes
113
    */
117
    */
-
 
118
    strncpy(team_buf.name , qPrintable(ui->name->text()), sizeof(team_buf.name));
-
 
119
    team_buf.teamclass = ui->category->currentIndex() + 1;
-
 
120
 
-
 
121
    /*
-
 
122
    ** Extract Team Member Data
-
 
123
    */
-
 
124
    for ( int ii = 0; ii < config.num_legs; ii ++)
-
 
125
    {
-
 
126
        QTableWidgetItem *item;
-
 
127
        item = ui->members->item ( ii, 0 );
-
 
128
        strncpy(team_buf.members[ii].name , qPrintable(item->text()), sizeof(team_buf.members[ii].name));
-
 
129
 
-
 
130
        //TODO: Make Sex edit work
-
 
131
        item = ui->members->item ( ii, 1 );
-
 
132
        switch (item->data(Qt::EditRole).toInt())
-
 
133
        {
-
 
134
            case Qt::Unchecked: team_buf.members[ii].sex = male;  break;
-
 
135
            case Qt::Checked: team_buf.members[ii].sex = female; break;
-
 
136
            default: team_buf.members[ii].sex = unknown; break;
-
 
137
        }
-
 
138
 
-
 
139
        item = ui->members->item ( ii, 2 );
-
 
140
        team_buf.members[ii].age = item->data(Qt::EditRole).toInt();
-
 
141
 
-
 
142
    }
-
 
143
    //TODO : Mainatin age summary
-
 
144
 
-
 
145
    /*
-
 
146
    ** Save the record back to disk
-
 
147
    */
-
 
148
    put_team_record( team, &team_buf );
114
}
149
}
115
 
150
 
116
void teamDisplay::cancel(void)
151
void teamDisplay::cancel(void)
117
{
152
{
118
    populate(team);
153
    populate(team);