[gnome-latex] PreferencesDialog: use g_object_bind_property() to set sensitivity
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-latex] PreferencesDialog: use g_object_bind_property() to set sensitivity
- Date: Wed, 30 May 2018 18:33:51 +0000 (UTC)
commit 21051fceb4d576890b8b03d5ab6614bfe9ef4b93
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed May 30 20:32:24 2018 +0200
PreferencesDialog: use g_object_bind_property() to set sensitivity
To set sensitivity of a widget depending on the value of a checkbutton
(other widget).
Fixes https://gitlab.gnome.org/GNOME/gnome-latex/issues/59
src/preferences_dialog.vala | 31 ++++++++++++-------------------
1 file changed, 12 insertions(+), 19 deletions(-)
---
diff --git a/src/preferences_dialog.vala b/src/preferences_dialog.vala
index da2ff7e..8cb408a 100644
--- a/src/preferences_dialog.vala
+++ b/src/preferences_dialog.vala
@@ -157,7 +157,8 @@ public class PreferencesDialog : Dialog
Widget forget_no_tabs = builder.get_object ("forget_no_tabs") as Widget;
settings.bind ("forget-no-tabs", forget_no_tabs, "active",
SettingsBindFlags.DEFAULT);
- set_sensitivity (settings, "insert-spaces", forget_no_tabs);
+ insert_spaces_checkbutton.bind_property ("active", forget_no_tabs, "sensitive",
+ BindingFlags.DEFAULT | BindingFlags.SYNC_CREATE);
var hl_current_line_checkbutton =
builder.get_object ("hl_current_line_checkbutton");
@@ -182,7 +183,8 @@ public class PreferencesDialog : Dialog
set_spin_button_range (autosave_spinbutton, settings, "auto-save-interval");
settings.bind ("auto-save-interval", autosave_spinbutton, "value",
SettingsBindFlags.DEFAULT);
- set_sensitivity (settings, "auto-save", autosave_spinbutton);
+ autosave_checkbutton.bind_property ("active", autosave_spinbutton, "sensitive",
+ BindingFlags.DEFAULT | BindingFlags.SYNC_CREATE);
Label autosave_label = builder.get_object ("autosave_label") as Label;
set_plural (autosave_label, settings, "auto-save-interval",
@@ -215,7 +217,9 @@ public class PreferencesDialog : Dialog
SettingsBindFlags.DEFAULT);
var font_hbox = builder.get_object ("font_hbox") as Widget;
- set_sensitivity (settings, "use-default-font", font_hbox, false);
+ default_font_checkbutton.bind_property ("active", font_hbox, "sensitive",
+ BindingFlags.DEFAULT | BindingFlags.SYNC_CREATE |
+ BindingFlags.INVERT_BOOLEAN);
TreeView schemes_treeview = builder.get_object ("schemes_treeview") as TreeView;
string current_scheme_id = settings.get_string ("scheme");
@@ -280,8 +284,9 @@ public class PreferencesDialog : Dialog
"interactive-completion-num");
settings.bind ("interactive-completion-num", interactive_comp_spinbutton, "value",
SettingsBindFlags.DEFAULT);
- set_sensitivity (settings, "interactive-completion",
- interactive_comp_spinbutton);
+ interactive_comp_checkbutton.bind_property ("active",
+ interactive_comp_spinbutton, "sensitive",
+ BindingFlags.DEFAULT | BindingFlags.SYNC_CREATE);
Label interactive_comp_label =
builder.get_object ("interactive_comp_label") as Label;
@@ -318,26 +323,14 @@ public class PreferencesDialog : Dialog
builder.get_object ("auto_clean_up_checkbutton") as Widget;
latex_settings.bind ("automatic-clean", auto_clean_up_checkbutton, "active",
SettingsBindFlags.DEFAULT);
- set_sensitivity (latex_settings, "no-confirm-clean", auto_clean_up_checkbutton);
+ confirm_clean_up_checkbutton.bind_property ("active", auto_clean_up_checkbutton,
+ "sensitive", BindingFlags.DEFAULT | BindingFlags.SYNC_CREATE);
var clean_up_entry = builder.get_object ("clean_up_entry");
latex_settings.bind ("clean-extensions", clean_up_entry, "text",
SettingsBindFlags.DEFAULT);
}
- private void set_sensitivity (GLib.Settings settings, string key, Widget widget,
- bool must_be_enabled = true)
- {
- bool val = settings.get_boolean (key);
- widget.set_sensitive (must_be_enabled ? val : !val);
-
- settings.changed[key].connect ((setting, k) =>
- {
- bool v = setting.get_boolean (k);
- widget.set_sensitive (must_be_enabled ? v : !v);
- });
- }
-
private void set_system_font_label (Button button)
{
AppSettings app_settings = AppSettings.get_default ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]