#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; }