X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=player%2Fpreferences.c;h=88e88ff1aade52a8b6664c3ae78856079a14128e;hb=36d2b1cc41af8ef5d9e67785f9601f11242196ca;hp=ad77ee6b8b63b2810d21569d6159c3457c823208;hpb=df5a5656a19699e1ea628f9149fe1b88ad3a0015;p=projects%2Fchimara%2Fchimara.git diff --git a/player/preferences.c b/player/preferences.c index ad77ee6..88e88ff 100644 --- a/player/preferences.c +++ b/player/preferences.c @@ -168,12 +168,24 @@ preferences_create(ChimaraGlk *glk) GObject *flep = G_OBJECT( load_object("flep") ); g_settings_bind(prefs_settings, "flep", flep, "active", G_SETTINGS_BIND_DEFAULT); GtkFileChooser *blorb_chooser = GTK_FILE_CHOOSER( load_object("blorb_file_chooser") ); + GtkFileChooser *css_chooser = GTK_FILE_CHOOSER( load_object("css-filechooser") ); char *filename; g_settings_get(prefs_settings, "resource-path", "ms", &filename); if(filename) { gtk_file_chooser_set_filename(blorb_chooser, filename); g_free(filename); } + g_settings_get(prefs_settings, "css-file", "ms", &filename); + if(filename) { + if(!chimara_glk_set_css_from_file(glk, filename, NULL)) { + /* If the setting didn't point to a CSS file, fail silently and + null the setting */ + g_settings_set(prefs_settings, "css-file", "ms", NULL); + } else { + gtk_file_chooser_set_filename(css_chooser, filename); + } + g_free(filename); + } /* Populate the list of available interpreters */ GtkListStore *interp_list = GTK_LIST_STORE( load_object("available_interpreters") ); @@ -324,6 +336,21 @@ on_font_set(GtkFontButton *button, ChimaraGlk *glk) chimara_glk_update_style(glk); } +void +on_css_filechooser_file_set(GtkFileChooserButton *button, ChimaraGlk *glk) +{ + GError *error = NULL; + extern GSettings *prefs_settings; + char *filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER(button) ); + if(!chimara_glk_set_css_from_file(glk, filename, &error)) { + error_dialog(NULL, error, "There was a problem reading the CSS file: "); + g_settings_set(prefs_settings, "css-file", "ms", NULL); + } else { + g_settings_set(prefs_settings, "css-file", "ms", filename); + } + g_free(filename); +} + void on_resource_file_set(GtkFileChooserButton *button, ChimaraGlk *glk) {