gnome-utils r8258 - trunk/logview



Author: cosimoc
Date: Tue Dec 23 13:26:22 2008
New Revision: 8258
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8258&view=rev

Log:
Implement active_log_changed_cb in the LogviewLoglist.

Modified:
   trunk/logview/logview-loglist.c

Modified: trunk/logview/logview-loglist.c
==============================================================================
--- trunk/logview/logview-loglist.c	(original)
+++ trunk/logview/logview-loglist.c	Tue Dec 23 13:26:22 2008
@@ -91,14 +91,60 @@
   gtk_tree_store_set (list->priv->model, iter,
                       LOG_WEIGHT, PANGO_WEIGHT_BOLD,
                       LOG_WEIGHT_SET, TRUE, -1);
+
+  gtk_tree_iter_free (iter);
+}
+
+
+static void
+tree_selection_changed_cb (GtkTreeSelection *selection,
+                           gpointer user_data)
+{
+  LogviewLoglist *list = user_data;
+  GtkTreeModel *model;
+  GtkTreeIter iter;
+  LogviewLog *log;
+  gboolean is_bold;
+
+  if (!gtk_tree_selection_get_selected (selection, &model, &iter)) {
+      return;
+  }
+
+  gtk_tree_model_get (model, &iter, LOG_OBJECT, &log,
+                      LOG_WEIGHT_SET, &is_bold, -1);
+  logview_manager_set_active_log (list->priv->manager, log);
+
+  if (is_bold) {
+    gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
+                        LOG_WEIGHT_SET, FALSE, -1);
+  }
+
+  g_object_unref (log);
 }
 
 static void
 manager_active_changed_cb (LogviewManager *manager,
                            LogviewLog *log,
+                           LogviewLog *old_log,
                            gpointer user_data)
 {
-  /* TODO: implement */
+  LogviewLoglist *list = user_data;
+  GtkTreeIter * iter;
+  GtkTreeSelection * selection;
+
+  iter = logview_loglist_find_log (list, log);
+
+  if (!iter) {
+    return;
+  }
+
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
+  g_signal_handlers_block_by_func (selection, tree_selection_changed_cb, list);
+
+  gtk_tree_selection_select_iter (selection, iter);
+
+  g_signal_handlers_unblock_by_func (selection, tree_selection_changed_cb, list);
+  gtk_tree_iter_free (iter);
 }
 
 static void
@@ -150,32 +196,6 @@
 }
 
 static void
-tree_selection_changed_cb (GtkTreeSelection *selection,
-                           gpointer user_data)
-{
-  LogviewLoglist *list = user_data;
-  GtkTreeModel *model;
-  GtkTreeIter iter;
-  LogviewLog *log;
-  gboolean is_bold;
-
-  if (!gtk_tree_selection_get_selected (selection, &model, &iter)) {
-      return;
-  }
-
-  gtk_tree_model_get (model, &iter, LOG_OBJECT, &log,
-                      LOG_WEIGHT_SET, &is_bold, -1);
-  logview_manager_set_active_log (list->priv->manager, log);
-
-  if (is_bold) {
-    gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
-                        LOG_WEIGHT_SET, FALSE, -1);
-  }
-
-  g_object_unref (log);
-}
-
-static void
 do_finalize (GObject *obj)
 {
   LogviewLoglist *list = LOGVIEW_LOGLIST (obj);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]