- AWeatherGui *gui = aweather_gui_new();
- AWeatherView *view = aweather_gui_get_view(gui);
- g_signal_connect(gui, "map-event", G_CALLBACK(on_map), opt_site);
+ gdk_threads_enter();
+ /* Pre-load some type for gtkbuilder */
+ GIS_TYPE_OPENGL;
+ AWEATHER_TYPE_GUI;
+ GtkBuilder *builder = gtk_builder_new();
+ if (!gtk_builder_add_from_file(builder, PKGDATADIR "/main.ui", &error))
+ g_error("Failed to create gtk builder: %s", error->message);
+ AWeatherGui *gui = AWEATHER_GUI(gtk_builder_get_object(builder, "main_window"));
+ g_signal_connect(gui, "destroy", gtk_main_quit, NULL);
+
+ gint prefs_debug = gis_prefs_get_integer(gui->prefs, "aweather/log_level", NULL);
+ gchar *prefs_site = gis_prefs_get_string(gui->prefs, "aweather/initial_site", NULL);
+ gboolean prefs_offline = gis_prefs_get_boolean(gui->prefs, "gis/offline", NULL);
+
+ debug = (opt_debug ?: prefs_debug ?: debug);
+ site = (opt_site ?: prefs_site ?: site);
+ offline = (opt_offline ?: prefs_offline ?: offline);