Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm.git;a=commitdiff;h=64d25b6c97fcbd23be3367a0c621d988eb3e48c0
commit 64d25b6c97fcbd23be3367a0c621d988eb3e48c0 Author: Priyank <[EMAIL PROTECTED]> Date: Sun Jan 27 20:36:15 2008 +0530 gfpm-logviewer: yes!! it works! diff --git a/src/gfpm-logviewer.c b/src/gfpm-logviewer.c index 3ceada1..1edd0d4 100644 --- a/src/gfpm-logviewer.c +++ b/src/gfpm-logviewer.c @@ -44,6 +44,9 @@ static GtkWidget *gfpm_logviewer_tvw; static GtkWidget *gfpm_logviewer_txtvw; static void _gfpm_logviewer_populate (void); +static void _gfpm_logviewer_populate_txtvw (const char *text); + +static void cb_gfpm_logviewer_tvw_row_activated (GtkTreeSelection *selection, gpointer data); void gfpm_logviewer_init (void) @@ -51,6 +54,7 @@ gfpm_logviewer_init (void) gint col_offset; GtkCellRenderer *renderer; GtkTreeViewColumn *column; + GtkTreeSelection *sel; if (getenv("DATEMSK") == NULL) { @@ -71,6 +75,8 @@ gfpm_logviewer_init (void) NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (gfpm_logviewer_tvw), col_offset - 1); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(gfpm_logviewer_tvw)); + g_signal_connect (G_OBJECT(sel), "changed", G_CALLBACK(cb_gfpm_logviewer_tvw_row_activated), NULL); return; } @@ -193,3 +199,61 @@ _gfpm_logviewer_populate (void) return; } +static void +_gfpm_logviewer_populate_txtvw (const char *text) +{ + struct tm *t = NULL; + char date[10] = ""; + char *ptr = NULL; + GtkTextBuffer *buffer; + GtkTextIter iter; + + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(gfpm_logviewer_txtvw)); + gtk_text_buffer_set_text (buffer, "", 0); + gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); + t = getdate (text); + if (t != NULL) + { + FILE *fp = fopen (LOG_FILE, "r"); + char line[PATH_MAX+1] = ""; + if (!fp) + { + gfpm_error (_("Error"), _("Error opening log file")); + return; + } + strftime (date, 10, "[%m/%d/%y", t); + //printf ("Searching for: %s\n", date); + while (fgets(line, PATH_MAX, fp)) + { + gchar *pot = g_strstr_len (line, 10, date); + if (pot != NULL) + gtk_text_buffer_insert (buffer, &iter, pot, -1); + } + gtk_text_view_set_buffer (GTK_TEXT_VIEW(gfpm_logviewer_txtvw), buffer); + fclose (fp); + } +} + +static void +cb_gfpm_logviewer_tvw_row_activated (GtkTreeSelection *selection, gpointer data) +{ + GtkTreeIter iter; + GtkTreeIter piter; + GtkTreeModel *model; + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + { + gchar *text = NULL; + + if (gtk_tree_model_iter_parent (model, &piter, &iter)) + { + gtk_tree_model_get (model, &iter, 0, &text, -1); + _gfpm_logviewer_populate_txtvw (text); + g_free (text); + } + } + + return; +} + + _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git