summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-11-19 14:16:33 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-11-19 14:20:18 -0800
commit6acff53735c41cc6636525aa364c62808219d3fb (patch)
tree6639d39a470725444475420ed7587061801fa2b4
parent65e980d483576e952d15b14c369ac9beb7a07605 (diff)
downloadsubsurface-6acff53735c41cc6636525aa364c62808219d3fb.tar.gz
Fix trip summary line in dive list
Two errors fixed. - With no location set, the summary line would start with a ','. - When auto creating a trip for a manually added dive or when editing the dates of dives in a trip, the timestamp for the trip was not updated after editing the dive. Fixes #293 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--divelist.c2
-rw-r--r--divelist.h1
-rw-r--r--qt-ui/maintab.cpp5
-rw-r--r--qt-ui/models.cpp5
4 files changed, 11 insertions, 2 deletions
diff --git a/divelist.c b/divelist.c
index 9a1ab017f..36f43e4fc 100644
--- a/divelist.c
+++ b/divelist.c
@@ -600,7 +600,7 @@ static void delete_trip(dive_trip_t *trip)
free(trip);
}
-static void find_new_trip_start_time(dive_trip_t *trip)
+void find_new_trip_start_time(dive_trip_t *trip)
{
struct dive *dive = trip->dives;
timestamp_t when = dive->when;
diff --git a/divelist.h b/divelist.h
index 627cb575c..109c61aef 100644
--- a/divelist.h
+++ b/divelist.h
@@ -30,6 +30,7 @@ extern struct dive *merge_two_dives(struct dive *a, struct dive *b);
extern bool consecutive_selected();
extern void select_dive(int idx);
extern void deselect_dive(int idx);
+void find_new_trip_start_time(dive_trip_t *trip);
#ifdef DEBUG_TRIP
extern void dump_selection(void);
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index 16c0a1f14..763c61ec5 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -13,6 +13,7 @@
#include "globe.h"
#include "completionmodels.h"
#include "diveplanner.h"
+#include "divelist.h"
#include "qthelper.h"
#include <QLabel>
@@ -499,6 +500,10 @@ void MainTab::acceptChanges()
}
}
+ if (current_dive->divetrip) {
+ current_dive->divetrip->when = current_dive->when;
+ find_new_trip_start_time(current_dive->divetrip);
+ }
if (editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
// clean up the dive data (get duration, depth information from samples)
fixup_dive(current_dive);
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index 2a0f9e98e..d0c244917 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -929,7 +929,10 @@ QVariant TripItem::data(int column, int role) const
if (role == Qt::DisplayRole) {
switch (column) {
case DiveTripModel::NR:
- ret = QString(trip->location) + ", " + get_trip_date_string(trip->when, trip->nrdives);
+ if (trip->location && *trip->location)
+ ret = QString(trip->location) + ", " + get_trip_date_string(trip->when, trip->nrdives);
+ else
+ ret = get_trip_date_string(trip->when, trip->nrdives);
break;
}
}