[gedit] PreferencesDialog: improvements to color scheme management
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] PreferencesDialog: improvements to color scheme management
- Date: Thu, 23 Apr 2020 14:23:00 +0000 (UTC)
commit 94c3b70cbe23e1a8ff61fbc50bc927f1c093fe34
Author: Sébastien Wilmet <swilmet gnome org>
Date: Thu Apr 23 16:14:39 2020 +0200
PreferencesDialog: improvements to color scheme management
- The default style scheme is now 'tango', not 'classic'.
- Make the code more robust in case no style scheme is selected or no
style scheme is installed.
This commit fixes some critical messages when using the feature to
add/remove color schemes from the GUI. This feature is still a bit
broken, it will be fixed by a later commit (to correctly update the
state when a style scheme is installed/uninstalled).
gedit/gedit-preferences-dialog.c | 34 +++++++++++++++++++++-------------
1 file changed, 21 insertions(+), 13 deletions(-)
---
diff --git a/gedit/gedit-preferences-dialog.c b/gedit/gedit-preferences-dialog.c
index dd626f869..81a3db809 100644
--- a/gedit/gedit-preferences-dialog.c
+++ b/gedit/gedit-preferences-dialog.c
@@ -497,12 +497,16 @@ style_scheme_changed (GtkSourceStyleSchemeChooser *chooser,
GeditPreferencesDialog *dlg)
{
GtkSourceStyleScheme *scheme;
- const gchar *id;
scheme = gtk_source_style_scheme_chooser_get_style_scheme (chooser);
- id = gtk_source_style_scheme_get_id (scheme);
+ if (scheme != NULL)
+ {
+ const gchar *id;
+
+ id = gtk_source_style_scheme_get_id (scheme);
+ g_settings_set_string (dlg->editor, GEDIT_SETTINGS_SCHEME, id);
+ }
- g_settings_set_string (dlg->editor, GEDIT_SETTINGS_SCHEME, id);
set_buttons_sensisitivity_according_to_scheme (dlg, scheme);
}
@@ -515,18 +519,14 @@ get_default_color_scheme (GeditPreferencesDialog *dlg)
manager = gtk_source_style_scheme_manager_get_default ();
- pref_id = g_settings_get_string (dlg->editor,
- GEDIT_SETTINGS_SCHEME);
-
- scheme = gtk_source_style_scheme_manager_get_scheme (manager,
- pref_id);
+ pref_id = g_settings_get_string (dlg->editor, GEDIT_SETTINGS_SCHEME);
+ scheme = gtk_source_style_scheme_manager_get_scheme (manager, pref_id);
g_free (pref_id);
if (scheme == NULL)
{
- /* Fall-back to classic style scheme */
- scheme = gtk_source_style_scheme_manager_get_scheme (manager,
- "classic");
+ /* Fall-back to tango style scheme */
+ scheme = gtk_source_style_scheme_manager_get_scheme (manager, "tango");
}
return scheme;
@@ -842,6 +842,11 @@ uninstall_scheme_clicked (GtkButton *button,
scheme = gtk_source_style_scheme_chooser_get_style_scheme (GTK_SOURCE_STYLE_SCHEME_CHOOSER
(dlg->schemes_list));
+ if (scheme == NULL)
+ {
+ return;
+ }
+
if (!uninstall_style_scheme (scheme))
{
tepl_utils_show_warning_dialog (GTK_WINDOW (dlg),
@@ -880,8 +885,11 @@ setup_font_colors_page_style_scheme_section (GeditPreferencesDialog *dlg)
G_CALLBACK (uninstall_scheme_clicked),
dlg);
- gtk_source_style_scheme_chooser_set_style_scheme (GTK_SOURCE_STYLE_SCHEME_CHOOSER (dlg->schemes_list),
- scheme);
+ if (scheme != NULL)
+ {
+ gtk_source_style_scheme_chooser_set_style_scheme (GTK_SOURCE_STYLE_SCHEME_CHOOSER
(dlg->schemes_list),
+ scheme);
+ }
/* Set initial widget sensitivity */
set_buttons_sensisitivity_according_to_scheme (dlg, scheme);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]