Subversion Repositories svn1-original

Rev

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

Rev Author Line No. Line
133 david 1
#include "qmdialoglegstarttimes.h"
2
#include "ui_qmdialoglegstarttimes.h"
135 david 3
#include "QPushButton"
4
#include    "consts.h"
5
#include    "structs.h"
6
#include    "proto.h"
324 david 7
#include "qmconfig.h"
133 david 8
 
134 - 9
QmDialogLegStartTimes::QmDialogLegStartTimes(const QString &title, QWidget *parent) :
133 david 10
    QDialog(parent),
11
    ui(new Ui::QmDialogLegStartTimes)
12
{
134 - 13
    ui->setupUi( this );
14
    this->setWindowTitle(title);
324 david 15
 
135 david 16
    ui->legNumber->setMaximum(config.num_legs);
207 - 17
    ui->deltaTimeEdit->setEnabled(false);
255 - 18
    ui->deltaTimeSecs->setEnabled(false);
207 - 19
    ui->timeEdit->setEnabled(false);
135 david 20
 
324 david 21
    // Seed Leg Number from previous use
22
    enableDone( appSettings->value("LegStartTimes/Leg",0).toInt());
23
    ui->invalidateTimes->setChecked(appSettings->value("LegStartTimes/InvalidateTimes",false).toBool());
24
    ui->genLegStartReport->setChecked(appSettings->value("LegStartTimes/GenerateReport",false).toBool());
25
 
26
 
135 david 27
    connect (ui->legNumber, SIGNAL(valueChanged(int)), this, SLOT(enableDone(int)));
255 - 28
    connect (ui->deltaTimeEdit, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(updateSecs()) );
133 david 29
}
30
 
135 david 31
void QmDialogLegStartTimes::enableDone(int val)
32
{
324 david 33
   ui->legNumber->setValue(val);
34
 
135 david 35
    QPushButton *okb = ui->buttonBox->button ( QDialogButtonBox::Ok );
36
    if ( okb )
37
    {
38
        okb->setEnabled( val != 0 );
256 - 39
        if ( val )
40
        {
41
            ui->legName->setText(config.leg_name[val - 1] );
42
        }
43
        else
44
        {
45
            ui->legName->clear();
46
        }
135 david 47
    }
48
    else
49
    {
136 david 50
        qDebug ("Can't find OK button");
135 david 51
    }
52
}
53
 
255 - 54
void QmDialogLegStartTimes::updateSecs(void)
55
{
56
    time_t t = getDeltaTime();
57
    ui->deltaTimeSecs->setText(QString::number(t) + " Secs");
58
}
59
 
135 david 60
void QmDialogLegStartTimes::setTimeLabel(const QString &label)
61
{
62
    ui->label_time->setText(label);
207 - 63
    ui->timeEdit->setEnabled(true);
324 david 64
    ui->timeEdit->setTime(appSettings->value("LegStartTimes/Time",0).toTime());
135 david 65
}
66
 
67
void QmDialogLegStartTimes::setDeltaTimeLabel(const QString &label)
68
{
69
    ui->label_delta_time->setText(label);
207 - 70
    ui->deltaTimeEdit->setEnabled(true);
324 david 71
    ui->deltaTimeEdit->setTime(appSettings->value("LegStartTimes/DeltaTime",0).toTime());
135 david 72
}
73
 
134 - 74
int QmDialogLegStartTimes::getLeg ( void )
75
{
76
    return ui->legNumber->value();
77
}
78
 
79
time_t QmDialogLegStartTimes::getTime ( void )
80
{
81
    return QTime(0,0,0).secsTo(ui->timeEdit->time());
82
}
83
 
135 david 84
time_t QmDialogLegStartTimes::getDeltaTime ( void )
85
{
86
    return QTime(0,0,0).secsTo(ui->deltaTimeEdit->time());
87
}
88
 
134 - 89
bool QmDialogLegStartTimes::getReport(void)
90
{
91
    return ui->genLegStartReport->checkState();
92
}
93
 
94
bool QmDialogLegStartTimes::getClear(void)
95
{
96
    return ui->invalidateTimes->checkState();
97
}
98
 
207 - 99
void QmDialogLegStartTimes::setDescription(const QString &text)
100
{
101
    ui->description->setText(text);
102
}
103
 
133 david 104
QmDialogLegStartTimes::~QmDialogLegStartTimes()
105
{
324 david 106
 
107
    /*
108
    ** Save out the user settings 
109
    **  Before the dialog is deconstructed
110
    **  Even if the user is cancelling
111
    */
112
    appSettings->setValue("LegStartTimes/Leg", getLeg());
113
    appSettings->setValue("LegStartTimes/InvalidateTimes", getClear());
114
    appSettings->setValue("LegStartTimes/GenerateReport", getReport());
115
    if (ui->timeEdit->isEnabled())
116
    {
117
        appSettings->setValue("LegStartTimes/Time", ui->timeEdit->time().toString("HH:mm:ss")); 
118
    }
119
    if (ui->deltaTimeEdit->isEnabled())
120
    {
121
        appSettings->setValue("LegStartTimes/DeltaTime", ui->deltaTimeEdit->time().toString("HH:mm:ss")); 
122
    }
123
 
124
    /*
125
    ** Now delete the UI
126
    */
133 david 127
    delete ui;
128
}