diff options
-rw-r--r-- | divelist.c | 64 | ||||
-rw-r--r-- | divelist.h | 3 | ||||
-rw-r--r-- | helpers.h | 3 | ||||
-rw-r--r-- | qt-gui.cpp | 40 | ||||
-rw-r--r-- | qt-ui/models.cpp | 7 |
5 files changed, 45 insertions, 72 deletions
diff --git a/divelist.c b/divelist.c index 6df961808..858d61533 100644 --- a/divelist.c +++ b/divelist.c @@ -460,70 +460,6 @@ void update_cylinder_related_info(struct dive *dive) } } -#define MAX_DATE_STRING 256 -/* caller needs to free the string */ -char *get_dive_date_string(timestamp_t when) -{ - char *buffer = malloc(MAX_DATE_STRING); - if (buffer) { - struct tm tm; - utc_mkdate(when, &tm); - snprintf(buffer, MAX_DATE_STRING, - /*++GETTEXT 60 char buffer weekday, monthname, day of month, year, hour:min */ - translate("gettextFromC","%1$s, %2$s %3$d, %4$d %5$02d:%6$02d"), - weekday(tm.tm_wday), - monthname(tm.tm_mon), - tm.tm_mday, tm.tm_year + 1900, - tm.tm_hour, tm.tm_min); - } - return buffer; -} - -char *get_short_dive_date_string(timestamp_t when) -{ - char *buffer = malloc(MAX_DATE_STRING); - if (buffer) { - struct tm tm; - utc_mkdate(when, &tm); - snprintf(buffer, MAX_DATE_STRING, - /*++GETTEXT 40 char buffer monthname, day of month, year, hour:min */ - translate("gettextFromC","%1$s %2$d, %3$d\n%4$02d:%5$02d"), - monthname(tm.tm_mon), - tm.tm_mday, tm.tm_year +1900, - tm.tm_hour, tm.tm_min); - } - return buffer; -} - -/* caller needs to free the string */ -char *get_trip_date_string(timestamp_t when, int nr) -{ - char *buffer = malloc(MAX_DATE_STRING); - if (buffer) { - struct tm tm; - utc_mkdate(when, &tm); - if (nr != 1) { - snprintf(buffer, MAX_DATE_STRING, -#if PLURAL_HANDLING_IN_TRANLATION - /*++GETTEXT 60 char buffer monthname, year, nr dives */ - ngettext("%1$s %2$d (%3$d dive)", - "%1$s %2$d (%3$d dives)", nr), -#else - translate("gettextFromC","%1$s %2$d (%3$d dives)"), -#endif - monthname(tm.tm_mon), - tm.tm_year + 1900, - nr); - } else { - snprintf(buffer, MAX_DATE_STRING, - translate("gettextFromC","%1$s %2$d (1 dive)"), - monthname(tm.tm_mon), - tm.tm_year + 1900); - } - } - return buffer; -} - #define MAX_NITROX_STRING 80 #define UTF8_ELLIPSIS "\xE2\x80\xA6" diff --git a/divelist.h b/divelist.h index 83a48fb60..627cb575c 100644 --- a/divelist.h +++ b/divelist.h @@ -15,9 +15,6 @@ extern double init_decompression(struct dive * dive); /* divelist core logic functions */ extern void process_dives(bool imported, bool prefer_imported); -extern char *get_dive_date_string(timestamp_t when); -extern char *get_short_dive_date_string(timestamp_t when); -extern char *get_trip_date_string(timestamp_t when, int nr); extern char *get_nitrox_string(struct dive *dive); extern dive_trip_t *find_trip_by_idx(int idx); @@ -29,6 +29,9 @@ QString getSubsurfaceDataPath(QString folderToFind); extern const QString get_dc_nickname(const char *model, uint32_t deviceid); int gettimezoneoffset(); int parseTemperatureToMkelvin(const QString& text); +QString get_dive_date_string(timestamp_t when); +QString get_short_dive_date_string(timestamp_t when); +QString get_trip_date_string(timestamp_t when, int nr); extern DiveComputerList dcList; diff --git a/qt-gui.cpp b/qt-gui.cpp index 0fd162d3d..a943bff76 100644 --- a/qt-gui.cpp +++ b/qt-gui.cpp @@ -453,3 +453,43 @@ int parseTemperatureToMkelvin(const QString& text) return mkelvin; } + +QString get_dive_date_string(timestamp_t when) +{ + struct tm tm; + utc_mkdate(when, &tm); + return translate("gettextFromC", "%1, %2 %3, %4 %5:%6") + .arg(weekday(tm.tm_wday)) + .arg(monthname(tm.tm_mon)) + .arg(tm.tm_mday) + .arg(tm.tm_year + 1900) + .arg(tm.tm_hour, 2, 10, QChar('0')) + .arg(tm.tm_min, 2, 10, QChar('0')); +} + +QString get_short_dive_date_string(timestamp_t when) +{ + struct tm tm; + utc_mkdate(when, &tm); + return translate("gettextFromC", "%1 %2, %3\n%4:%5") + .arg(monthname(tm.tm_mon)) + .arg(tm.tm_mday) + .arg(tm.tm_year + 1900) + .arg(tm.tm_hour, 2, 10, QChar('0')) + .arg(tm.tm_min, 2, 10, QChar('0')); +} + +QString get_trip_date_string(timestamp_t when, int nr) +{ + struct tm tm; + utc_mkdate(when, &tm); + if (nr != 1) + return translate("gettextFromC", "%1 %2 (%3 dives)") + .arg(monthname(tm.tm_mon)) + .arg(tm.tm_year + 1900) + .arg(nr); + else + return translate("gettextFromC", "%1 %2 (1 dive)") + .arg(monthname(tm.tm_mon)) + .arg(tm.tm_year + 1900); +} diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index 8fedf6a35..a89557570 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -873,7 +873,7 @@ QVariant TripItem::data(int column, int role) const if (role == Qt::DisplayRole) { switch (column) { case DiveTripModel::NR: - ret = QString(trip->location) + ", " + QString(get_trip_date_string(trip->when, trip->nrdives)); + ret = QString(trip->location) + ", " + get_trip_date_string(trip->when, trip->nrdives); break; } } @@ -953,10 +953,7 @@ QVariant DiveItem::data(int column, int role) const QString DiveItem::displayDate() const { - char *buf = get_dive_date_string(dive->when); - QString date(buf); - free(buf); - return date; + return get_dive_date_string(dive->when); } QString DiveItem::displayDepth() const |