]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Merge branch 'for-linus' of git://github.com/dirkhh/subsurface
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 20 Sep 2011 17:08:27 +0000 (10:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 20 Sep 2011 17:09:56 +0000 (10:09 -0700)
* 'for-linus' of git://github.com/dirkhh/subsurface:
  Attempt to get the location column to resize in a sensible way
  Minor tweaks to column headers

[ Fixed up minor semantic merge conflict due to the change to make
  'dive_list' internal to divelist.c ]

1  2 
divelist.c

diff --combined divelist.c
index 24d4014f01fc4e2a3b617f7e13a6d41800f6c7e8,338b4dd014c033f72f9bec693340d8512da5a929..0a601c511f27e2fab3243e83f6770dfc00ce1093
@@@ -7,16 -7,6 +7,16 @@@
  #include "dive.h"
  #include "display.h"
  
 +struct DiveList {
 +      GtkWidget    *tree_view;
 +      GtkWidget    *container_widget;
 +      GtkListStore *model;
 +      GtkTreeViewColumn *date, *depth, *duration, *location;
 +      GtkTreeViewColumn *temperature, *cylinder, *nitrox, *sac;
 +};
 +
 +static struct DiveList dive_list;
 +
  /*
   * The dive list has the dive data in both string format (for showing)
   * and in "raw" format (for sorting purposes)
@@@ -214,7 -204,7 +214,7 @@@ static void sac_data_func(GtkTreeViewCo
        sac = value / 1000.0;
        switch (output_units.volume) {
        case LITER:
-               fmt = "%4.0f";
+               fmt = "%4.1f";
                break;
        case CUFT:
                fmt = "%4.2f";
@@@ -277,8 -267,8 +277,8 @@@ static void get_string(char **str, cons
        if (!s)
                s = "";
        len = strlen(s);
-       if (len > 16)
-               len = 16;
+       if (len > 40)
+               len = 40;
        n = malloc(len+1);
        memcpy(n, s, len);
        n[len] = 0;
@@@ -337,38 -327,51 +337,51 @@@ static gboolean set_one_dive(GtkTreeMod
        return dive == data;
  }
  
 -void flush_divelist(struct DiveList *dive_list, struct dive *dive)
 +void flush_divelist(struct dive *dive)
  {
 -      GtkTreeModel *model = GTK_TREE_MODEL(dive_list->model);
 +      GtkTreeModel *model = GTK_TREE_MODEL(dive_list.model);
  
        gtk_tree_model_foreach(model, set_one_dive, dive);
  }
  
 -void update_dive_list_units(struct DiveList *dive_list)
 +void update_dive_list_units(void)
  {
        const char *unit;
 -      GtkTreeModel *model = GTK_TREE_MODEL(dive_list->model);
 +      GtkTreeModel *model = GTK_TREE_MODEL(dive_list.model);
  
        switch (output_units.length) {
        case METERS:
-               unit = "m";
+               unit = "max/m";
                break;
        case FEET:
-               unit = "ft";
+               unit = "max/ft";
                break;
        }
 -      gtk_tree_view_column_set_title(dive_list->depth, unit);
 +      gtk_tree_view_column_set_title(dive_list.depth, unit);
  
 -      gtk_tree_view_column_set_title(dive_list->temperature, unit);
+       switch (output_units.temperature) {
+       case CELSIUS:
+               unit = "degC";
+               break;
+       case FAHRENHEIT:
+               unit = "degF";
+               break;
+       case KELVIN:
+               unit = "Kelvin";
+               break;
+       }
++      gtk_tree_view_column_set_title(dive_list.temperature, unit);
        gtk_tree_model_foreach(model, set_one_dive, NULL);
  }
  
 -static void fill_dive_list(struct DiveList *dive_list)
 +static void fill_dive_list(void)
  {
        int i;
        GtkTreeIter iter;
        GtkListStore *store;
  
 -      store = GTK_LIST_STORE(dive_list->model);
 +      store = GTK_LIST_STORE(dive_list.model);
  
        for (i = 0; i < dive_table.nr; i++) {
                struct dive *dive = dive_table.dives[i];
                        -1);
        }
  
 -      update_dive_list_units(dive_list);
 +      update_dive_list_units();
  }
  
 -void dive_list_update_dives(struct DiveList dive_list)
 +void dive_list_update_dives(void)
  {
        gtk_list_store_clear(GTK_LIST_STORE(dive_list.model));
 -      fill_dive_list(&dive_list);
 +      fill_dive_list();
        repaint_dive();
  }
  
@@@ -403,7 -406,7 +416,7 @@@ typedef void (*data_func_t)(GtkTreeView
                            gpointer data);
  
  static GtkTreeViewColumn *divelist_column(struct DiveList *dl, int index, const char *title,
-               data_func_t data_func, int align_right)
+                                       data_func_t data_func, int align_right, int expand)
  {
        GtkCellRenderer *renderer;
        GtkTreeViewColumn *col;
                gtk_object_set(GTK_OBJECT(renderer), "alignment", PANGO_ALIGN_RIGHT, NULL);
                gtk_cell_renderer_set_alignment(GTK_CELL_RENDERER(renderer), 1.0, 0.5);
        }
+       gtk_tree_view_column_set_expand(col,expand);
+       if (expand) 
+               gtk_tree_view_column_set_min_width(col,50);
        gtk_tree_view_append_column(GTK_TREE_VIEW(dl->tree_view), col);
        return col;
  }
  
 -struct DiveList dive_list_create(void)
 +GtkWidget *dive_list_create(void)
  {
 -      struct DiveList    dive_list;
        GtkTreeSelection  *selection;
        PangoFontDescription *font_desc = pango_font_description_from_string("sans 8");
  
        gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_BROWSE);
        gtk_widget_set_size_request(dive_list.tree_view, 200, 200);
  
-       dive_list.date = divelist_column(&dive_list, DIVE_DATE, "Date", date_data_func, 0);
-       dive_list.depth = divelist_column(&dive_list, DIVE_DEPTH, "ft", depth_data_func, 1);
-       dive_list.duration = divelist_column(&dive_list, DIVE_DURATION, "min", duration_data_func, 1);
-       dive_list.location = divelist_column(&dive_list, DIVE_LOCATION, "Location", NULL, 0);
-       dive_list.temperature = divelist_column(&dive_list, DIVE_TEMPERATURE, "deg", temperature_data_func, 1);
-       dive_list.cylinder = divelist_column(&dive_list, DIVE_CYLINDER, "Cyl", NULL, 0);
-       dive_list.nitrox = divelist_column(&dive_list, DIVE_NITROX, "O2%", nitrox_data_func, 1);
-       dive_list.sac = divelist_column(&dive_list, DIVE_NITROX, "SAC", sac_data_func, 1);
+       dive_list.date = divelist_column(&dive_list, DIVE_DATE, "Date", date_data_func, 0, 0);
+       dive_list.depth = divelist_column(&dive_list, DIVE_DEPTH, "max/ft", depth_data_func, 1, 0);
+       dive_list.duration = divelist_column(&dive_list, DIVE_DURATION, "min", duration_data_func, 1, 0);
+       dive_list.location = divelist_column(&dive_list, DIVE_LOCATION, "Location", NULL, 0, 1);
+       dive_list.temperature = divelist_column(&dive_list, DIVE_TEMPERATURE, "degF", temperature_data_func, 1, 0);
+       dive_list.cylinder = divelist_column(&dive_list, DIVE_CYLINDER, "Cyl", NULL, 0, 0);
+       dive_list.nitrox = divelist_column(&dive_list, DIVE_NITROX, "O2%", nitrox_data_func, 1, 0);
+       dive_list.sac = divelist_column(&dive_list, DIVE_NITROX, "SAC", sac_data_func, 1, 0);
  
 -      fill_dive_list(&dive_list);
 +      fill_dive_list();
  
        g_object_set(G_OBJECT(dive_list.tree_view), "headers-visible", TRUE,
                                          "search-column", 0,
                               GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
        gtk_container_add(GTK_CONTAINER(dive_list.container_widget), dive_list.tree_view);
  
 -      return dive_list;
 +      return dive_list.container_widget;
  }