* Prototypes
*/
GtkWidget *guifilter_get_widget(FilterViewerData *fvd);
-FilterViewerData *gui_filter(Tab *tab);
+FilterViewerData *gui_filter(LttvPlugin *plugin);
void gui_filter_destructor(FilterViewerData *fvd);
FilterViewerDataLine* gui_filter_add_line(FilterViewerData *fvd);
void gui_filter_line_set_visible(FilterViewerDataLine *fvdl, gboolean v);
void gui_filter_line_reset(FilterViewerDataLine *fvdl);
-GtkWidget* h_guifilter(Tab *tab);
+GtkWidget* h_guifilter(LttvPlugin *plugin);
void filter_destroy_walk(gpointer data, gpointer user_data);
/*
* Main struct for the filter gui module
*/
struct _FilterViewerData {
- Tab *tab; /**< current tab of module */
+ LttvPlugin *plugin; /**< Plugin on which we interact. */
GtkWidget *f_window; /**< filter window */
* @return The Filter viewer data created.
*/
FilterViewerData*
-gui_filter(Tab *tab)
+gui_filter(LttvPlugin *plugin)
{
g_debug("filter::gui_filter()");
FilterViewerData* fvd = g_new(FilterViewerData,1);
- fvd->tab = tab;
+ fvd->plugin = plugin;
// lttvwindow_register_traceset_notify(fvd->tab,
// filter_traceset_changed,
fvd->f_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(fvd->f_window), "LTTV Filter");
gtk_window_set_transient_for(GTK_WINDOW(fvd->f_window),
- GTK_WINDOW(main_window_get_widget(tab)));
+ GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(fvd->plugin->top_widget))));
gtk_window_set_destroy_with_parent(GTK_WINDOW(fvd->f_window), TRUE);
/*
void
gui_filter_destructor(FilterViewerData *fvd)
{
- Tab *tab = fvd->tab;
-
/* May already been done by GTK window closing */
if(GTK_IS_WIDGET(guifilter_get_widget(fvd))){
g_info("widget still exists");
*
* This constructor is given as a parameter to the menuitem and toolbar button
* registration. It creates the list.
- * @param tab A pointer to the parent window.
+ * @param obj Object to interact with.
* @return The widget created.
*/
GtkWidget *
-h_guifilter(Tab *tab)
+h_guifilter(LttvPlugin *plugin)
{
- FilterViewerData* f = gui_filter(tab) ;
+ FilterViewerData* f = gui_filter(plugin) ;
return NULL;
}
GString* s = g_string_new(gtk_entry_get_text(GTK_ENTRY(fvd->f_expression_field)));
lttv_filter_append_expression(filter,s->str);
g_string_free(s,TRUE);
- //SetFilter(fvd->tab,filter);
} else {
filter = NULL;
}
- lttvwindow_report_filter(fvd->tab, filter);
+ /* Remove the old filter if present */
+ //g_object_set_data_full(fvd->obj, "filter", filter,
+ // (GDestroyNotify)lttv_filter_destroy);
+ //g_object_notify(fvd->obj, "filter");
+ lttv_plugin_update_filter(fvd->plugin, filter);
}
gboolean callback_enter_check(GtkWidget *widget,
*/
GString* s;
s = g_ptr_array_index(fvd->f_logical_op_options,gtk_combo_box_get_active(GTK_COMBO_BOX(fvd->f_logical_op_junction_box)));
- g_string_append(a_filter_string,s->str);
+ a_filter_string = g_string_append(a_filter_string,s->str);
gtk_combo_box_set_active(GTK_COMBO_BOX(fvd->f_logical_op_junction_box),0);
/* begin expression */
- g_string_append_c(a_filter_string,'(');
+ a_filter_string = g_string_append_c(a_filter_string,'(');
/*
* For each simple expression, add the resulting string
fvdl = (FilterViewerDataLine*)g_ptr_array_index(fvd->f_lines,i);
s = g_ptr_array_index(fvd->f_not_op_options,gtk_combo_box_get_active(GTK_COMBO_BOX(fvdl->f_not_op_box)));
- g_string_append(a_filter_string,s->str);
+ a_filter_string = g_string_append(a_filter_string,s->str);
s = g_ptr_array_index(fvd->f_field_options,gtk_combo_box_get_active(GTK_COMBO_BOX(fvdl->f_field_box)));
- g_string_append(a_filter_string,s->str);
+ a_filter_string = g_string_append(a_filter_string,s->str);
s = g_ptr_array_index(fvd->f_math_op_options,gtk_combo_box_get_active(GTK_COMBO_BOX(fvdl->f_math_op_box)));
- g_string_append(a_filter_string,s->str);
+ a_filter_string = g_string_append(a_filter_string,s->str);
- g_string_append(a_filter_string,gtk_entry_get_text(GTK_ENTRY(fvdl->f_value_field)));
+ a_filter_string = g_string_append(a_filter_string,gtk_entry_get_text(GTK_ENTRY(fvdl->f_value_field)));
s = g_ptr_array_index(fvd->f_logical_op_options,gtk_combo_box_get_active(GTK_COMBO_BOX(fvdl->f_logical_op_box)));
- g_string_append(a_filter_string,s->str);
+ a_filter_string = g_string_append(a_filter_string,s->str);
/*
* resetting simple expression lines
}
/* end expression */
- g_string_append_c(a_filter_string,')');
+ a_filter_string = g_string_append_c(a_filter_string,')');
g_string_prepend(a_filter_string,gtk_entry_get_text(GTK_ENTRY(fvd->f_expression_field)));
gtk_entry_set_text(GTK_ENTRY(fvd->f_expression_field),a_filter_string->str);