Automatically apply settings change for planet/aspect icons as characters
This commit is contained in:
parent
76975df877
commit
740691f97f
@ -427,7 +427,8 @@ ag_window_redraw_aspect_table(AgWindow *window)
|
|||||||
|
|
||||||
for (planet = planet_list, i = 0; planet; planet = g_list_next(planet), i++) {
|
for (planet = planet_list, i = 0; planet; planet = g_list_next(planet), i++) {
|
||||||
GtkWidget *label_hor,
|
GtkWidget *label_hor,
|
||||||
*label_ver;
|
*label_ver,
|
||||||
|
*current_widget;
|
||||||
GswePlanet planet_id;
|
GswePlanet planet_id;
|
||||||
GswePlanetData *planet_data;
|
GswePlanetData *planet_data;
|
||||||
GswePlanetInfo *planet_info;
|
GswePlanetInfo *planet_info;
|
||||||
@ -436,10 +437,18 @@ ag_window_redraw_aspect_table(AgWindow *window)
|
|||||||
planet_data = gswe_moment_get_planet(GSWE_MOMENT(priv->chart), planet_id, NULL);
|
planet_data = gswe_moment_get_planet(GSWE_MOMENT(priv->chart), planet_id, NULL);
|
||||||
planet_info = gswe_planet_data_get_planet_info(planet_data);
|
planet_info = gswe_planet_data_get_planet_info(planet_data);
|
||||||
|
|
||||||
|
if ((current_widget = gtk_grid_get_child_at(GTK_GRID(priv->aspect_table), i + 1, i)) != NULL) {
|
||||||
|
gtk_container_remove(GTK_CONTAINER(priv->aspect_table), current_widget);
|
||||||
|
}
|
||||||
|
|
||||||
label_hor = ag_window_create_planet_widget(planet_info);
|
label_hor = ag_window_create_planet_widget(planet_info);
|
||||||
gtk_grid_attach(GTK_GRID(priv->aspect_table), label_hor, i + 1, i, 1, 1);
|
gtk_grid_attach(GTK_GRID(priv->aspect_table), label_hor, i + 1, i, 1, 1);
|
||||||
|
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
|
if ((current_widget = gtk_grid_get_child_at(GTK_GRID(priv->aspect_table), 0, i)) != NULL) {
|
||||||
|
gtk_container_remove(GTK_CONTAINER(priv->aspect_table), current_widget);
|
||||||
|
}
|
||||||
|
|
||||||
label_ver = ag_window_create_planet_widget(planet_info);
|
label_ver = ag_window_create_planet_widget(planet_info);
|
||||||
gtk_grid_attach(GTK_GRID(priv->aspect_table), label_ver, 0, i, 1, 1);
|
gtk_grid_attach(GTK_GRID(priv->aspect_table), label_ver, 0, i, 1, 1);
|
||||||
}
|
}
|
||||||
@ -638,15 +647,34 @@ static GActionEntry win_entries[] = {
|
|||||||
{ "change-tab", ag_window_change_tab_action, "s", "'edit'", NULL },
|
{ "change-tab", ag_window_change_tab_action, "s", "'edit'", NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
ag_window_display_changed(GSettings *settings, gchar *key, AgWindow *window)
|
||||||
|
{
|
||||||
|
AgWindowPrivate *priv = ag_window_get_instance_private(window);
|
||||||
|
|
||||||
|
/* The planet symbols are redrawn only if aspect_table_populated is
|
||||||
|
* set to FALSE */
|
||||||
|
if (g_str_equal("planets-char", key)) {
|
||||||
|
priv->aspect_table_populated = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
ag_window_redraw_aspect_table(window);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ag_window_init(AgWindow *window)
|
ag_window_init(AgWindow *window)
|
||||||
{
|
{
|
||||||
AgWindowPrivate *priv;
|
|
||||||
GtkAccelGroup *accel_group;
|
GtkAccelGroup *accel_group;
|
||||||
|
GSettings *main_settings;
|
||||||
|
AgWindowPrivate *priv = ag_window_get_instance_private(window);
|
||||||
|
|
||||||
gtk_widget_init_template(GTK_WIDGET(window));
|
gtk_widget_init_template(GTK_WIDGET(window));
|
||||||
|
|
||||||
priv = ag_window_get_instance_private(window);
|
priv->settings = ag_settings_get();
|
||||||
|
main_settings = ag_settings_peek_main_settings(priv->settings);
|
||||||
|
|
||||||
|
g_signal_connect(G_OBJECT(main_settings), "changed::planets-char", G_CALLBACK(ag_window_display_changed), window);
|
||||||
|
g_signal_connect(G_OBJECT(main_settings), "changed::aspects-char", G_CALLBACK(ag_window_display_changed), window);
|
||||||
|
|
||||||
webkit_web_view_load_string(
|
webkit_web_view_load_string(
|
||||||
WEBKIT_WEB_VIEW(priv->chart_web_view),
|
WEBKIT_WEB_VIEW(priv->chart_web_view),
|
||||||
|
Loading…
Reference in New Issue
Block a user