mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 23:33:24 +00:00
Move creation of dive and dive trip date string into helper functions
This allows this code to easily be shared by Gtk and Qt UI. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
d25de98b7c
commit
e4a31e1e41
3 changed files with 36 additions and 16 deletions
|
@ -261,31 +261,19 @@ static void date_data_func(GtkTreeViewColumn *col,
|
|||
struct tm tm;
|
||||
timestamp_t when;
|
||||
/* this should be enought for most languages. if not increase the value. */
|
||||
char buffer[256];
|
||||
char *buffer;
|
||||
|
||||
gtk_tree_model_get(model, iter, DIVE_INDEX, &idx, DIVE_DATE, &when, -1);
|
||||
nr = gtk_tree_model_iter_n_children(model, iter);
|
||||
|
||||
utc_mkdate(when, &tm);
|
||||
if (idx < 0) {
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
/*++GETTEXT 60 char buffer weekday, monthname, day of month, year, nr dives */
|
||||
ngettext("Trip %1$s, %2$s %3$d, %4$d (%5$d dive)",
|
||||
"Trip %1$s, %2$s %3$d, %4$d (%5$d dives)", nr),
|
||||
weekday(tm.tm_wday),
|
||||
monthname(tm.tm_mon),
|
||||
tm.tm_mday, tm.tm_year + 1900,
|
||||
nr);
|
||||
buffer = get_trip_date_string(&tm, nr);
|
||||
} else {
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
/*++GETTEXT 60 char buffer weekday, monthname, day of month, year, hour:min */
|
||||
_("%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);
|
||||
buffer = get_dive_date_string(&tm);
|
||||
}
|
||||
g_object_set(renderer, "text", buffer, NULL);
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
static void depth_data_func(GtkTreeViewColumn *col,
|
||||
|
|
30
divelist.c
30
divelist.c
|
@ -559,6 +559,36 @@ void get_suit(struct dive *dive, char **str)
|
|||
get_string(str, dive->suit);
|
||||
}
|
||||
|
||||
#define MAX_DATE_STRING 256
|
||||
/* caller needs to free the string */
|
||||
char *get_dive_date_string(struct tm *tm) {
|
||||
char *buffer = malloc(MAX_DATE_STRING);
|
||||
if (buffer)
|
||||
snprintf(buffer, MAX_DATE_STRING,
|
||||
/*++GETTEXT 60 char buffer weekday, monthname, day of month, year, hour:min */
|
||||
_("%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;
|
||||
}
|
||||
|
||||
/* caller needs to free the string */
|
||||
char *get_trip_date_string(struct tm *tm, int nr) {
|
||||
char *buffer = malloc(MAX_DATE_STRING);
|
||||
if (buffer)
|
||||
snprintf(buffer, MAX_DATE_STRING,
|
||||
/*++GETTEXT 60 char buffer weekday, monthname, day of month, year, nr dives */
|
||||
ngettext("Trip %1$s, %2$s %3$d, %4$d (%5$d dive)",
|
||||
"Trip %1$s, %2$s %3$d, %4$d (%5$d dives)", nr),
|
||||
weekday(tm->tm_wday),
|
||||
monthname(tm->tm_mon),
|
||||
tm->tm_mday, tm->tm_year + 1900,
|
||||
nr);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/*
|
||||
* helper functions for dive_trip handling
|
||||
*/
|
||||
|
|
|
@ -22,6 +22,8 @@ extern void upload_all_dives_divelogs_cb();
|
|||
#endif
|
||||
|
||||
/* divelist core logic functions */
|
||||
extern char *get_dive_date_string(struct tm *tm);
|
||||
extern char *get_trip_date_string(struct tm *tm, int nr);
|
||||
extern void clear_trip_indexes(void);
|
||||
extern dive_trip_t *find_trip_by_idx(int idx);
|
||||
extern int dive_nr_sort(int idx_a, int idx_b, timestamp_t when_a, timestamp_t when_b);
|
||||
|
|
Loading…
Add table
Reference in a new issue