From fcd34cbae1d257303df307174d3adfb0af6bc4e2 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Sun, 17 Mar 2013 19:42:38 +0000 Subject: [PATCH] Fixup edit interval .. now updates the ridefile (via updateRideFileintervals) .. and uses a QTimeEdit rather than raw seconds --- src/IntervalItem.cpp | 20 +++++++++++--------- src/IntervalItem.h | 6 +++--- src/MainWindow.cpp | 8 +++++++- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/IntervalItem.cpp b/src/IntervalItem.cpp index f22d26b4d..679b048a2 100644 --- a/src/IntervalItem.cpp +++ b/src/IntervalItem.cpp @@ -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 diff --git a/src/IntervalItem.h b/src/IntervalItem.h index 6e2c0e83a..12b2dcac5 100644 --- a/src/IntervalItem.h +++ b/src/IntervalItem.h @@ -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 diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index bd6ca5693..c10f12bd5 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -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 } }