aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/capture_dlg.c
diff options
context:
space:
mode:
authorMichael Tüxen <tuexen@fh-muenster.de>2011-08-11 12:06:35 +0000
committerMichael Tüxen <tuexen@fh-muenster.de>2011-08-11 12:06:35 +0000
commit291fa19fbfe9d81adba79c093031aeb8c8b42239 (patch)
treeb3bf8b3995402d9bc87f357c49c0d49c4f7d47ba /gtk/capture_dlg.c
parent69330127fdb518905302666b7a88522e49d681b5 (diff)
Fix a bug where the Start button of the capture options dialog
box was not activated when it should an vice versa. Reported by Stig. svn path=/trunk/; revision=38482
Diffstat (limited to 'gtk/capture_dlg.c')
-rw-r--r--gtk/capture_dlg.c50
1 files changed, 38 insertions, 12 deletions
diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c
index 3f7b3237a5..109d8151c4 100644
--- a/gtk/capture_dlg.c
+++ b/gtk/capture_dlg.c
@@ -2088,7 +2088,7 @@ static void toggle_callback(GtkCellRendererToggle *cell _U_,
int index = atoi(path_str);
guint i;
- if_cb = (GtkTreeView *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_IFACE_KEY);
+ if_cb = (GtkTreeView *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_IFACE_KEY);
model = gtk_tree_view_get_model(if_cb);
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, CAPTURE, &enabled, -1);
@@ -2097,8 +2097,6 @@ static void toggle_callback(GtkCellRendererToggle *cell _U_,
num_selected++;
else
num_selected--;
- if (num_selected<0)
- num_selected=0;
enabled ^= 1;
pcap_ng_cb = (GtkWidget *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_PCAP_NG_KEY);
if (num_selected >= 2) {
@@ -2243,12 +2241,8 @@ void enable_selected_interface(gchar *name, gboolean enable)
GtkTreeView *if_cb;
GtkTreeModel *model;
gchar *path_str;
+ gboolean enabled;
- if (enable) {
- num_selected++;
- } else {
- num_selected--;
- }
for (i = 0; i < rows->len; i++) {
row = g_array_index(rows, interface_row, i);
if (strcmp(name, row.name) == 0) {
@@ -2256,10 +2250,26 @@ void enable_selected_interface(gchar *name, gboolean enable)
model = gtk_tree_view_get_model(if_cb);
path_str = g_strdup_printf("%d", i);
gtk_tree_model_get_iter_from_string(model, &iter, path_str);
+ gtk_tree_model_get (model, &iter, CAPTURE, &enabled, -1);
+ if ((enabled == TRUE) && (enable == FALSE)) {
+ num_selected--;
+ }
+ if ((enabled == FALSE) && (enable == TRUE)) {
+ num_selected++;
+ }
gtk_list_store_set(GTK_LIST_STORE(model), &iter, CAPTURE, enable, -1);
break;
}
}
+#ifdef USE_THREADS
+ if (num_selected > 0) {
+#else
+ if (num_selected == 1) {
+#endif
+ gtk_widget_set_sensitive(ok_bt, TRUE);
+ } else {
+ gtk_widget_set_sensitive(ok_bt, FALSE);
+ }
}
@@ -2273,8 +2283,7 @@ static void capture_all_cb(GtkToggleButton *button, gpointer d _U_)
if (gtk_toggle_button_get_active(button))
enabled = TRUE;
-
- if_cb = (GtkTreeView *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_IFACE_KEY);
+ if_cb = (GtkTreeView *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_IFACE_KEY);
model = gtk_tree_view_get_model(if_cb);
gtk_tree_model_get_iter_from_string(model, &iter, "0");
pcap_ng_cb = (GtkWidget *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_PCAP_NG_KEY);
@@ -2299,6 +2308,15 @@ static void capture_all_cb(GtkToggleButton *button, gpointer d _U_)
if (get_welcome_window() != NULL) {
change_selection_for_all(enabled);
}
+#ifdef USE_THREADS
+ if (num_selected > 0) {
+#else
+ if (num_selected == 1) {
+#endif
+ gtk_widget_set_sensitive(ok_bt, TRUE);
+ } else {
+ gtk_widget_set_sensitive(ok_bt, FALSE);
+ }
}
@@ -2976,8 +2994,16 @@ capture_prep_cb(GtkWidget *w _U_, gpointer d _U_)
ok_bt = g_object_get_data(G_OBJECT(bbox), WIRESHARK_STOCK_CAPTURE_START);
g_signal_connect(ok_bt, "clicked", G_CALLBACK(capture_start_cb), NULL);
- gtk_widget_set_tooltip_text(ok_bt,
- "Start the capture process.");
+ gtk_widget_set_tooltip_text(ok_bt, "Start the capture process.");
+#ifdef USE_THREADS
+ if (num_selected > 0) {
+#else
+ if (num_selected == 1) {
+#endif
+ gtk_widget_set_sensitive(ok_bt, TRUE);
+ } else {
+ gtk_widget_set_sensitive(ok_bt, FALSE);
+ }
close_bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_CLOSE);
gtk_widget_set_tooltip_text(close_bt,