diff options
author | Michael Mann <mmann78@netscape.net> | 2018-01-05 23:39:55 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2018-01-06 17:49:23 +0000 |
commit | eef3c8434d556ad4d3fd9b0f4fdf912145f2670d (patch) | |
tree | 51a25eaae635737dcec8e23f9087398c24dd2d75 /ui/gtk/main_menubar.c | |
parent | a65391f9014acd5cb8e4fe09ef8b2fac4716c024 (diff) |
Add ability for preferences to determine what they can change.
Add flags field to preference structure to help determine what
areas of Wireshark are affected by a preference changing. The
intent is to be able to distinguish dissection from GUI or other
changes that are not dissection.
The default is to have all preferences affect dissection, but their
flags can be changed. This patch doesn't change any flags from the
default.
Change-Id: Ied5ae961bc3f33f5b730b2892fff3fa0898380b8
Reviewed-on: https://code.wireshark.org/review/25171
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/gtk/main_menubar.c')
-rw-r--r-- | ui/gtk/main_menubar.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c index 7b482f42b6..c35ced3e8c 100644 --- a/ui/gtk/main_menubar.c +++ b/ui/gtk/main_menubar.c @@ -4670,7 +4670,7 @@ menu_prefs_toggle_bool (GtkWidget *w, gpointer data) pref_t *pref = (pref_t*)data; module_t *module = (module_t *)g_object_get_data (G_OBJECT(w), "module"); - module->prefs_changed = TRUE; + module->prefs_changed_flags |= prefs_get_effect_flags(pref); prefs_invert_bool_value(pref, pref_current); prefs_apply (module); @@ -4692,7 +4692,7 @@ menu_prefs_change_enum (GtkWidget *w, gpointer data) return; if (prefs_set_enum_value(pref, new_value, pref_current)) { - module->prefs_changed = TRUE; + module->prefs_changed_flags |= prefs_get_effect_flags(pref); prefs_apply (module); if (!prefs.gui_use_pref_save) { @@ -4729,13 +4729,13 @@ menu_prefs_change_ok (GtkWidget *w, gpointer parent_w) new_value); return; } - module->prefs_changed |= prefs_set_uint_value(pref, uval, pref_current); + module->prefs_changed_flags |= prefs_set_uint_value(pref, uval, pref_current); break; case PREF_STRING: - module->prefs_changed |= prefs_set_string_value(pref, new_value, pref_current); + module->prefs_changed_flags |= prefs_set_string_value(pref, new_value, pref_current); break; case PREF_RANGE: - if (!prefs_set_range_value_work(pref, new_value, TRUE, &module->prefs_changed)) { + if (!prefs_set_range_value_work(pref, new_value, TRUE, &module->prefs_changed_flags)) { simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "The value \"%s\" isn't a valid range.", new_value); @@ -4747,7 +4747,7 @@ menu_prefs_change_ok (GtkWidget *w, gpointer parent_w) break; } - if (module->prefs_changed) { + if (module->prefs_changed_flags) { /* Ensure we reload the sub menu */ menu_prefs_reset(); prefs_apply (module); @@ -5415,7 +5415,8 @@ void plugin_if_menubar_preference(GHashTable *dataSet) g_hash_table_lookup_extended(dataSet, "pref_key", NULL, (void**)&pref_name ) && g_hash_table_lookup_extended(dataSet, "pref_value", NULL, (void**)&pref_value ) ) { - if ( prefs_store_ext(module_name, pref_name, pref_value) ) + unsigned int changed_flags = prefs_store_ext(module_name, pref_name, pref_value); + if ( changed_flags ) { redissect_packets(); redissect_all_packet_windows(); |