]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Merge branch 'suit' of git://git.hohndel.org/subsurface
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Aug 2012 17:28:10 +0000 (10:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Aug 2012 17:28:10 +0000 (10:28 -0700)
Pull exposure suit tracking from Dirk Hohndel.

* 'suit' of git://git.hohndel.org/subsurface:
  Add exposure protection tracking

1  2 
divelist.c
info.c

diff --combined divelist.c
index e994b32527d1dd2289259b5f489052fd8303971e,8cf079391bba04710be801558e137e6d1dd4e0b4..36c5883b1e0e15784fa2a34741fb26372c87bc6c
@@@ -26,7 -26,7 +26,7 @@@ struct DiveList 
        GtkWidget    *container_widget;
        GtkListStore *model;
        GtkTreeViewColumn *nr, *date, *stars, *depth, *duration, *location;
-       GtkTreeViewColumn *temperature, *cylinder, *totalweight, *nitrox, *sac, *otu;
+       GtkTreeViewColumn *temperature, *cylinder, *totalweight, *suit, *nitrox, *sac, *otu;
        int changed;
  };
  
@@@ -45,6 -45,7 +45,7 @@@ enum 
        DIVE_DURATION,          /* int: in seconds */
        DIVE_TEMPERATURE,       /* int: in mkelvin */
        DIVE_TOTALWEIGHT,       /* int: in grams */
+       DIVE_SUIT,              /* "wet, 3mm" */
        DIVE_CYLINDER,
        DIVE_NITROX,            /* int: dummy */
        DIVE_SAC,               /* int: in ml/min */
@@@ -534,6 -535,11 +535,11 @@@ static void get_cylinder(struct dive *d
        get_string(str, dive->cylinder[0].type.description);
  }
  
+ static void get_suit(struct dive *dive, char **str)
+ {
+       get_string(str, dive->suit);
+ }
  /*
   * Set up anything that could have changed due to editing
   * of dive information
@@@ -542,10 -548,11 +548,11 @@@ static void fill_one_dive(struct dive *
                          GtkTreeModel *model,
                          GtkTreeIter *iter)
  {
-       char *location, *cylinder;
+       char *location, *cylinder, *suit;
  
        get_cylinder(dive, &cylinder);
        get_location(dive, &location);
+       get_suit(dive, &suit);
  
        gtk_list_store_set(GTK_LIST_STORE(model), iter,
                DIVE_NR, dive->number,
                DIVE_SAC, dive->sac,
                DIVE_OTU, dive->otu,
                DIVE_TOTALWEIGHT, total_weight(dive),
+               DIVE_SUIT, suit,
                -1);
  
 -      /* this will create a merge conflict with the memory leak patches */
 +      free(location);
 +      free(cylinder);
+       free(suit);
  }
  
  static gboolean set_one_dive(GtkTreeModel *model,
@@@ -617,6 -625,7 +626,7 @@@ void update_dive_list_col_visibility(vo
        gtk_tree_view_column_set_visible(dive_list.cylinder, visible_cols.cylinder);
        gtk_tree_view_column_set_visible(dive_list.temperature, visible_cols.temperature);
        gtk_tree_view_column_set_visible(dive_list.totalweight, visible_cols.totalweight);
+       gtk_tree_view_column_set_visible(dive_list.suit, visible_cols.suit);
        gtk_tree_view_column_set_visible(dive_list.nitrox, visible_cols.nitrox);
        gtk_tree_view_column_set_visible(dive_list.sac, visible_cols.sac);
        gtk_tree_view_column_set_visible(dive_list.otu, visible_cols.otu);
@@@ -646,6 -655,7 +656,7 @@@ static void fill_dive_list(void
                        DIVE_LOCATION, "location",
                        DIVE_TEMPERATURE, dive->watertemp.mkelvin,
                        DIVE_TOTALWEIGHT, 0,
+                       DIVE_SUIT, dive->suit,
                        DIVE_SAC, 0,
                        -1);
        }
@@@ -679,6 -689,7 +690,7 @@@ static struct divelist_column 
        [DIVE_DURATION] = { "min", duration_data_func, NULL, ALIGN_RIGHT },
        [DIVE_TEMPERATURE] = { UTF8_DEGREE "F", temperature_data_func, NULL, ALIGN_RIGHT, &visible_cols.temperature },
        [DIVE_TOTALWEIGHT] = { "lbs", weight_data_func, NULL, ALIGN_RIGHT, &visible_cols.totalweight },
+       [DIVE_SUIT] = { "Suit", NULL, NULL, ALIGN_LEFT, &visible_cols.suit },
        [DIVE_CYLINDER] = { "Cyl", NULL, NULL, 0, &visible_cols.cylinder },
        [DIVE_NITROX] = { "O" UTF8_SUBSCRIPT_2 "%", nitrox_data_func, nitrox_sort_func, 0, &visible_cols.nitrox },
        [DIVE_SAC] = { "SAC", sac_data_func, NULL, 0, &visible_cols.sac },
@@@ -786,6 -797,7 +798,7 @@@ GtkWidget *dive_list_create(void
                                G_TYPE_INT,                     /* Duration */
                                G_TYPE_INT,                     /* Temperature */
                                G_TYPE_INT,                     /* Total weight */
+                               G_TYPE_STRING,                  /* Suit */
                                G_TYPE_STRING,                  /* Cylinder */
                                G_TYPE_INT,                     /* Nitrox */
                                G_TYPE_INT,                     /* SAC */
        dive_list.duration = divelist_column(&dive_list, dl_column + DIVE_DURATION);
        dive_list.temperature = divelist_column(&dive_list, dl_column + DIVE_TEMPERATURE);
        dive_list.totalweight = divelist_column(&dive_list, dl_column + DIVE_TOTALWEIGHT);
+       dive_list.suit = divelist_column(&dive_list, dl_column + DIVE_SUIT);
        dive_list.cylinder = divelist_column(&dive_list, dl_column + DIVE_CYLINDER);
        dive_list.nitrox = divelist_column(&dive_list, dl_column + DIVE_NITROX);
        dive_list.sac = divelist_column(&dive_list, dl_column + DIVE_SAC);
diff --combined info.c
index ca5399548c33b3743ef1b76bc8792ea894de2671,09d61c83544756f92dca1643585d302a38392a33..a28e793905f1b4784a5d3d75077d90e5da1b00e7
--- 1/info.c
--- 2/info.c
+++ b/info.c
@@@ -19,9 -19,9 +19,9 @@@
  #include "display-gtk.h"
  #include "divelist.h"
  
- static GtkEntry *location, *buddy, *divemaster, *rating;
+ static GtkEntry *location, *buddy, *divemaster, *rating, *suit;
  static GtkTextView *notes;
- static GtkListStore *location_list, *people_list, *star_list;
+ static GtkListStore *location_list, *people_list, *star_list, *suit_list;
  
  static char *get_text(GtkTextView *view)
  {
@@@ -96,6 -96,7 +96,7 @@@ void show_dive_info(struct dive *dive
        SET_TEXT_VALUE(divemaster);
        SET_TEXT_VALUE(buddy);
        SET_TEXT_VALUE(location);
+       SET_TEXT_VALUE(suit);
        gtk_entry_set_text(rating, star_strings[dive->rating]);
        gtk_text_buffer_set_text(gtk_text_view_get_buffer(notes),
                dive && dive->notes ? dive->notes : "", -1);
@@@ -242,8 -243,6 +243,8 @@@ static gboolean match_string_entry(GtkT
  
        gtk_tree_model_get(model, iter, 0, &entry, -1);
        cmp = strcmp(entry, string);
 +      if (entry)
 +              free(entry);
  
        /* Stop. The entry is bigger than the new one */
        if (cmp > 0)
@@@ -298,6 -297,11 +299,11 @@@ void add_location(const char *string
        add_string_list_entry(string, location_list);
  }
  
+ void add_suit(const char *string)
+ {
+       add_string_list_entry(string, suit_list);
+ }
  static int get_rating(const char *string)
  {
        int rating_val = 0;
  }
  
  struct dive_info {
-       GtkComboBoxEntry *location, *divemaster, *buddy, *rating;
+       GtkComboBoxEntry *location, *divemaster, *buddy, *rating, *suit;
        GtkTextView *notes;
  };
  
@@@ -338,6 -342,12 +344,12 @@@ static void save_dive_info_changes(stru
                changed = 1;
        }
  
+       new_text = get_combo_box_entry_text(info->suit, &dive->suit);
+       if (new_text) {
+               add_suit(new_text);
+               changed = 1;
+       }
        rating_string = strdup(star_strings[dive->rating]);
        new_text = get_combo_box_entry_text(info->rating, &rating_string);
        if (new_text) {
@@@ -380,6 -390,7 +392,7 @@@ static void dive_info_widget(GtkWidget 
        gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, TRUE, 0);
  
        info->rating = text_entry(hbox, "Rating", star_list, star_strings[dive->rating]);
+       info->suit = text_entry(hbox, "Suit", suit_list, dive->suit);
  
        info->notes = text_view(box, "Notes", READ_WRITE);
        if (dive->notes && *dive->notes)
@@@ -564,6 -575,7 +577,7 @@@ GtkWidget *extended_dive_info_widget(vo
        add_string_list_entry(THREE_STARS, star_list);
        add_string_list_entry(FOUR_STARS, star_list);
        add_string_list_entry(FIVE_STARS, star_list);
+       suit_list = gtk_list_store_new(1, G_TYPE_STRING);
  
        gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
        location = text_value(vbox, "Location");
        gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
  
        rating = text_value(hbox, "Rating");
+       suit = text_value(hbox, "Suit");
  
        notes = text_view(vbox, "Notes", READ_ONLY);
        return vbox;