From Michael Mann:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 25 Jun 2012 21:05:36 +0000 (21:05 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 25 Jun 2012 21:05:36 +0000 (21:05 +0000)
generic preferences implementation

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7402

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@43484 f5534014-38df-0310-8fa8-9805f1628bb7

dftest.c
epan/prefs-int.h
epan/prefs.c
rawshark.c
tshark.c
ui/gtk/CMakeLists.txt
ui/gtk/Makefile.common
ui/gtk/main.c
ui/gtk/prefs_dlg.c
ui/gtk/prefs_taps.c
ui/qt/main.cpp

index 939f77be11f6eab03e2d9c3bbe8055ead4ab93cd..b11d0a6424c8cac6907183978449234c4b9237a4 100644 (file)
--- a/dftest.c
+++ b/dftest.c
@@ -86,10 +86,6 @@ main(int argc, char **argv)
                  failure_message, open_failure_message, read_failure_message,
                  write_failure_message);
 
-       /* now register the preferences for any non-dissector modules.
-       we must do that before we read the preferences as well. */
-       prefs_register_modules();
-
        /* set the c-language locale to the native environment. */
        setlocale(LC_ALL, "");
 
index c7f8d4fc9fd02ee84c12a9486b4171f59aa88181..38f4a2779e1f484671a2e5b0b3689bab3d1f57a6 100644 (file)
@@ -38,6 +38,7 @@ struct pref_module {
        const char *description;        /**< Description of module (displayed in preferences notebook) */
        void (*apply_cb)(void);         /**< routine to call when preferences applied */
        GList   *prefs;                         /**< list of its preferences */
+    struct pref_module *parent; /**< parent module */
        emem_tree_t *submodules;        /**< list of its submodules */
        int     numprefs;                               /**< number of non-obsolete preferences */
        gboolean prefs_changed;         /**< if TRUE, a preference has changed since we last checked */
index 6b3dffae5560e643450312477701eddc6a9711dc..ee3125738f02a20b8559c778b492167817eab225 100644 (file)
@@ -237,6 +237,7 @@ prefs_register_module_or_subtree(module_t *parent, const char *name,
        module->description = description;
        module->apply_cb = apply_cb;
        module->prefs = NULL;   /* no preferences, to start */
+    module->parent = parent;
        module->submodules = NULL;      /* no submodules, to start */
        module->numprefs = 0;
        module->prefs_changed = FALSE;
@@ -326,9 +327,10 @@ prefs_register_protocol(int id, void (*apply_cb)(void))
         */
        if (protocols_module == NULL) {
                /*
-                * No.  Do so.
+                * No.  Register Protocols subtree as well as any preferences
+         * for non-dissector modules.
                 */
-               protocols_module = prefs_register_subtree(NULL, "Protocols", NULL);
+        prefs_register_modules();
        }
        protocol = find_protocol_by_id(id);
        return prefs_register_module(protocols_module,
@@ -351,9 +353,10 @@ prefs_register_protocol_subtree(const char *subtree, int id, void (*apply_cb)(vo
         */
        if (protocols_module == NULL) {
                /*
-                * No.  Do so.
+                * No.  Register Protocols subtree as well as any preferences
+         * for non-dissector modules.
                 */
-               protocols_module = prefs_register_subtree(NULL, "Protocols", NULL);
+        prefs_register_modules();
        }
 
        subtree_module = protocols_module;
@@ -401,9 +404,10 @@ prefs_register_protocol_obsolete(int id)
         */
        if (protocols_module == NULL) {
                /*
-                * No.  Do so.
+                * No.  Register Protocols subtree as well as any preferences
+         * for non-dissector modules.
                 */
-               protocols_module = prefs_register_subtree(NULL, "Protocols", NULL);
+        prefs_register_modules();
        }
        protocol = find_protocol_by_id(id);
        module = prefs_register_module(protocols_module,
@@ -927,12 +931,58 @@ prefs_pref_foreach(module_t *module, pref_cb callback, gpointer user_data)
        return 0;
 }
 
+static void stats_callback(void)
+{
+    /* Test for a sane tap update interval */
+    if (prefs.tap_update_interval < 100 || prefs.tap_update_interval > 10000) {
+            prefs.tap_update_interval = TAP_UPDATE_DEFAULT_INTERVAL;
+    }
+
+#ifdef HAVE_LIBPORTAUDIO
+    /* Test for a sane max channels entry */
+    if (prefs.rtp_player_max_visible < 1 || prefs.rtp_player_max_visible > 10)
+            prefs.rtp_player_max_visible = RTP_PLAYER_DEFAULT_VISIBLE;
+#endif
+
+}
+
 /*
  * Register all non-dissector modules' preferences.
  */
 void
 prefs_register_modules(void)
 {
+    module_t* stats;
+
+    if (protocols_module != NULL) {
+        /* Already setup preferences */
+        return;
+    }
+
+    stats = prefs_register_module(NULL, "statistics", "Statistics",
+        "Statistics", &stats_callback);
+
+       prefs_register_uint_preference(stats, "update_interval",
+                                      "Tap update interval in ms",
+                                      "Determines time between tap updates",
+                                      10,
+                                      &prefs.tap_update_interval);
+
+#ifdef HAVE_LIBPORTAUDIO
+       prefs_register_uint_preference(stats, "rtp_player_max_visible",
+                                      "Max visible channels in RTP Player",
+                                      "Determines maximum height of RTP Player window",
+                                      10,
+                                      &prefs.rtp_player_max_visible);
+#endif
+
+    protocols_module = prefs_register_module(NULL, "protocols", "Protocols",
+        "Protocols", NULL);
+
+    prefs_register_bool_preference(protocols_module, "display_hidden_proto_items",
+                                  "Display hidden protocol items",
+                                  "Display all hidden protocol items in the packet list.",
+                                  &prefs.display_hidden_proto_items);
 }
 
 /* Parse through a list of comma-separated, possibly quoted strings.
@@ -2126,12 +2176,6 @@ prefs_capture_device_monitor_mode(const char *name)
 #define GREEN_COMPONENT(x) (guint16) (((((x) >>  8) & 0xff) * 65535 / 255))
 #define BLUE_COMPONENT(x)  (guint16) ( (((x)        & 0xff) * 65535 / 255))
 
-/*  values for the rtp player preferences dialog box */
-#define PRS_TAP_UPDATE_INTERVAL           "taps.update_interval"
-#define PRS_RTP_PLAYER_MAX_VISIBLE        "taps.rtp_player_max_visible"
-
-#define PRS_DISPLAY_HIDDEN_PROTO_ITEMS          "packet_list.display_hidden_proto_items"
-
 static const gchar *pr_formats[] = { "text", "postscript" };
 static const gchar *pr_dests[]   = { "command", "file" };
 
@@ -2661,14 +2705,6 @@ set_pref(gchar *pref_name, gchar *value, void *private_data _U_,
     prefs.load_smi_modules = ((g_ascii_strcasecmp(value, "true") == 0)?TRUE:FALSE);
   } else if (strcmp(pref_name, PRS_NAME_RESOLVE_SUPPRESS_SMI_ERRORS) == 0) {
     prefs.suppress_smi_errors = ((g_ascii_strcasecmp(value, "true") == 0)?TRUE:FALSE);
-  } else if ((strcmp(pref_name, PRS_RTP_PLAYER_MAX_VISIBLE) == 0) ||
-             (strcmp(pref_name, "rtp_player.max_visible") == 0)) {
-    /* ... also accepting old name for this preference */
-    prefs.rtp_player_max_visible = strtol(value, NULL, 10);
-  } else if (strcmp(pref_name, PRS_TAP_UPDATE_INTERVAL) == 0) {
-    prefs.tap_update_interval = strtol(value, NULL, 10);
-  } else if (strcmp(pref_name, PRS_DISPLAY_HIDDEN_PROTO_ITEMS) == 0) {
-    prefs.display_hidden_proto_items = ((g_ascii_strcasecmp(value, "true") == 0)?TRUE:FALSE);
   } else {
     /* To which module does this preference belong? */
     module = NULL;
@@ -3757,21 +3793,12 @@ write_prefs(char **pf_path_return)
   fprintf(pf, PRS_NAME_RESOLVE_SUPPRESS_SMI_ERRORS ": %s\n",
          prefs.suppress_smi_errors == TRUE ? "TRUE" : "FALSE");
 
-  fprintf(pf, "\n####### Taps/Statistics ########\n");
-
-  fprintf(pf, "\n# Tap update interval in ms.\n");
-  fprintf(pf, "# An integer value greater between 100 and 10000.\n");
-  if (prefs.tap_update_interval == default_prefs.tap_update_interval)
-    fprintf(pf, "#");
-  fprintf(pf, PRS_TAP_UPDATE_INTERVAL ": %d\n",
-          prefs.tap_update_interval);
-
-  fprintf(pf, "\n# Maximum visible channels in RTP Player window.\n");
-  fprintf(pf, "# An integer value greater than 0.\n");
-  if (prefs.rtp_player_max_visible == default_prefs.rtp_player_max_visible)
-    fprintf(pf, "#");
-  fprintf(pf, PRS_RTP_PLAYER_MAX_VISIBLE ": %d\n",
-         prefs.rtp_player_max_visible);
+  /*
+   * XXX - The following members are intentionally not written here because 
+   * they are handled within the 'generic' preference handling:
+   * tap_update_interval
+   * rtp_player_max_visible
+   */
 
   fprintf(pf, "\n####### Filter Expressions ########\n");
   {
@@ -3791,12 +3818,11 @@ write_prefs(char **pf_path_return)
 
   fprintf(pf, "\n####### Protocols ########\n");
 
-  fprintf(pf, "\n# Display hidden items in packet details pane?\n");
-  fprintf(pf, "# TRUE or FALSE (case-insensitive).\n");
-  if (prefs.display_hidden_proto_items == default_prefs.display_hidden_proto_items)
-    fprintf(pf, "#");
-  fprintf(pf, PRS_DISPLAY_HIDDEN_PROTO_ITEMS ": %s\n",
-         prefs.display_hidden_proto_items == TRUE ? "TRUE" : "FALSE");
+  /*
+   * XXX - The following members are intentionally not written here because 
+   * they are handled within the 'generic' preference handling:
+   * display_hidden_proto_items
+   */
 
   pe_tree_foreach(prefs_modules, write_module_prefs, pf);
 
@@ -3893,10 +3919,13 @@ copy_prefs(e_prefs *dest, e_prefs *src)
   dest->capture_show_info = src->capture_show_info;
   dest->name_resolve = src->name_resolve;
   dest->name_resolve_concurrency = src->name_resolve_concurrency;
-  dest->tap_update_interval = src->tap_update_interval;
-  dest->rtp_player_max_visible = src->rtp_player_max_visible;
-  dest->display_hidden_proto_items = src->display_hidden_proto_items;
-
+  /*
+   * XXX - The following members are intentionally not copied because they
+   * are handled within the 'generic' preference handling:
+   * tap_update_interval
+   * rtp_player_max_visible
+   * display_hidden_proto_items
+   */
 }
 
 /* Free a set of preferences. */
index 719eba18708c1f5e9d56659f12668daaec9776a9..8dddc9315efad160934b1d649e802af81dc5ab65 100644 (file)
@@ -514,10 +514,6 @@ main(int argc, char *argv[])
               failure_message, open_failure_message, read_failure_message,
               write_failure_message);
 
-    /* Now register the preferences for any non-dissector modules.
-       We must do that before we read the preferences as well. */
-    prefs_register_modules();
-
     /* Set the C-language locale to the native environment. */
     setlocale(LC_ALL, "");
 
index 2b83d54881dbdda5942c648649dbfec9f95b6f77..2535e6c573192543ea041b6b4aaf421c8fc83947 100644 (file)
--- a/tshark.c
+++ b/tshark.c
@@ -967,10 +967,6 @@ main(int argc, char *argv[])
 #endif
   register_all_tap_listeners();
 
-  /* Now register the preferences for any non-dissector modules.
-     We must do that before we read the preferences as well. */
-  prefs_register_modules();
-
   /* If invoked with the "-G" flag, we dump out information based on
      the argument to the "-G" flag; if no argument is specified,
      for backwards compatibility we dump out a glossary of display
index a556099b75c813c3e8522f14e09f0fc457656140..ed8edc7b7bed6ee43c20ba3fe6ca155507ade9bf 100644 (file)
@@ -96,8 +96,6 @@ set(WIRESHARK_GTK_SRC
        prefs_layout.c
        prefs_nameres.c
        prefs_print.c
-       prefs_protocols.c
-       prefs_taps.c
        prefs_stream.c
        print_dlg.c
        profile_dlg.c
index 72a7b5ce32d8894865bffb16a7f79fc696953d2f..3e54f3caefe7b1388633e8e4984eb18945f6068b 100644 (file)
@@ -121,8 +121,6 @@ WIRESHARK_GTK_SRC = \
        prefs_layout.c  \
        prefs_nameres.c \
        prefs_print.c   \
-       prefs_protocols.c       \
-       prefs_taps.c    \
        prefs_stream.c  \
        print_dlg.c     \
        profile_dlg.c   \
@@ -324,8 +322,6 @@ noinst_HEADERS = \
        prefs_layout.h  \
        prefs_nameres.h \
        prefs_print.h   \
-       prefs_protocols.h       \
-       prefs_taps.h    \
        prefs_stream.h  \
        profile_dlg.h   \
        proto_dlg.h     \
index 39f2fa623d5f78ce21f58474049af22d8223c9a7..ca61a768725ffd825d5fd720650004c5ff76e9ef 100644 (file)
@@ -2574,10 +2574,6 @@ main(int argc, char *argv[])
 
   splash_update(RA_PREFERENCES, NULL, (gpointer)splash_win);
 
-  /* Now register the preferences for any non-dissector modules.
-     We must do that before we read the preferences as well. */
-  prefs_register_modules();
-
   prefs_p = read_configuration_files (&gdp_path, &dp_path);
   /* Removed thread code:
    * http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=35027
index 8f3babe9e31a3336d0e92f0aafece3835fe0473f..6d2844bdf4f2b1e3862efa7f44f9a7b3075c7a31 100644 (file)
@@ -50,8 +50,6 @@
 #include "ui/gtk/prefs_layout.h"
 #include "ui/gtk/prefs_capture.h"
 #include "ui/gtk/prefs_nameres.h"
-#include "ui/gtk/prefs_taps.h"
-#include "ui/gtk/prefs_protocols.h"
 #include "ui/gtk/gui_utils.h"
 #include "ui/gtk/dlg_utils.h"
 #include "ui/gtk/stock_icons.h"
@@ -99,8 +97,6 @@ static GtkWidget *create_preference_filename_entry(GtkWidget *, int,
 #define E_CAPTURE_PAGE_KEY            "capture_options_page"
 #define E_PRINT_PAGE_KEY              "printer_options_page"
 #define E_NAMERES_PAGE_KEY            "nameres_options_page"
-#define E_TAPS_PAGE_KEY               "taps_options_page"
-#define E_PROTOCOLS_PAGE_KEY          "protocols_options_page"
 #define E_FILTER_EXPRESSIONS_PAGE_KEY "filter_expressions_page"
 
 /*
@@ -124,7 +120,7 @@ struct ct_struct {
   GtkWidget    *tree;
   GtkTreeIter  iter;
   gint         page;
-  gboolean     is_protocol;
+  GtkTreeStore *store;
 };
 
 static gint protocols_page = 0;
@@ -268,7 +264,76 @@ pref_show(pref_t *pref, gpointer user_data)
   return 0;
 }
 
+#define prefs_tree_iter GtkTreeIter
+
+/* add a page to the tree */
+static prefs_tree_iter
+prefs_tree_page_add(const gchar *title, gint page_nr,
+                    gpointer store, prefs_tree_iter *parent_iter)
+{
+  prefs_tree_iter   iter;
+
+  gtk_tree_store_append(store, &iter, parent_iter);
+  gtk_tree_store_set(store, &iter, 0, title, 1, page_nr, -1);
+  return iter;
+}
+
+/* add a page to the notebook */
+static GtkWidget *
+prefs_nb_page_add(GtkWidget *notebook, const gchar *title, GtkWidget *page, const char *page_key)
+{
+  GtkWidget         *frame;
+
+  frame = gtk_frame_new(title);
+  gtk_widget_show(frame);
+  if(page) {
+    gtk_container_add(GTK_CONTAINER(frame), page);
+    g_object_set_data(G_OBJECT(prefs_w), page_key, page);
+  }
+  gtk_notebook_append_page (GTK_NOTEBOOK(notebook), frame, NULL);
+
+  return frame;
+}
+
+/* create a basic window for preferences */
+GtkWidget*
+simple_prefs_show(module_t *module, struct ct_struct *cts, gchar* label_str)
+{
+    GtkWidget   *main_tb, *main_vb, *frame, *main_sw;
+    int pos = 0;
+
+    /* Scrolled window */
+    main_sw = gtk_scrolled_window_new(NULL, NULL);
+    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(main_sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+
+    /* Frame */
+    frame = gtk_frame_new(module->description);
+    gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
+    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(main_sw), frame);
+    g_object_set_data(G_OBJECT(main_sw), E_PAGESW_FRAME_KEY, frame);
+
+    /* Main vertical box */
+    main_vb = ws_gtk_box_new(GTK_ORIENTATION_VERTICAL, 5, FALSE);
+    gtk_container_set_border_width(GTK_CONTAINER(main_vb), 5);
+    gtk_container_add(GTK_CONTAINER(frame), main_vb);
+
+    /* Main table */
+    main_tb = gtk_table_new(module->numprefs, 2, FALSE);
+    gtk_box_pack_start(GTK_BOX(main_vb), main_tb, FALSE, FALSE, 0);
+    gtk_table_set_row_spacings(GTK_TABLE(main_tb), 10);
+    gtk_table_set_col_spacings(GTK_TABLE(main_tb), 15);
+
+    /* Add items for each of the preferences */
+    prefs_pref_foreach(module, pref_show, main_tb);
+
+    /* Show 'em what we got */
+    gtk_widget_show_all(main_vb);
+
+    return main_vb;
+}
+
 #define MAX_TREE_NODE_NAME_LEN 64
+
 /* show prefs page for each registered module (protocol) */
 static guint
 module_prefs_show(module_t *module, gpointer user_data)
@@ -304,8 +369,17 @@ module_prefs_show(module_t *module, gpointer user_data)
    */
   g_strlcpy(label_str, module->title, MAX_TREE_NODE_NAME_LEN);
   model = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(cts->tree)));
-  if (prefs_module_has_submodules(module) && !cts->iter.stamp)
-    gtk_tree_store_append(model, &iter, NULL);
+
+  if (module->parent == NULL) {
+        prefs_nb_page_add(cts->notebook, label_str, simple_prefs_show(module, cts, label_str), module->title);
+        gtk_tree_store_append(model, &iter, NULL);
+        /* Save the protocols page */
+        if (strcmp(module->title, "Protocols") == 0) {
+            protocols_page = cts->page++;
+        } else {
+            cts->page++;
+        }
+  }
   else
     gtk_tree_store_append(model, &iter, &cts->iter);
 
@@ -324,8 +398,6 @@ module_prefs_show(module_t *module, gpointer user_data)
      */
     child_cts = *cts;
     child_cts.iter = iter;
-    if (module == protocols_module)
-      child_cts.is_protocol = TRUE;
     prefs_modules_foreach_submodules(module, module_prefs_show, &child_cts);
 
     /* keep the page count right */
@@ -386,38 +458,6 @@ module_prefs_show(module_t *module, gpointer user_data)
 }
 
 
-#define prefs_tree_iter GtkTreeIter
-
-/* add a page to the tree */
-static prefs_tree_iter
-prefs_tree_page_add(const gchar *title, gint page_nr,
-                    gpointer store, prefs_tree_iter *parent_iter)
-{
-  prefs_tree_iter   iter;
-
-  gtk_tree_store_append(store, &iter, parent_iter);
-  gtk_tree_store_set(store, &iter, 0, title, 1, page_nr, -1);
-  return iter;
-}
-
-/* add a page to the notebook */
-static GtkWidget *
-prefs_nb_page_add(GtkWidget *notebook, const gchar *title, GtkWidget *page, const char *page_key)
-{
-  GtkWidget         *frame;
-
-  frame = gtk_frame_new(title);
-  gtk_widget_show(frame);
-  if(page) {
-    gtk_container_add(GTK_CONTAINER(frame), page);
-    g_object_set_data(G_OBJECT(prefs_w), page_key, page);
-  }
-  gtk_notebook_append_page (GTK_NOTEBOOK(notebook), frame, NULL);
-
-  return frame;
-}
-
-
 /* show the dialog */
 void
 prefs_cb(GtkWidget *w, gpointer dummy)
@@ -512,11 +552,6 @@ prefs_page_cb(GtkWidget *w _U_, gpointer dummy _U_, PREFS_PAGE_E prefs_page)
 
   cts.page = 0;
 
-  /* Preferences common for all protocols */
-  g_strlcpy(label_str, "Protocols", MAX_TREE_NODE_NAME_LEN);
-  prefs_nb_page_add(prefs_nb, label_str, protocols_prefs_show(), E_PROTOCOLS_PAGE_KEY);
-  protocols_page = cts.page++;
-
   /* GUI prefs */
   g_strlcpy(label_str, "User Interface", MAX_TREE_NODE_NAME_LEN);
   prefs_nb_page_add(prefs_nb, label_str, gui_prefs_show(), E_GUI_PAGE_KEY);
@@ -582,9 +617,10 @@ prefs_page_cb(GtkWidget *w _U_, gpointer dummy _U_, PREFS_PAGE_E prefs_page)
 #endif /* _WIN32 */
 #endif /* HAVE_LIBPCAP */
 
-  /* Printing prefs */
-  g_strlcpy(label_str, "Printing", MAX_TREE_NODE_NAME_LEN);
-  prefs_nb_page_add(prefs_nb, label_str, printer_prefs_show(), E_PRINT_PAGE_KEY);
+  /* Saved filter prefs */
+  g_strlcpy(label_str, "Filter Expressions", MAX_TREE_NODE_NAME_LEN);
+  prefs_nb_page_add(prefs_nb, label_str, filter_expressions_prefs_show(),
+    E_FILTER_EXPRESSIONS_PAGE_KEY);
   prefs_tree_page_add(label_str, cts.page, store, NULL);
   cts.page++;
 
@@ -594,22 +630,15 @@ prefs_page_cb(GtkWidget *w _U_, gpointer dummy _U_, PREFS_PAGE_E prefs_page)
   prefs_tree_page_add(label_str, cts.page, store, NULL);
   cts.page++;
 
-  /* Saved filter prefs */
-  g_strlcpy(label_str, "Filter Expressions", MAX_TREE_NODE_NAME_LEN);
-  prefs_nb_page_add(prefs_nb, label_str, filter_expressions_prefs_show(),
-    E_FILTER_EXPRESSIONS_PAGE_KEY);
-  prefs_tree_page_add(label_str, cts.page, store, NULL);
-  cts.page++;
-
-  /* TAPS player prefs */
-  g_strlcpy(label_str, "Statistics", MAX_TREE_NODE_NAME_LEN);
-  prefs_nb_page_add(prefs_nb, label_str, stats_prefs_show(), E_TAPS_PAGE_KEY);
+  /* Printing prefs */
+  g_strlcpy(label_str, "Printing", MAX_TREE_NODE_NAME_LEN);
+  prefs_nb_page_add(prefs_nb, label_str, printer_prefs_show(), E_PRINT_PAGE_KEY);
   prefs_tree_page_add(label_str, cts.page, store, NULL);
   cts.page++;
 
   /* Registered prefs */
   cts.notebook = prefs_nb;
-  cts.is_protocol = FALSE;
+  cts.store = store;
   prefs_modules_foreach_submodules(NULL, module_prefs_show, &cts);
 
   /* Button row: OK and alike buttons */
@@ -1322,8 +1351,6 @@ prefs_main_fetch_all(GtkWidget *dlg, gboolean *must_redissect)
   nameres_prefs_fetch(g_object_get_data(G_OBJECT(dlg), E_NAMERES_PAGE_KEY));
   filter_expressions_prefs_fetch(g_object_get_data(G_OBJECT(dlg),
     E_FILTER_EXPRESSIONS_PAGE_KEY));
-  stats_prefs_fetch(g_object_get_data(G_OBJECT(dlg), E_TAPS_PAGE_KEY));
-  protocols_prefs_fetch(g_object_get_data(G_OBJECT(dlg), E_PROTOCOLS_PAGE_KEY));
   prefs_modules_foreach(module_prefs_fetch, must_redissect);
 
   return TRUE;
@@ -1359,8 +1386,6 @@ prefs_main_apply_all(GtkWidget *dlg, gboolean redissect)
 #endif /* HAVE_LIBPCAP */
   printer_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_PRINT_PAGE_KEY));
   nameres_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_NAMERES_PAGE_KEY));
-  stats_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_TAPS_PAGE_KEY));
-  protocols_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_PROTOCOLS_PAGE_KEY));
 
   /* show/hide the Save button - depending on setting */
   save_bt = g_object_get_data(G_OBJECT(prefs_w), E_PREFSW_SAVE_BT_KEY);
@@ -1403,13 +1428,11 @@ prefs_main_destroy_all(GtkWidget *dlg)
 #endif /* HAVE_LIBPCAP */
   printer_prefs_destroy(g_object_get_data(G_OBJECT(dlg), E_PRINT_PAGE_KEY));
   nameres_prefs_destroy(g_object_get_data(G_OBJECT(dlg), E_NAMERES_PAGE_KEY));
-  stats_prefs_destroy(g_object_get_data(G_OBJECT(dlg), E_TAPS_PAGE_KEY));
 
   /* Free up the saved preferences (both for "prefs" and for registered
      preferences). */
   free_prefs(&saved_prefs);
   prefs_modules_foreach(module_prefs_clean, NULL);
-  protocols_prefs_destroy(g_object_get_data(G_OBJECT(dlg), E_PROTOCOLS_PAGE_KEY));
 }
 
 
index 2a6d06fa063a54eff2775f86ed7519df72b28b6d..22c60ed89b871f04129233d13814d3621882dbd2 100644 (file)
@@ -107,7 +107,7 @@ stats_prefs_fetch(GtkWidget *w _U_)
 
         /* Test for a sane tap update interval */
         if (prefs.tap_update_interval < 100 || prefs.tap_update_interval > 10000) {
-                prefs.tap_update_interval = 3000;
+                prefs.tap_update_interval = TAP_UPDATE_DEFAULT_INTERVAL;
         }
 
 #ifdef HAVE_LIBPORTAUDIO
index 242296fad68bbb171c33678e6458a8159f56742f..755112c25b14f6e24a3fe33057af39686ac2b78f 100644 (file)
@@ -941,10 +941,6 @@ int main(int argc, char *argv[])
 
 //    splash_update(RA_PREFERENCES, NULL, (gpointer)splash_win);
 
-    /* Now register the preferences for any non-dissector modules.
-       We must do that before we read the preferences as well. */
-    prefs_register_modules();
-
     prefs_p = read_configuration_files (&gdp_path, &dp_path);
     /* Removed thread code:
      * http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=35027