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
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git