summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-09-19 22:09:47 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-09-19 22:09:47 -0700
commit3a6c1f767d527c2247eefb264f68adf3f3770608 (patch)
treec4dbe905dcde01aca07a2b2535a8ad900993d415
parent6a9e951f1c5f4e8a6c3c97b5f999506ca1f24d8e (diff)
downloadsubsurface-3a6c1f767d527c2247eefb264f68adf3f3770608.tar.gz
Reinstate the main window title
It got removed by some of my overly aggressive cleanup in commit fefcbf125e89 ("Remove dive info frame") because the dive info frame initialization also initialized the main window title.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--dive.h3
-rw-r--r--divelist.c6
-rw-r--r--info.c24
3 files changed, 30 insertions, 3 deletions
diff --git a/dive.h b/dive.h
index e36839a1e..109d0c57d 100644
--- a/dive.h
+++ b/dive.h
@@ -226,4 +226,7 @@ extern void update_air_info(char *buffer);
#define DIVE_ERROR_PARSE 1
+const char *weekday(int wday);
+const char *monthname(int mon);
+
#endif /* DIVE_H */
diff --git a/divelist.c b/divelist.c
index 53d9bdf71..3b840794b 100644
--- a/divelist.c
+++ b/divelist.c
@@ -38,7 +38,7 @@ static void selection_cb(GtkTreeSelection *selection, GtkTreeModel *model)
repaint_dive();
}
-static const char *weekday(int wday)
+const char *weekday(int wday)
{
static const char wday_array[7][4] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
@@ -46,7 +46,7 @@ static const char *weekday(int wday)
return wday_array[wday];
}
-static const char *monthname(int mon)
+const char *monthname(int mon)
{
static const char month_array[12][4] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
@@ -463,7 +463,7 @@ struct DiveList dive_list_create(void)
dive_list.container_widget = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dive_list.container_widget),
- GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(dive_list.container_widget), dive_list.tree_view);
return dive_list;
diff --git a/info.c b/info.c
index 3c8415cb3..c1779cc45 100644
--- a/info.c
+++ b/info.c
@@ -53,6 +53,30 @@ void flush_dive_info_changes(struct dive *dive)
void show_dive_info(struct dive *dive)
{
+ struct tm *tm;
+ const char *text;
+ char buffer[80];
+
+ /* dive number and location (or lacking that, the date) go in the window title */
+ tm = gmtime(&dive->when);
+ text = dive->location;
+ if (!text)
+ text = "";
+ if (*text) {
+ snprintf(buffer, sizeof(buffer), "Dive #%d - %s", dive->number, text);
+ } else {
+ snprintf(buffer, sizeof(buffer), "Dive #%d - %s %02d/%02d/%04d at %d:%02d",
+ dive->number,
+ weekday(tm->tm_wday),
+ tm->tm_mon+1, tm->tm_mday,
+ tm->tm_year+1900,
+ tm->tm_hour, tm->tm_min);
+ }
+ text = buffer;
+ if (!dive->number)
+ text += 10; /* Skip the "Dive #0 - " part */
+ gtk_window_set_title(GTK_WINDOW(main_window), text);
+
SET_TEXT_ENTRY(divemaster);
SET_TEXT_ENTRY(buddy);
SET_TEXT_ENTRY(location);