]> Pileus Git - aweather/blobdiff - src/aweather-gui.c
Fix memory leaks
[aweather] / src / aweather-gui.c
index 6d8e4239fadca1f331f3eeeb0b9bfebf0fef0594..b08196ac04921825cf79d1adf6839ee22cb8325d 100644 (file)
@@ -355,7 +355,7 @@ static void site_setup(AWeatherGui *self)
                        gtk_tree_store_append(store, &state, NULL);
                        gtk_tree_store_set   (store, &state, 0, cities[i].code,
                                                             1, cities[i].name, -1);
-               } else {
+               } else if (cities[i].type == LOCATION_CITY) {
                        gtk_tree_store_append(store, &city, &state);
                        gtk_tree_store_set   (store, &city, 0, cities[i].code,
                                                            1, cities[i].name, -1);
@@ -387,6 +387,7 @@ static void prefs_setup(AWeatherGui *self)
                GtkTreeIter iter;
                if (gtk_tree_model_find_string(model, &iter, NULL, 0, is))
                        gtk_combo_box_set_active_iter(GTK_COMBO_BOX(isw), &iter);
+               g_free(is);
        }
 
        /* Load Plugins */
@@ -402,13 +403,6 @@ static void prefs_setup(AWeatherGui *self)
        gtk_tree_view_append_column(tview, col2);
        g_signal_connect(rend2, "toggled", G_CALLBACK(on_plugin_toggled), self);
        gtk_tree_view_set_model(GTK_TREE_VIEW(tview), GTK_TREE_MODEL(self->gtk_plugins));
-
-       /* Setup auto update enable */
-       gboolean auto_update = grits_prefs_get_boolean(self->prefs, "aweather/update_enab", NULL);
-       GObject *action      = aweather_gui_get_object(self, "update");
-       gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), auto_update);
-       g_signal_connect_swapped(self->viewer, "refresh", G_CALLBACK(set_update_timeout), self);
-       set_update_timeout(self);
 }
 
 static void time_setup(AWeatherGui *self)
@@ -579,6 +573,8 @@ static void aweather_gui_parser_finished(GtkBuildable *_self, GtkBuilder *builde
        g_signal_connect_swapped(self->viewer, "offline",
                        G_CALLBACK(gtk_toggle_action_set_active),
                        aweather_gui_get_object(self, "offline"));
+       g_signal_connect_swapped(self->viewer, "refresh",
+                       G_CALLBACK(set_update_timeout), self);
        g_signal_connect_swapped(self->viewer, "realize",
                        G_CALLBACK(aweather_gui_load_plugins), self);
 }