diff options
-rw-r--r-- | dive.h | 1 | ||||
-rw-r--r-- | gtk-gui.c | 3 | ||||
-rw-r--r-- | info.c | 16 |
3 files changed, 16 insertions, 4 deletions
@@ -463,6 +463,7 @@ const char *monthname(int mon); extern const char *star_strings[]; extern const char *default_filename; +extern char *existing_filename; extern const char *subsurface_default_filename(void); #define AIR_PERMILLE 209 @@ -25,7 +25,7 @@ GtkWidget *vpane, *hpane; GtkWidget *notebook; int error_count; - +char *existing_filename; const char *divelist_font; const char *default_filename; @@ -81,7 +81,6 @@ void repaint_dive(void) gtk_widget_queue_draw(dive_profile); } -static char *existing_filename; static gboolean need_icon = TRUE; static void on_info_bar_response(GtkWidget *widget, gint response, @@ -112,9 +112,15 @@ void show_dive_info(struct dive *dive) { const char *text; char buffer[80]; + char title[80]; if (!dive) { - gtk_window_set_title(GTK_WINDOW(main_window), "Subsurface"); + if (existing_filename) { + snprintf(title, 80, "Subsurface: %s", g_path_get_basename(existing_filename)); + gtk_window_set_title(GTK_WINDOW(main_window), title); + } else { + gtk_window_set_title(GTK_WINDOW(main_window), "Subsurface"); + } SET_TEXT_VALUE(divemaster); SET_TEXT_VALUE(buddy); SET_TEXT_VALUE(location); @@ -136,8 +142,14 @@ void show_dive_info(struct dive *dive) text = buffer; if (!dive->number) text += 10; /* Skip the "Dive #0 - " part */ - gtk_window_set_title(GTK_WINDOW(main_window), text); + /* put it all together */ + if (existing_filename) { + snprintf(title, 80, "%s: %s", g_path_get_basename(existing_filename), text); + gtk_window_set_title(GTK_WINDOW(main_window), title); + } else { + gtk_window_set_title(GTK_WINDOW(main_window), text); + } SET_TEXT_VALUE(divemaster); SET_TEXT_VALUE(buddy); SET_TEXT_VALUE(location); |