Subversion Repositories svn1

Rev

Rev 188 | Rev 380 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "qmeventstatus.h"
#include "ui_qmeventstatus.h"
#include "qmstatusitem.h"
#include "QGroupBox"
#include    "consts.h"
#include    "structs.h"
#include    "proto.h"

QmEventStatus::QmEventStatus(QWidget *parent) :
    QWidget(parent)
{
    resize ( 600,400);

    verticalLayout = new QVBoxLayout(this);
    verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
    verticalLayout->setContentsMargins(0, 0, 0, 0);
    scrollArea = new QScrollArea(this);
    scrollArea->setObjectName(QString::fromUtf8("scrollArea"));
    scrollArea->setWidgetResizable(true);
    scrollAreaWidgetContents = new QWidget();
    scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
    scrollAreaWidgetContents->setGeometry(QRect(0, 0, 395, 264));
    scrollArea->setWidget(scrollAreaWidgetContents);

    verticalLayout->addWidget(scrollArea);

    buttonBox = new QDialogButtonBox(this);
    buttonBox->setOrientation(Qt::Horizontal);
    buttonBox->addButton( new QPushButton("Recalc"),QDialogButtonBox::AcceptRole);
    QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(calculate()));

    verticalLayout->addWidget(buttonBox);

    QVBoxLayout *verticalLayout2 = new QVBoxLayout(scrollAreaWidgetContents);

    for( int j = 0; j <= config.num_class; j++ )
    {
        QGroupBox * groupBox = new QGroupBox(j ? config.team_class[j - 1].full_name : "Complete Event");
        groupBox->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
        verticalLayout2->addWidget(groupBox);
        QHBoxLayout * horizontalLayout = new QHBoxLayout(groupBox);

        for( int i = 0; i <= config.num_legs; i++ )
        {
            QmStatusItem * item = new QmStatusItem(i ? config.leg_name[i - 1] : "Overall");
            statusItems[i][j] = item;
            //item->setData(stats.fast.team[i][j], stats.fast.time[i][j],stats.average[i][j] );
            horizontalLayout->addWidget ( item );
        }
    }

    //calculate();
}

void QmEventStatus::calculate(void)
{
    if( load_report_data() )
    {
        srt_place();
        qDebug("Calulate Event Status");
        for( int j = 0; j <= config.num_class; j++ )
        {
            for( int i = 0; i <= config.num_legs; i++ )
            {
                QmStatusItem * item = statusItems[i][j];
                item->setData(stats.fast.team[i][j], stats.fast.time[i][j],stats.average[i][j] );
            }
        }
    }
}

void QmEventStatus::showEvent ( QShowEvent * event )
{
    //qDebug("QmEventStatus::showEvent");
    if ( ! event->spontaneous() )
    {
        calculate();
    }
}

QmEventStatus::~QmEventStatus()
{

}