viewer_constructor cleanup
[lttv.git] / ltt / branches / poly / lttv / modules / gui / detailedevents / events.c
index c714031b35a79575ce3ac66e8be91e2f616f5b3d..f2c2ff51b0158582a9505bf490830e782b008c6f 100644 (file)
@@ -108,7 +108,7 @@ typedef struct _EventViewerData {
   unsigned     start_event_index;       // the first event shown in the window
   unsigned     end_event_index;         // the last event shown in the window
   unsigned     size;                    // maxi number of events loaded when instance the viewer
-  gboolean     current_time_updated;
// gboolean     current_time_updated;
 
   //scroll window containing Tree View
   GtkWidget * scroll_win;
@@ -151,9 +151,9 @@ void remove_context_hooks(EventViewerData * event_viewer_data,
         LttvTracesetContext * tsc);
 
 //! Event Viewer's constructor hook
-GtkWidget *h_gui_events(Tab *tab, LttvTracesetSelector * s, char* key);
+GtkWidget *h_gui_events(Tab *tab);
 //! Event Viewer's constructor
-EventViewerData *gui_events(Tab *tab, LttvTracesetSelector *s, char *key);
+EventViewerData *gui_events(Tab *tab);
 //! Event Viewer's destructor
 void gui_events_destructor(EventViewerData *event_viewer_data);
 void gui_events_free(EventViewerData *event_viewer_data);
@@ -175,7 +175,6 @@ static void tree_v_size_allocate_cb (GtkWidget *widget, GtkAllocation *alloc, gp
 static void tree_v_size_request_cb (GtkWidget *widget, GtkRequisition *requisition, gpointer data);
 static void tree_v_cursor_changed_cb (GtkWidget *widget, gpointer data);
 static void tree_v_move_cursor_cb (GtkWidget *widget, GtkMovementStep arg1, gint arg2, gpointer data);
-static void tree_v_grab_focus(GtkWidget *widget, gpointer data);
 
 
 static void get_data(double time, guint list_height, 
@@ -214,10 +213,9 @@ enum
  * @return The widget created.
  */
 GtkWidget *
-h_gui_events(Tab * tab, LttvTracesetSelector * s, char* key)
+h_gui_events(Tab * tab)
 {
-  EventViewerData* event_viewer_data = gui_events(tab, s, key) ;
-
+  EventViewerData* event_viewer_data = gui_events(tab) ;
   if(event_viewer_data)
     return event_viewer_data->hbox_v;
   else return NULL;
@@ -231,7 +229,7 @@ h_gui_events(Tab * tab, LttvTracesetSelector * s, char* key)
  * @return The Event viewer data created.
  */
 EventViewerData *
-gui_events(Tab *tab, LttvTracesetSelector * s,char* key )
+gui_events(Tab *tab)
 {
   LttTime end;
   GtkTreeViewColumn *column;
@@ -293,10 +291,6 @@ gui_events(Tab *tab, LttvTracesetSelector * s,char* key )
         G_CALLBACK (tree_v_move_cursor_cb),
         event_viewer_data);
 
-  g_signal_connect (G_OBJECT (event_viewer_data->tree_v), "grab-focus",
-        G_CALLBACK (tree_v_grab_focus),
-        event_viewer_data);
-    
   // Use on each column!
   //gtk_tree_view_column_set_sizing(event_viewer_data->tree_v, GTK_TREE_VIEW_COLUMN_FIXED);
   
@@ -438,7 +432,7 @@ gui_events(Tab *tab, LttvTracesetSelector * s,char* key )
   /* Set the Selected Event */
   //  tree_v_set_cursor(event_viewer_data);
 
-  event_viewer_data->current_time_updated = FALSE;
// event_viewer_data->current_time_updated = FALSE;
   event_viewer_data->size  = RESERVE_SMALL_SIZE;
 
   g_object_set_data_full(
@@ -677,7 +671,7 @@ void tree_v_cursor_changed_cb (GtkWidget *widget, gpointer data)
  
     if(ltt_time.tv_sec != current_time.tv_sec ||
        ltt_time.tv_nsec != current_time.tv_nsec){
-      event_viewer_data->current_time_updated = TRUE;
+   //   event_viewer_data->current_time_updated = TRUE;
       lttvwindow_report_current_time(tab,ltt_time);
     }
   }else{
@@ -1247,9 +1241,7 @@ gui_events_destructor(EventViewerData *event_viewer_data)
 
   /* May already been done by GTK window closing */
   if(GTK_IS_WIDGET(event_viewer_data->hbox_v)){
-    gui_events_free(event_viewer_data);
     gtk_widget_destroy(event_viewer_data->hbox_v);
-    event_viewer_data = NULL;
   }
   
   /* Destroy the Tree View */
@@ -1431,11 +1423,10 @@ gboolean update_current_time(void * hook_data, void * call_data)
 {
   EventViewerData *event_viewer_data = (EventViewerData*) hook_data;
   const LttTime * current_time = (LttTime*)call_data;
-  guint64 nsec = current_time->tv_sec * NANOSECONDS_PER_SECOND 
-                  + current_time->tv_nsec;
+  guint64 nsec = (guint64)current_time->tv_sec * NANOSECONDS_PER_SECOND 
+                  + (guint64)current_time->tv_nsec;
   GtkTreeIter iter;
   guint64 time;
-  int count = -1;
   GtkTreeModel* model = (GtkTreeModel*)event_viewer_data->store_m;
   GList * list;
   EventFields * data, *data1;
@@ -1448,31 +1439,41 @@ gboolean update_current_time(void * hook_data, void * call_data)
   TimeInterval time_span = tsc->time_span;
 
   if(!event_viewer_data->event_fields_queue->head) return FALSE;
-
+#if 0
   if(event_viewer_data->current_time_updated ){
     event_viewer_data->current_time_updated = FALSE;
     return FALSE;
   }
-
+#endif //0
   //check if the event is shown in the current viewer
+  gint count = 0;
+  gboolean event_shown = FALSE;
   if(gtk_tree_model_get_iter_first(model, &iter)){
-    while(1){
-      gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
-      if(time < nsec){
-  if(!gtk_tree_model_iter_next(model, &iter)){
-    count = -1;
-    break;
-  }
-  count++;
-      }else{
-  break;
+    gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
+    if(time > nsec){
+      /* Event is before the list */
+    } else {
+      /* Event can be in the list */
+      if(time >= nsec){
+        /* found */
+        event_shown = TRUE;
+      } else {
+        while(gtk_tree_model_iter_next(model, &iter)) {
+          gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
+          count++;
+          if(time >= nsec){
+            /* found */
+            event_shown = TRUE;
+            break;
+          }
+        }
       }
     }
-    //    event_selected_hook(event_viewer_data, &count);
   }
 
-  //the event is not shown in the current viewer
-  if(count == -1){
+  if(!event_shown)
+  {
+    //the event is not shown in the current viewer
     count = 0;
     //check if the event is in the buffer
     list = event_viewer_data->event_fields_queue->head;
@@ -1544,12 +1545,6 @@ gboolean traceset_changed(void * hook_data, void * call_data)
 }
 
 
-void tree_v_grab_focus(GtkWidget *widget, gpointer data){
-  EventViewerData *event_viewer_data = (EventViewerData *)data;
-  Tab * tab = event_viewer_data->tab;
-  lttvwindow_report_focus(tab, event_viewer_data->hbox_v);
-}
-
 void update_raw_data_array(EventViewerData* event_viewer_data, unsigned size)
 {
   EventFields * data;
This page took 0.025471 seconds and 4 git commands to generate.