summaryrefslogtreecommitdiffstats
path: root/info.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2012-06-27 14:29:29 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2012-06-27 14:29:29 -0700
commita2c2c7e1a84a98bd05505f699c3c17baf50304ce (patch)
tree041b386c0c0a60cd47e76e4cc7557e995183c9f1 /info.c
parente3bdfc2dc357e362a695632a3e0ee24095bb5b5a (diff)
downloadsubsurface-a2c2c7e1a84a98bd05505f699c3c17baf50304ce.tar.gz
Add depth entry to new dive edit dialog
Christ, if you look up "Ugly dialog" on Wikipedia, I think it has a picture of this "New dive" thing. Or it should have. But it kind of works. Although with only a "max depth" entry, you can't currently set average depths etc, so SAC-rates etc cannot be calculated for these kinds of dives. And the dive numbering is wrong. We do auto-number new dives that get added at the end, but we do it as we add them, so when you *edit* the dive information (before it has been added) the dive number shows up as "#0". So there's certainly room for improvement here. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'info.c')
-rw-r--r--info.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/info.c b/info.c
index 10a31f558..e451c8600 100644
--- a/info.c
+++ b/info.c
@@ -426,11 +426,12 @@ static time_t dive_time_widget(struct dive *dive)
GtkWidget *dialog;
GtkWidget *cal, *hbox, *vbox;
GtkWidget *h, *m;
- GtkWidget *duration;
+ GtkWidget *duration, *depth;
GtkWidget *label;
guint yval, mval, dval;
struct tm tm;
int success;
+ double depthinterval, val;
dialog = gtk_dialog_new_with_buttons("Date and Time",
GTK_WINDOW(main_window),
@@ -469,6 +470,22 @@ static time_t dive_time_widget(struct dive *dive)
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), duration, FALSE, FALSE, 0);
+ /* Depth box */
+ hbox = gtk_hbox_new(0, 3);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
+
+ if (output_units.length == FEET) {
+ depthinterval = 1.0;
+ } else {
+ depthinterval = 0.1;
+ }
+ depth = gtk_spin_button_new_with_range (0.0, 1000.0, depthinterval);
+
+ label = gtk_label_new("Depth: ");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), depth, FALSE, FALSE, 0);
+
+ /* All done, show it and wait for editing */
gtk_widget_show_all(dialog);
success = gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT;
if (!success) {
@@ -485,6 +502,13 @@ static time_t dive_time_widget(struct dive *dive)
tm.tm_hour = gtk_spin_button_get_value(GTK_SPIN_BUTTON(h));
tm.tm_min = gtk_spin_button_get_value(GTK_SPIN_BUTTON(m));
+ val = gtk_spin_button_get_value(GTK_SPIN_BUTTON(depth));
+ if (output_units.length == FEET) {
+ dive->maxdepth.mm = feet_to_mm(val);
+ } else {
+ dive->maxdepth.mm = val * 1000 + 0.5;
+ }
+
dive->duration.seconds = gtk_spin_button_get_value(GTK_SPIN_BUTTON(duration))*60;
gtk_widget_destroy(dialog);