aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk/main_menubar.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2018-01-05 23:39:55 -0500
committerMichael Mann <mmann78@netscape.net>2018-01-06 17:49:23 +0000
commiteef3c8434d556ad4d3fd9b0f4fdf912145f2670d (patch)
tree51a25eaae635737dcec8e23f9087398c24dd2d75 /ui/gtk/main_menubar.c
parenta65391f9014acd5cb8e4fe09ef8b2fac4716c024 (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.c15
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();