Subversion Repositories svn1

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
143 david 1
/*============================================================================
2
**
3
**  Project/Product :
4
**  Filename        : qmlegtimes.cpp
5
**  Author(s)       : DDP
6
**
7
**  Description     : Display and edit leg time information
8
**
9
**
10
**  Information     :
11
**   Compiler       : ANSI C++
12
**   Target         : 
13
**
14
***==========================================================================*/
15
 
118 david 16
#include "qmlegtimes.h"
17
#include "ui_qmlegtimes.h"
18
 
143 david 19
/*----------------------------------------------------------------------------
20
** FUNCTION           : QmLegTimes
21
**
22
** DESCRIPTION        : Constructor
23
**
24
**
25
** INPUTS             : legnum
26
**                      name
27
**                      parent
28
**
29
** RETURNS            :
30
**
31
----------------------------------------------------------------------------*/
32
 
119 david 33
QmLegTimes::QmLegTimes(const int legnum, const QString &name, QWidget *parent) :
118 david 34
    QWidget(parent),
35
    ui(new Ui::QmLegTimes)
36
{
37
    ui->setupUi(this);
119 david 38
    leg = legnum;
121 david 39
    inSetData = FALSE;
118 david 40
    ui->legName->setText(name);
119 david 41
 
143 david 42
    /*
43
    **  Wire up the edit signals
44
    **  Leg-0 is special as its all calculated data and not editable
45
    */
126 david 46
    if ( leg )
123 - 47
    {
48
        connect( ui->checkBox,  SIGNAL(stateChanged(int)),  this, SLOT(enableStartTime(int)) );
49
        connect( ui->startTime, SIGNAL(timeChanged(QTime)), this, SLOT(updateData(void)) );
50
        connect( ui->endTime,   SIGNAL(timeChanged(QTime)), this, SLOT(updateData(void)) );
51
    }
52
    else
53
    {
54
        ui->checkBox->setEnabled(FALSE);
55
        ui->startTime->setEnabled(FALSE);
56
        ui->endTime->setEnabled(FALSE);
57
    }
118 david 58
}
59
 
143 david 60
/*----------------------------------------------------------------------------
61
** FUNCTION           : ~QmLegTimes
62
**
63
** DESCRIPTION        : Descructor
64
**
65
**
66
** INPUTS             :
67
**
68
** RETURNS            :
69
**
70
----------------------------------------------------------------------------*/
71
 
72
QmLegTimes::~QmLegTimes()
73
{
74
    delete ui;
75
}
76
 
77
/*----------------------------------------------------------------------------
78
** FUNCTION           : setData
79
**
80
** DESCRIPTION        : Populate the widget with data from a team entry
81
**
82
**
83
** INPUTS             : data        - Leg entry to source data from
84
**
85
** RETURNS            :
86
**
87
----------------------------------------------------------------------------*/
88
 
119 david 89
void QmLegTimes::setData(leg_type *data)
90
{
121 david 91
    inSetData = TRUE;
92
    if (data->start < 0 )
93
    {
94
        ui->startTime->setTime(QTime(0,0,0,0));
95
    }
96
    else
97
    {
98
        ui->startTime->setTime(QTime().addSecs(data->start));
99
    }
100
 
119 david 101
    ui->startTime->setEnabled(data->manual);
121 david 102
    if ( data->end < 0 )
103
    {
104
        ui->endTime->setTime(QTime(0,0,0,0));
105
    }
106
    else
107
    {
108
        ui->endTime->setTime(QTime().addSecs(data->end));
109
    }
110
 
111
    if ( data->elapsed < 0 )
112
    {
113
        ui->elapsedTime->setText(QTime().toString("HH:mm:ss"));
114
    }
115
    else
116
    {
117
        ui->elapsedTime->setText(QTime().addSecs(data->elapsed).toString("HH:mm:ss"));
118
    }
119 david 119
    ui->checkBox->setChecked(data->manual);
120
    ui->lc_place->setText(QString::number(data->lc_place));
121
    ui->le_place->setText(QString::number(data->le_place));
122
    ui->l_place->setText(QString::number(data->l_place));
123
    ui->lec_place->setText(QString::number(data->lec_place));
121 david 124
    inSetData = FALSE;
119 david 125
}
126
 
143 david 127
/*----------------------------------------------------------------------------
128
** FUNCTION           : getData
129
**
130
** DESCRIPTION        : Return widget data directly into the leg data structure
131
**
132
**
133
** INPUTS             : data        - ref to target data
134
**
135
** RETURNS            :
136
**
137
----------------------------------------------------------------------------*/
138
 
139
 
121 david 140
void QmLegTimes::getData(leg_type *data)
141
{
142
    data->manual = ui->checkBox->checkState();
143
    data->start = QTime(0,0,0).secsTo(ui->startTime->time());
144
    data->end = QTime(0,0,0).secsTo(ui->endTime->time());
145
}
146
 
143 david 147
/*----------------------------------------------------------------------------
148
** FUNCTION           : enableStartTime
149
**
150
** DESCRIPTION        : Maintain the state of the starttime widget
151
**
152
**
153
** INPUTS             : state       - New state
154
**
155
** RETURNS            :
156
**
157
----------------------------------------------------------------------------*/
121 david 158
 
143 david 159
 
119 david 160
void QmLegTimes::enableStartTime( int state )
161
{
162
    ui->startTime->setEnabled(state);
121 david 163
    updateData();
119 david 164
}
165
 
143 david 166
/*----------------------------------------------------------------------------
167
** FUNCTION           : updateData
168
**
169
** DESCRIPTION        : Indicate that data has changed
170
**                      This will result in all data in all legs being updated
171
**
172
**
173
** INPUTS             :
174
**
175
** RETURNS            :
176
**
177
----------------------------------------------------------------------------*/
178
 
121 david 179
void QmLegTimes::updateData(void)
120 david 180
{
121 david 181
    if ( ! inSetData )
182
    {
177 - 183
        //qDebug("TimeChanged");
121 david 184
        emit dataChanged();
185
    }
120 david 186
}
187
 
143 david 188
/*----------------------------------------------------------------------------
189
** FUNCTION           : changeEvent 
190
**
191
** DESCRIPTION        :
192
**
193
**
194
** INPUTS             :
195
**
196
** RETURNS            :
197
**
198
----------------------------------------------------------------------------*/
118 david 199
 
143 david 200
 
118 david 201
void QmLegTimes::changeEvent(QEvent *e)
202
{
203
    QWidget::changeEvent(e);
204
    switch (e->type()) {
205
    case QEvent::LanguageChange:
206
        ui->retranslateUi(this);
207
        break;
208
    default:
209
        break;
210
    }
211
}