Add a cf_cb_file_opened callback and use it instead of calling
authorGerald Combs <gerald@wireshark.org>
Wed, 26 Sep 2012 23:33:11 +0000 (23:33 -0000)
committerGerald Combs <gerald@wireshark.org>
Wed, 26 Sep 2012 23:33:11 +0000 (23:33 -0000)
fileset_file_opened directly from file.c. This makes the code a bit more
consistenent and makes it easier to port the File Set dialog to Qt.

svn path=/trunk/; revision=45162

file.c
file.h
fileset.h
ui/gtk/fileset_dlg.c
ui/gtk/fileset_dlg.h
ui/gtk/main.c
ui/gtk/main_statusbar.c

diff --git a/file.c b/file.c
index ced94b7d0b492c59f7cc4a265abe37b8aa75d4b7..c162d1f9c3b94066f186e0f3db1fb8f2cddfe2e3 100644 (file)
--- a/file.c
+++ b/file.c
@@ -340,7 +340,7 @@ cf_open(capture_file *cf, const char *fname, gboolean is_tempfile, int *err)
   cf_timestamp_auto_precision(cf);
   /* XXX needed ? */
   packet_list_queue_draw();
-  fileset_file_opened(fname);
+  cf_callback_invoke(cf_cb_file_opened, cf);
 
   if (cf->cd_t == WTAP_FILE_BER) {
     /* tell the BER dissector the file name */
diff --git a/file.h b/file.h
index 4e8c3ef7e4a60e0da7c699f526ac670cea3ab0c1..912f71dfbc82bbea7e7be5f3ab75e288b43cef4b 100644 (file)
--- a/file.h
+++ b/file.h
@@ -66,6 +66,7 @@ typedef enum {
 } cf_print_status_t;
 
 typedef enum {
+    cf_cb_file_opened,
     cf_cb_file_closing,
     cf_cb_file_closed,
     cf_cb_file_read_started,
index f3e1093e8aadba15cd132737966e48eedff8efa8..be4862664f0cf2d5e8f358cca1042bce786fea1b 100644 (file)
--- a/fileset.h
+++ b/fileset.h
@@ -61,8 +61,6 @@ extern fileset_entry *fileset_get_previous(void);
 /* this file is a part of the current file set */
 extern void fileset_dlg_add_file(fileset_entry *entry);
 
-extern void fileset_file_opened(const char *fname);
-
 extern void fileset_file_closed(void);
 
 extern void fileset_update_dlg(void);
@@ -74,4 +72,3 @@ extern void fileset_update_file(const char *path);
 #endif /* __cplusplus */
 
 #endif /* __FILESET_H__ */
-
index 97b7ce955077638043041a71c833c942bfdd8525..cbe95c88b0c5fddb61c2fe53b8b66d09f0b81da3 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <gtk/gtk.h>
 
+#include "file.h"
 #include <epan/filesystem.h>
 
 #include "ui/simple_dialog.h"
@@ -364,8 +365,8 @@ fileset_previous_cb(GtkWidget *w _U_, gpointer d _U_)
 
 /* a new capture file was opened, browse the dir and look for files matching the given file set */
 void
-fileset_file_opened(const char *fname) {
-  fileset_add_dir(fname);
+fileset_file_opened(const capture_file *cf) {
+  fileset_add_dir(cf->filename);
   if(fs_w) {
     window_present(fs_w);
   }
@@ -396,4 +397,3 @@ fileset_file_closed(void)
                          fileset_get_previous() != NULL,
                          fileset_get_next() != NULL );
 }
-
index 0da6a66ec918c1598c223bc04975d3f69b8c985c..3d86361eaf093a5f92162514d8fbcc3627bc20ea 100644 (file)
  *  @ingroup dialog_group
  */
 
+/** Enable file set menu items
+ *
+ * @param cf Capture file struct
+ */
+extern void fileset_file_opened(const capture_file *cf);
+
 /** Open the fileset dialog.
  *
  * @param w calling widget (unused)
index 5576e98ef6198a186c9aa7101cc97182691da6fb..80fa029e9f4ae940bc1f80c102da6a6c85d42757 100644 (file)
 #include "ui/gtk/gui_utils.h"
 #include "ui/gtk/color_dlg.h"
 #include "ui/gtk/filter_dlg.h"
+#include "ui/gtk/fileset_dlg.h"
 #include "ui/gtk/uat_gui.h"
 #include "ui/gtk/main.h"
 #include "ui/gtk/main_80211_toolbar.h"
@@ -1810,6 +1811,10 @@ static void
 main_cf_callback(gint event, gpointer data, gpointer user_data _U_)
 {
     switch(event) {
+    case(cf_cb_file_opened):
+        g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Opened");
+        fileset_file_opened(data);
+        break;
     case(cf_cb_file_closing):
         g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Closing");
         main_cf_cb_file_closing(data);
index f9141e67e43fe671c610b72a26ddd1efbffd476c..f579c0c35ed4c0bdcbc1a0400c4ce9d4cf5bed27 100644 (file)
@@ -988,6 +988,8 @@ void
 statusbar_cf_callback(gint event, gpointer data, gpointer user_data _U_)
 {
     switch(event) {
+    case(cf_cb_file_opened):
+        break;
     case(cf_cb_file_closing):
         statusbar_cf_file_closing_cb(data);
         break;