Fixup edit interval

.. now updates the ridefile (via updateRideFileintervals)
.. and uses a QTimeEdit rather than raw seconds
This commit is contained in:
Mark Liversedge
2013-03-17 19:42:38 +00:00
parent 1e635455a6
commit fcd34cbae1
3 changed files with 21 additions and 13 deletions

View File

@@ -27,7 +27,7 @@ IntervalItem::IntervalItem(const RideFile *ride, QString name, double start, dou
/*----------------------------------------------------------------------
* Edit Interval dialog
*--------------------------------------------------------------------*/
EditIntervalDialog::EditIntervalDialog(QWidget *parent, IntervalItem *interval) :
EditIntervalDialog::EditIntervalDialog(QWidget *parent, IntervalItem &interval) :
QDialog(parent, Qt::Dialog), interval(interval)
{
setWindowTitle(tr("Edit Interval"));
@@ -40,13 +40,15 @@ EditIntervalDialog::EditIntervalDialog(QWidget *parent, IntervalItem *interval)
QLabel *to = new QLabel("To");
nameEdit = new QLineEdit(this);
nameEdit->setText(interval->text(0));
nameEdit->setText(interval.text(0));
fromEdit = new QLineEdit(this);
fromEdit->setText(QString("%1").arg(interval->start));
fromEdit = new QTimeEdit(this);
fromEdit->setDisplayFormat("hh:mm:ss");
fromEdit->setTime(QTime(0,0,0,0).addSecs(interval.start));
toEdit = new QLineEdit(this);
toEdit->setText(QString("%1").arg(interval->stop));
toEdit = new QTimeEdit(this);
toEdit->setDisplayFormat("hh:mm:ss");
toEdit->setTime(QTime(0,0,0,0).addSecs(interval.stop));
grid->addWidget(name, 0,0);
grid->addWidget(nameEdit, 0,1);
@@ -75,9 +77,9 @@ void
EditIntervalDialog::applyClicked()
{
// get the values back
interval->setText(0, nameEdit->text());
interval->start = fromEdit->text().toInt();
interval->stop = toEdit->text().toInt();
interval.setText(0, nameEdit->text());
interval.start = QTime(0,0,0).secsTo(fromEdit->time());
interval.stop = QTime(0,0,0).secsTo(toEdit->time());
accept();
}
void

View File

@@ -61,18 +61,18 @@ class EditIntervalDialog : public QDialog
public:
EditIntervalDialog(QWidget *, IntervalItem *);
EditIntervalDialog(QWidget *, IntervalItem &);
public slots:
void applyClicked();
void cancelClicked();
private:
IntervalItem *interval;
IntervalItem &interval;
QPushButton *applyButton, *cancelButton;
QLineEdit *nameEdit;
QLineEdit *fromEdit, *toEdit;
QTimeEdit *fromEdit, *toEdit;
};
#endif // _GC_IntervalItem_h

View File

@@ -2396,6 +2396,8 @@ MainWindow::renameIntervalsSelected()
if (allIntervals->child(i)->isSelected())
allIntervals->child(i)->setText(0, QString("%1%2").arg(string).arg(number++));
}
updateRideFileIntervals(); // will emit intervalChanged() signal
}
}
@@ -2430,6 +2432,7 @@ MainWindow::renameIntervalSelected()
break;
} else i++;
}
updateRideFileIntervals(); // will emit intervalChanged() signal
}
void
@@ -2455,9 +2458,12 @@ MainWindow::editIntervalSelected()
void
MainWindow::editInterval()
{
EditIntervalDialog dialog(this, activeInterval);
IntervalItem temp = *activeInterval;
EditIntervalDialog dialog(this, temp);
if (dialog.exec()) {
*activeInterval = temp;
updateRideFileIntervals(); // will emit intervalChanged() signal
}
}