Rev 381 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*============================================================================**** Project/Product :** Filename : qmlegtimes.cpp** Author(s) : DDP**** Description : Display and edit leg time information****** Information :** Compiler : ANSI C++** Target :*****==========================================================================*/#include "qmlegtimes.h"#include "ui_qmlegtimes.h"/*----------------------------------------------------------------------------** FUNCTION : QmLegTimes**** DESCRIPTION : Constructor****** INPUTS : legnum** name** parent**** RETURNS :**----------------------------------------------------------------------------*/QmLegTimes::QmLegTimes(const int legnum, const QString &name, QWidget *parent) :QWidget(parent),ui(new Ui::QmLegTimes){ui->setupUi(this);leg = legnum;inSetData = FALSE;ui->legName->setText(name);/*** Wire up the edit signals** Leg-0 is special as its all calculated data and not editable*/if ( leg ){connect( ui->checkBox, SIGNAL(stateChanged(int)), this, SLOT(enableStartTime(int)) );connect( ui->startTime, SIGNAL(timeChanged(QTime)), this, SLOT(updateData(void)) );connect( ui->endTime, SIGNAL(timeChanged(QTime)), this, SLOT(updateData(void)) );}else{ui->checkBox->setEnabled(FALSE);ui->startTime->setEnabled(FALSE);ui->endTime->setEnabled(FALSE);}}/*----------------------------------------------------------------------------** FUNCTION : ~QmLegTimes**** DESCRIPTION : Descructor****** INPUTS :**** RETURNS :**----------------------------------------------------------------------------*/QmLegTimes::~QmLegTimes(){delete ui;}/*----------------------------------------------------------------------------** FUNCTION : cleanPlace**** DESCRIPTION : Convert place data to nice text****** INPUTS : data - Number to process**** RETURNS :**----------------------------------------------------------------------------*/QString cleanPlace(int data) {if (data <= 0)return "-";elsereturn QString::number(data);}/*----------------------------------------------------------------------------** FUNCTION : setData**** DESCRIPTION : Populate the widget with data from a team entry****** INPUTS : data - Leg entry to source data from**** RETURNS :**----------------------------------------------------------------------------*/void QmLegTimes::setData(leg_type *data){inSetData = TRUE;if (data->start < 0 ){ui->startTime->setTime(QTime(0,0,0,0));}else{ui->startTime->setTime(QTime().addSecs(data->start));}ui->startTime->setEnabled(data->manual);if ( data->end < 0 ){ui->endTime->setTime(QTime(0,0,0,0));}else{ui->endTime->setTime(QTime().addSecs(data->end));}if ( data->elapsed < 0 ){ui->elapsedTime->setText(QTime().toString("HH:mm:ss"));}else{ui->elapsedTime->setText(QTime().addSecs(data->elapsed).toString("HH:mm:ss"));}ui->checkBox->setChecked(data->manual);ui->lc_place->setText(cleanPlace(data->lc_place));ui->le_place->setText(cleanPlace(data->le_place));ui->l_place->setText(cleanPlace(data->l_place));ui->lec_place->setText(cleanPlace(data->lec_place));inSetData = FALSE;}/*----------------------------------------------------------------------------** FUNCTION : getData**** DESCRIPTION : Return widget data directly into the leg data structure****** INPUTS : data - ref to target data**** RETURNS :**----------------------------------------------------------------------------*/void QmLegTimes::getData(leg_type *data){data->manual = ui->checkBox->checkState();data->start = QTime(0,0,0).secsTo(ui->startTime->time());data->end = QTime(0,0,0).secsTo(ui->endTime->time());}/*----------------------------------------------------------------------------** FUNCTION : enableStartTime**** DESCRIPTION : Maintain the state of the starttime widget****** INPUTS : state - New state**** RETURNS :**----------------------------------------------------------------------------*/void QmLegTimes::enableStartTime( int state ){ui->startTime->setEnabled(state);updateData();}/*----------------------------------------------------------------------------** FUNCTION : updateData**** DESCRIPTION : Indicate that data has changed** This will result in all data in all legs being updated****** INPUTS :**** RETURNS :**----------------------------------------------------------------------------*/void QmLegTimes::updateData(void){if ( ! inSetData ){//qDebug("TimeChanged");emit dataChanged();}}/*----------------------------------------------------------------------------** FUNCTION : changeEvent**** DESCRIPTION :****** INPUTS :**** RETURNS :**----------------------------------------------------------------------------*/void QmLegTimes::changeEvent(QEvent *e){QWidget::changeEvent(e);switch (e->type()) {case QEvent::LanguageChange:ui->retranslateUi(this);break;default:break;}}