Subversion Repositories svn1-original

Rev

Rev 381 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "qmdialoglegstarttimes.h"
#include "ui_qmdialoglegstarttimes.h"
#include "QPushButton"
#include    "consts.h"
#include    "structs.h"
#include    "proto.h"
#include "qmconfig.h"

QmDialogLegStartTimes::QmDialogLegStartTimes(const QString &title, QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QmDialogLegStartTimes)
{
    ui->setupUi( this );
    this->setWindowTitle(title);

    ui->legNumber->setMaximum(config.num_legs);
    ui->deltaTimeEdit->setEnabled(false);
    ui->deltaTimeSecs->setEnabled(false);
    ui->timeEdit->setEnabled(false);

    // Seed Leg Number from previous use
    enableDone( appSettings->value("LegStartTimes/Leg",0).toInt());
    ui->invalidateTimes->setChecked(appSettings->value("LegStartTimes/InvalidateTimes",false).toBool());
    ui->genLegStartReport->setChecked(appSettings->value("LegStartTimes/GenerateReport",false).toBool());


    connect (ui->legNumber, SIGNAL(valueChanged(int)), this, SLOT(enableDone(int)));
    connect (ui->deltaTimeEdit, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(updateSecs()) );
}

void QmDialogLegStartTimes::enableDone(int val)
{
   ui->legNumber->setValue(val);

    QPushButton *okb = ui->buttonBox->button ( QDialogButtonBox::Ok );
    if ( okb )
    {
        okb->setEnabled( val != 0 );
        if ( val )
        {
            ui->legName->setText(config.leg_name[val - 1] );
        }
        else
        {
            ui->legName->clear();
        }
    }
    else
    {
        qDebug ("Can't find OK button");
    }
}

void QmDialogLegStartTimes::updateSecs(void)
{
    time_t t = getDeltaTime();
    ui->deltaTimeSecs->setText(QString::number(t) + " Secs");
}

void QmDialogLegStartTimes::setTimeLabel(const QString &label)
{
    ui->label_time->setText(label);
    ui->timeEdit->setEnabled(true);
    ui->timeEdit->setTime(appSettings->value("LegStartTimes/Time",0).toTime());
}

void QmDialogLegStartTimes::setDeltaTimeLabel(const QString &label)
{
    ui->label_delta_time->setText(label);
    ui->deltaTimeEdit->setEnabled(true);
    ui->deltaTimeEdit->setTime(appSettings->value("LegStartTimes/DeltaTime",0).toTime());
}

int QmDialogLegStartTimes::getLeg ( void )
{
    return ui->legNumber->value();
}

time_t QmDialogLegStartTimes::getTime ( void )
{
    return QTime(0,0,0).secsTo(ui->timeEdit->time());
}

time_t QmDialogLegStartTimes::getDeltaTime ( void )
{
    return QTime(0,0,0).secsTo(ui->deltaTimeEdit->time());
}

bool QmDialogLegStartTimes::getReport(void)
{
    return ui->genLegStartReport->checkState();
}

bool QmDialogLegStartTimes::getClear(void)
{
    return ui->invalidateTimes->checkState();
}

void QmDialogLegStartTimes::setDescription(const QString &text)
{
    ui->description->setText(text);
}

QmDialogLegStartTimes::~QmDialogLegStartTimes()
{

    /*
    ** Save out the user settings 
    **  Before the dialog is deconstructed
    **  Even if the user is cancelling
    */
    appSettings->setValue("LegStartTimes/Leg", getLeg());
    appSettings->setValue("LegStartTimes/InvalidateTimes", getClear());
    appSettings->setValue("LegStartTimes/GenerateReport", getReport());
    if (ui->timeEdit->isEnabled())
    {
        appSettings->setValue("LegStartTimes/Time", ui->timeEdit->time().toString("HH:mm:ss")); 
    }
    if (ui->deltaTimeEdit->isEnabled())
    {
        appSettings->setValue("LegStartTimes/DeltaTime", ui->deltaTimeEdit->time().toString("HH:mm:ss")); 
    }

    /*
    ** Now delete the UI
    */
    delete ui;
}