desktop: avoid spurious undo commands for date/time editing

The date and time fields of the main tab posted undo events
for every date/timeChanged signal. Thus, when changing the
day of the month to e.g. 21, this would result in two date
change events: one to the 2nd and one to the 21st. This is
very irritating.

Instead listen to editingFinished() events, which thankfully
exist for these widgets.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-05-06 21:02:10 +02:00 committed by Dirk Hohndel
parent 9298466037
commit c50e58d761
2 changed files with 6 additions and 6 deletions

View file

@ -607,23 +607,23 @@ static void shiftTime(QDateTime &dateTime)
}
}
void MainTab::on_dateEdit_dateChanged(const QDate &date)
void MainTab::on_dateEdit_editingFinished()
{
if (ignoreInput || !current_dive)
return;
QDateTime dateTime = QDateTime::fromMSecsSinceEpoch(1000*current_dive->when, Qt::UTC);
dateTime.setTimeSpec(Qt::UTC);
dateTime.setDate(date);
dateTime.setDate(ui.dateEdit->date());
shiftTime(dateTime);
}
void MainTab::on_timeEdit_timeChanged(const QTime &time)
void MainTab::on_timeEdit_editingFinished()
{
if (ignoreInput || !current_dive)
return;
QDateTime dateTime = QDateTime::fromMSecsSinceEpoch(1000*current_dive->when, Qt::UTC);
dateTime.setTimeSpec(Qt::UTC);
dateTime.setTime(time);
dateTime.setTime(ui.timeEdit->time());
shiftTime(dateTime);
}

View file

@ -57,8 +57,8 @@ slots:
void on_notes_editingFinished();
void on_duration_editingFinished();
void on_depth_editingFinished();
void on_dateEdit_dateChanged(const QDate &date);
void on_timeEdit_timeChanged(const QTime & time);
void on_dateEdit_editingFinished();
void on_timeEdit_editingFinished();
void on_rating_valueChanged(int value);
void on_tagWidget_editingFinished();
void hideMessage();