Subversion Repositories svn1

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
112 david 1
#include "teamdisplay.h"
2
#include "ui_teamdisplay.h"
3
#include "spinboxdelegate.h"
4
#include "timedelegate.h"
5
#include "textdelegate.h"
6
 
7
teamDisplay::teamDisplay(QWidget *parent) :
8
    QWidget(parent),
9
    ui(new Ui::teamDisplay)
10
{
11
    ui->setupUi(this);
12
    team = 0;
13
 
14
    /*
15
    ** Populate the Combo Box
16
    ** Should do more often
17
    */
18
    for ( int ii = 0; ii < config.num_class ; ii++)
19
    {
20
        ui->category->addItem(config.team_class[ii].full_name, ii);
21
    }
22
    ui->category->setCurrentIndex(-1);
23
 
113 david 24
    ui->members->setItemDelegateForColumn(0, new textDelegate(MAX_PERSON_NAME));
25
  //ui->members->setItemDelegateForColumn(1, new timeDelegate());
26
    ui->members->setItemDelegateForColumn(2, new SpinBoxDelegate(0,120));
112 david 27
 
121 david 28
    /*
29
    ** Insert widgets for the Team Times
30
    */
118 david 31
    for ( int ii = 0 ; ii < config.num_legs; ii++)
32
    {
119 david 33
        lt[ii] = new QmLegTimes(ii, config.leg_name[ii]);
34
        ui->legTime_layout->addWidget(lt[ii]);
121 david 35
        connect (lt[ii], SIGNAL(dataChanged()), this, SLOT(recalculateTimes()) );
118 david 36
    }
37
 
112 david 38
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
39
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
40
    connect(ui->teamNumber, SIGNAL(valueChanged(int)), this, SLOT(populate(int)) );
41
}
42
 
43
teamDisplay::~teamDisplay()
44
{
45
    delete ui;
46
}
47
 
48
void teamDisplay::populate(int team_number)
49
{
50
    team = team_number;
51
    g_record( team, &team_buf );
52
 
53
    /*
54
    ** Basic Data
55
    */
56
    ui->name->setText( team_buf.name );
57
    ui->category_abr->setText( config.team_class[team_buf.teamclass - 1].abr );
58
    ui->category->setCurrentIndex(team_buf.teamclass - 1);
59
 
60
    /*
61
    ** Team Member data
62
    */
63
    for ( int ii = 0; ii < config.num_legs; ii ++)
64
    {
65
         QTableWidgetItem *item;
66
        ui->members->setItem(ii, 0, new QTableWidgetItem(team_buf.members[ii].name) );
67
 
68
        item = new QTableWidgetItem();
69
        enum Qt::CheckState sex;
70
        switch ( team_buf.members[ii].sex )
71
        {
113 david 72
            case male:   sex = Qt::Unchecked;        break;
73
            case female: sex = Qt::Checked;          break;
74
            default:     sex = Qt::PartiallyChecked; break;
112 david 75
        }
76
        item->setCheckState(sex );
77
        ui->members->setItem(ii, 1, item );
78
 
79
        item = new QTableWidgetItem();
80
        item->setData(Qt::EditRole,team_buf.members[ii].age);
81
        ui->members->setItem(ii, 2, item );
82
    }
113 david 83
    ui->members->resizeColumnsToContents();
119 david 84
 
85
    /*
86
    ** Leg Times
87
    */
88
    for ( int ii = 0 ; ii < config.num_legs; ii++)
89
    {
90
        lt[ii]->setData(&team_buf.leg[1+ii]);
91
    }
112 david 92
}
93
 
121 david 94
void teamDisplay::recalculateTimes( void )
95
{
96
    for ( int ii = 0 ; ii < config.num_legs; ii++)
97
    {
98
        lt[ii]->getData(&team_buf.leg[1+ii]);
99
    }
100
    set_times( &team_buf );
101
    test_times( &team_buf, 0 );
102
    for ( int ii = 0 ; ii < config.num_legs; ii++)
103
    {
104
        lt[ii]->setData(&team_buf.leg[1+ii]);
105
    }
106
}
107
 
112 david 108
void teamDisplay::save(void)
109
{
121 david 110
    /*
111
    ** Extract data from the widgets
112
    ** The time stuff is done on the fly as it changes
113
    */
112 david 114
}
115
 
116
void teamDisplay::cancel(void)
117
{
118
    populate(team);
119
}
120
 
121
void teamDisplay::changeEvent(QEvent *e)
122
{
113 david 123
//qDebug("ChangeEvent: %d",e->type());
112 david 124
    QWidget::changeEvent(e);
125
    switch (e->type()) {
126
    case QEvent::LanguageChange:
127
        ui->retranslateUi(this);
128
        break;
129
    default:
130
        break;
131
    }
132
}