]> git.tdb.fi Git - ext/subsurface.git/blobdiff - equipment.c
Divide the panes evenly in view_three
[ext/subsurface.git] / equipment.c
index abfb0e7b5979bba41b9af71b1d5391d610ed4359..b74d85b7b6509ab910620c3c2ffe9d8b2e91f099 100644 (file)
@@ -664,10 +664,10 @@ static struct tank_info {
        { "AL100", .cuft = 100, .psi = 3300 },
 
        /* Somewhat common LP steel cylinders */
-       { "LP85",  .cuft =  85, 2640 },
-       { "LP95",  .cuft =  95, 2640 },
-       { "LP108", .cuft = 108, 2640 },
-       { "LP121", .cuft = 121, 2640 },
+       { "LP85",  .cuft =  85, .psi = 2640 },
+       { "LP95",  .cuft =  95, .psi = 2640 },
+       { "LP108", .cuft = 108, .psi = 2640 },
+       { "LP121", .cuft = 121, .psi = 2640 },
 
        /* Somewhat common HP steel cylinders */
        { "HP65",  .cuft =  65, .psi = 3442 },
@@ -696,23 +696,29 @@ static void fill_tank_list(GtkListStore *store)
        GtkTreeIter iter;
        struct tank_info *info = tank_info;
 
-       while (info->name) {
+       for (info = tank_info ; info->name; info++) {
                int ml = info->ml;
                int cuft = info->cuft;
                int psi = info->psi;
                int mbar;
                double bar = info->bar;
 
+               if (psi && bar)
+                       goto bad_tank_info;
+               if (ml && cuft)
+                       goto bad_tank_info;
+               if (cuft && !psi)
+                       goto bad_tank_info;
+
                /* Is it in cuft and psi? */
-               if (psi) {
+               if (psi)
                        bar = psi_to_bar(psi);
 
-                       if (cuft) {
-                               double airvolume = cuft_to_l(cuft) * 1000.0;
-                               double atm = bar_to_atm(bar);
+               if (cuft) {
+                       double airvolume = cuft_to_l(cuft) * 1000.0;
+                       double atm = bar_to_atm(bar);
 
-                               ml = airvolume / atm + 0.5;
-                       }
+                       ml = airvolume / atm + 0.5;
                }
 
                mbar = bar * 1000 + 0.5;
@@ -723,7 +729,10 @@ static void fill_tank_list(GtkListStore *store)
                        1, ml,
                        2, mbar,
                        -1);
-               info++;
+               continue;
+
+bad_tank_info:
+               fprintf(stderr, "Bad tank info for '%s'\n", info->name);
        }
 }
 
@@ -1334,6 +1343,14 @@ static void row_activated_cb(GtkTreeView *tree_view,
        edit_cb(NULL, tree_view);
 }
 
+static void ws_row_activated_cb(GtkTreeView *tree_view,
+                       GtkTreePath *path,
+                       GtkTreeViewColumn *column,
+                       GtkTreeModel *model)
+{
+       ws_edit_cb(NULL, tree_view);
+}
+
 GtkWidget *cylinder_list_widget(void)
 {
        GtkListStore *model = cylinder_list.model;
@@ -1371,7 +1388,7 @@ GtkWidget *weightsystem_list_widget(void)
 
        tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
        gtk_widget_set_can_focus(tree_view, FALSE);
-       g_signal_connect(tree_view, "row-activated", G_CALLBACK(row_activated_cb), model);
+       g_signal_connect(tree_view, "row-activated", G_CALLBACK(ws_row_activated_cb), model);
 
        selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
        gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_BROWSE);