Add Packet Editor Preference
authorAlexis La Goutte <alexis.lagoutte@gmail.com>
Thu, 7 Nov 2013 07:43:11 +0000 (07:43 -0000)
committerAlexis La Goutte <alexis.lagoutte@gmail.com>
Thu, 7 Nov 2013 07:43:11 +0000 (07:43 -0000)
svn path=/trunk/; revision=53134

epan/prefs.c
epan/prefs.h
ui/gtk/main_menubar.c
ui/gtk/prefs_gui.c

index 793a345bfac18ba51ecc82d7f297013385eeb3c2..1476dc9e87a1532cf92ec018cfa8a82453868fa5 100644 (file)
@@ -2321,6 +2321,10 @@ prefs_register_modules(void)
                        "Layout content of the pane 3",
                        (gint*)(void*)(&prefs.gui_layout_content_3), gui_layout_content, FALSE);
 
+    prefs_register_bool_preference(gui_module, "packet_editor.enabled",
+                                   "Enable Packet Editor",
+                                   "Enable Packet Editor (Experimental)",
+                                   &prefs.gui_packet_editor);
     /* Console
      * These are preferences that can be read/written using the
      * preference module API.  These preferences still use their own
@@ -2860,6 +2864,7 @@ pre_init_prefs(void)
   prefs.gui_layout_content_2       = layout_pane_content_pdetails;
   prefs.gui_layout_content_3       = layout_pane_content_pbytes;
   prefs.gui_qt_language            = 0; /* (Auto-Detect) */
+  prefs.gui_packet_editor          = FALSE;
 
   prefs.col_list = NULL;
   for (i = 0; i < DEF_NUM_COLS; i++) {
index 873c4d9b12ccbef496e784f2ee8a697227f8313b..9b9b1a10002e644b7b0730fad464c6199e164987 100644 (file)
@@ -207,6 +207,7 @@ typedef struct _e_prefs {
   gboolean     unknown_prefs;         /* unknown or obsolete pref(s) */ 
   gboolean     unknown_colorfilters;  /* unknown or obsolete color filter(s) */
   guint        gui_qt_language;       /* Qt Translation language selection */
+  gboolean     gui_packet_editor;     /* Enable Packet Editor */
 } e_prefs;
 
 WS_DLL_PUBLIC e_prefs prefs;
index be5fc6c0d9dbcf52c11fb236515d577072e487de..5ba99177d49c644ebff209388f038067e1756844 100644 (file)
@@ -4965,7 +4965,7 @@ set_menus_for_selected_packet(capture_file *cf)
                          frame_selected);
 #ifdef WANT_PACKET_EDITOR
     set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/EditMenu/EditPacket",
-                         frame_selected);
+                         prefs.gui_packet_editor ? frame_selected : FALSE);
 #endif /* WANT_PACKET_EDITOR */
     set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/EditMenu/AddEditPktComment",
                          frame_selected && wtap_dump_can_write(cf->linktypes, WTAP_COMMENT_PER_PACKET));
index e8e6b9e40145e40188bac02e633d756f53fcbdcc..9cfb4ef1b04c477352956f86e4b58cb0eb91557d 100644 (file)
@@ -86,6 +86,7 @@ static gint scroll_percent_changed_cb(GtkWidget *recent_df_entry _U_,
 #define GUI_EXPERT_EYECANDY_KEY                "expert_eyecandy"
 #define GUI_AUTO_SCROLL_KEY            "auto_scroll_on_expand"
 #define GUI_SCROLL_PERCENT_KEY         "scroll_percent_on_expand"
+#define GUI_PACKET_EDITOR              "packet_editor"
 
 static const enum_val_t filter_toolbar_placement_vals[] _U_ = {
        { "FALSE", "Below the main toolbar", FALSE },
@@ -160,6 +161,7 @@ gui_prefs_show(void)
        GtkWidget *macosx_style_cb;
 #endif
        GtkWidget *expert_info_eyecandy_cb;
+       GtkWidget *packet_editor_cb;
 
        int        pos = 0;
        char       current_val_str[128];
@@ -340,6 +342,13 @@ gui_prefs_show(void)
            prefs.gui_expert_composite_eyecandy );
        g_object_set_data(G_OBJECT(main_vb), GUI_EXPERT_EYECANDY_KEY, expert_info_eyecandy_cb);
 
+       /* Enable Experimental Packet Editor */
+       packet_editor_cb = create_preference_check_button(main_grid, pos++,
+           "Enable Packet Editor (Experimental):",
+           "Activate Packet Editor (Experimental)",
+           prefs.gui_packet_editor);
+       g_object_set_data(G_OBJECT(main_vb), GUI_PACKET_EDITOR, packet_editor_cb);
+
        /* Show 'em what we got */
        gtk_widget_show_all(main_vb);
 
@@ -408,6 +417,8 @@ gui_prefs_fetch(GtkWidget *w)
        prefs.gui_expert_composite_eyecandy =
                gtk_toggle_button_get_active((GtkToggleButton *)g_object_get_data(G_OBJECT(w), GUI_EXPERT_EYECANDY_KEY));
 
+       prefs.gui_packet_editor =
+               gtk_toggle_button_get_active((GtkToggleButton *)g_object_get_data(G_OBJECT(w), GUI_PACKET_EDITOR));
 }