]> Pileus Git - grits/blobdiff - src/grits-test.c
Init earlier on
[grits] / src / grits-test.c
index 2fef4aef0982ae77828054204582793afecd5aff..28c30aea83cee6ec70ac5748488f79875512f7bd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2010 Andy Spencer <andy753421@gmail.com>
+ * Copyright (C) 2009-2011 Andy Spencer <andy753421@gmail.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,13 +31,13 @@ GritsViewer  *viewer  = NULL;
  *************/
 static gboolean grits_shutdown(GtkWidget *window)
 {
+       static gboolean shutdown = FALSE;
+       if (shutdown) return TRUE;
+       shutdown = TRUE;
+
        grits_plugins_free(plugins);
        g_object_unref(prefs);
        gtk_widget_destroy(window);
-
-       while (gtk_events_pending())
-                 gtk_main_iteration();
-
        gtk_main_quit();
        return TRUE;
 }
@@ -57,7 +57,8 @@ static void load_plugin(GritsPlugins *plugins, gchar *name,
 {
        GritsPlugin *plugin = grits_plugins_load(plugins, name, viewer, prefs);
        GtkWidget *config = grits_plugin_get_config(plugin);
-       gtk_notebook_append_page(notebook, config, gtk_label_new(name));
+       if (config)
+               gtk_notebook_append_page(notebook, config, gtk_label_new(name));
 }
 
 /***********
@@ -69,6 +70,7 @@ int main(int argc, char **argv)
        gdk_threads_init();
        gtk_init(&argc, &argv);
        gtk_gl_init(&argc, &argv);
+       grits_init(&argc, &argv);
 
        prefs   = grits_prefs_new(NULL, NULL);
        plugins = grits_plugins_new(g_getenv("GRITS_PLUGIN_PATH"), prefs);
@@ -89,17 +91,23 @@ int main(int argc, char **argv)
        /* Configurable stuff */
        grits_viewer_set_offline(viewer, TRUE);
        (void)load_plugin;
-       load_plugin(plugins, "elev",  viewer, prefs, GTK_NOTEBOOK(config));
        load_plugin(plugins, "env",   viewer, prefs, GTK_NOTEBOOK(config));
-       //load_plugin(plugins, "map",   viewer, prefs, GTK_NOTEBOOK(config));
+       //load_plugin(plugins, "elev",  viewer, prefs, GTK_NOTEBOOK(config));
        load_plugin(plugins, "sat",   viewer, prefs, GTK_NOTEBOOK(config));
-       load_plugin(plugins, "test",  viewer, prefs, GTK_NOTEBOOK(config));
+       //load_plugin(plugins, "map",   viewer, prefs, GTK_NOTEBOOK(config));
+       //load_plugin(plugins, "alert", viewer, prefs, GTK_NOTEBOOK(config));
        //load_plugin(plugins, "radar", viewer, prefs, GTK_NOTEBOOK(config));
+       load_plugin(plugins, "test",  viewer, prefs, GTK_NOTEBOOK(config));
 
        gtk_widget_show_all(config);
        gtk_main();
        gdk_threads_leave();
 
        gdk_display_close(gdk_display_get_default());
+
+       prefs   = NULL;
+       plugins = NULL;
+       viewer  = NULL;
+       window  = vbox = config = NULL;
        return 0;
 }