Subversion Repositories svn1

Rev

Rev 113 | Blame | Last modification | View Log | RSS feed

#include "teamdisplay.h"
#include "ui_teamdisplay.h"
#include "spinboxdelegate.h"
#include "timedelegate.h"
#include "textdelegate.h"

teamDisplay::teamDisplay(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::teamDisplay)
{
    ui->setupUi(this);
    team = 0;

    /*
    ** Populate the Combo Box
    ** Should do more often
    */
    for ( int ii = 0; ii < config.num_class ; ii++)
    {
        ui->category->addItem(config.team_class[ii].full_name, ii);
    }
    ui->category->setCurrentIndex(-1);

    ui->members->setItemDelegateForColumn(0, new textDelegate(MAX_PERSON_NAME));
  //ui->members->setItemDelegateForColumn(1, new timeDelegate());
    ui->members->setItemDelegateForColumn(2, new SpinBoxDelegate(0,120));

    for ( int ii = 0 ; ii < config.num_legs; ii++)
    {
        QmLegTimes * lt = new QmLegTimes(config.leg_name[ii]);
        ui->legTime_layout->addWidget(lt);
    }

    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
    connect(ui->teamNumber, SIGNAL(valueChanged(int)), this, SLOT(populate(int)) );
}

teamDisplay::~teamDisplay()
{
    delete ui;
}

void teamDisplay::populate(int team_number)
{
    team = team_number;
    g_record( team, &team_buf );

    /*
    ** Basic Data
    */
    ui->name->setText( team_buf.name );
    ui->category_abr->setText( config.team_class[team_buf.teamclass - 1].abr );
    ui->category->setCurrentIndex(team_buf.teamclass - 1);

    /*
    ** Team Member data
    */
    for ( int ii = 0; ii < config.num_legs; ii ++)
    {
         QTableWidgetItem *item;
        ui->members->setItem(ii, 0, new QTableWidgetItem(team_buf.members[ii].name) );

        item = new QTableWidgetItem();
        enum Qt::CheckState sex;
        switch ( team_buf.members[ii].sex )
        {
            case male:   sex = Qt::Unchecked;        break;
            case female: sex = Qt::Checked;          break;
            default:     sex = Qt::PartiallyChecked; break;
        }
        item->setCheckState(sex );
        ui->members->setItem(ii, 1, item );

        item = new QTableWidgetItem();
        item->setData(Qt::EditRole,team_buf.members[ii].age);
        ui->members->setItem(ii, 2, item );
    }
    ui->members->resizeColumnsToContents();
}

void teamDisplay::save(void)
{
}

void teamDisplay::cancel(void)
{
    populate(team);
}

void teamDisplay::changeEvent(QEvent *e)
{
//qDebug("ChangeEvent: %d",e->type());
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}