]> git.tdb.fi Git - ext/subsurface.git/blobdiff - main.c
Fix profile and average depth for freedives
[ext/subsurface.git] / main.c
diff --git a/main.c b/main.c
index ee09b9a82e50b4ee0bceda0ef9eebdd7cadaae64..2489473b9c2f9fe43f65c4ce0405fba3b79e7cc6 100644 (file)
--- a/main.c
+++ b/main.c
@@ -4,16 +4,11 @@
 #include <stdlib.h>
 #include <time.h>
 
-#include <gconf/gconf-client.h>
-
 #include "dive.h"
 #include "divelist.h"
 
-GConfClient *gconf;
 struct units output_units;
 
-#define GCONF_NAME(x) "/apps/subsurface/" #x
-
 /* random helper functions, used here or elsewhere */
 static int sortfn(const void *_a, const void *_b)
 {
@@ -106,7 +101,7 @@ static gboolean imported = FALSE;
  * This doesn't really report anything at all. We just sort the
  * dives, the GUI does the reporting
  */
-void report_dives(gboolean imported)
+void report_dives(gboolean is_imported)
 {
        int i;
        int preexisting = dive_table.preexisting;
@@ -140,7 +135,7 @@ void report_dives(gboolean imported)
                i--;
        }
 
-       if (imported) {
+       if (is_imported) {
                /* Was the previous dive table state numbered? */
                if (last && last->number)
                        try_to_renumber(last, preexisting);
@@ -172,6 +167,12 @@ static void parse_argument(const char *arg)
                                return;
                        }
                        /* fallthrough */
+               case 'p':
+                       /* ignore process serial number argument when run as native macosx app */
+                       if (strncmp(arg, "-psn_", 5) == 0) {
+                               return;
+                       }
+                       /* fallthrough */
                default:
                        fprintf(stderr, "Bad argument '%s'\n", arg);
                        exit(1);
@@ -185,13 +186,12 @@ void update_dive(struct dive *new_dive)
        struct dive *old_dive = buffered_dive;
 
        if (old_dive) {
-               flush_dive_info_changes(old_dive);
-               flush_dive_equipment_changes(old_dive);
                flush_divelist(old_dive);
        }
        if (new_dive) {
                show_dive_info(new_dive);
-               show_dive_equipment(new_dive);
+               show_dive_equipment(new_dive, W_IDX_PRIMARY);
+               show_dive_stats(new_dive);
        }
        buffered_dive = new_dive;
 }
@@ -203,6 +203,7 @@ void renumber_dives(int nr)
        for (i = 0; i < dive_table.nr; i++) {
                struct dive *dive = dive_table.dives[i];
                dive->number = nr + i;
+               flush_divelist(dive);
        }
        mark_divelist_changed(TRUE);
 }
@@ -215,8 +216,8 @@ int main(int argc, char **argv)
 
        parse_xml_init();
 
-       init_ui(argc, argv);
-       
+       init_ui(&argc, &argv);
+
        for (i = 1; i < argc; i++) {
                const char *a = argv[i];
 
@@ -225,8 +226,8 @@ int main(int argc, char **argv)
                        continue;
                }
                GError *error = NULL;
-               parse_xml_file(a, &error);
-               
+               parse_file(a, &error);
+
                if (error != NULL)
                {
                        report_error(error);
@@ -238,5 +239,6 @@ int main(int argc, char **argv)
        report_dives(imported);
 
        run_ui();
+       exit_ui();
        return 0;
 }