gnome-utils r8319 - trunk/logview
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-utils r8319 - trunk/logview
- Date: Tue, 23 Dec 2008 13:28:19 +0000 (UTC)
Author: cosimoc
Date: Tue Dec 23 13:28:19 2008
New Revision: 8319
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8319&view=rev
Log:
Clear the invisible selection if we select back the full log.
Modified:
trunk/logview/logview-loglist.c
trunk/logview/logview-loglist.h
trunk/logview/logview-window.c
Modified: trunk/logview/logview-loglist.c
==============================================================================
--- trunk/logview/logview-loglist.c (original)
+++ trunk/logview/logview-loglist.c Tue Dec 23 13:28:19 2008
@@ -31,6 +31,7 @@
GtkTreeStore *model;
LogviewManager *manager;
GtkTreePath *selection;
+ gboolean has_day_selection;
};
G_DEFINE_TYPE (LogviewLoglist, logview_loglist, GTK_TYPE_TREE_VIEW);
@@ -48,6 +49,7 @@
enum {
DAY_SELECTED,
+ DAY_CLEARED,
LAST_SIGNAL
};
@@ -172,7 +174,7 @@
GtkTreeModel *model;
GtkTreeIter iter, parent;
LogviewLog *log;
- gboolean is_bold;
+ gboolean is_bold, is_active;
Day *day;
if (!gtk_tree_selection_get_selected (selection, &model, &iter)) {
@@ -183,10 +185,16 @@
LOG_WEIGHT_SET, &is_bold,
LOG_DAY, &day, -1);
if (log) {
- if (!logview_manager_log_is_active (list->priv->manager, log)) {
+ is_active = logview_manager_log_is_active (list->priv->manager, log);
+
+ if (is_active && list->priv->has_day_selection) {
+ list->priv->has_day_selection = FALSE;
+ g_signal_emit (list, signals[DAY_CLEARED], 0, NULL);
+ } else if (!is_active) {
logview_manager_set_active_log (list->priv->manager, log);
}
} else {
+ list->priv->has_day_selection = TRUE;
gtk_tree_model_iter_parent (model, &parent, &iter);
gtk_tree_model_get (model, &parent, LOG_OBJECT, &log, -1);
@@ -384,7 +392,9 @@
GtkTreeSelection *selection;
GtkCellRenderer *cell;
- list->priv = GET_PRIVATE (list);
+ list->priv = GET_PRIVATE (list);
+ list->priv->has_day_selection = FALSE;
+ list->priv->selection = NULL;
model = gtk_tree_store_new (5, LOGVIEW_TYPE_LOG, G_TYPE_STRING, G_TYPE_INT,
G_TYPE_BOOLEAN, G_TYPE_POINTER);
@@ -441,6 +451,14 @@
G_TYPE_NONE, 1,
G_TYPE_POINTER);
+ signals[DAY_CLEARED] = g_signal_new ("day-cleared",
+ G_OBJECT_CLASS_TYPE (oclass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (LogviewLoglistClass, day_cleared),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
g_type_class_add_private (klass, sizeof (LogviewLoglistPrivate));
}
Modified: trunk/logview/logview-loglist.h
==============================================================================
--- trunk/logview/logview-loglist.h (original)
+++ trunk/logview/logview-loglist.h Tue Dec 23 13:28:19 2008
@@ -53,6 +53,7 @@
void (* day_selected) (LogviewLoglist *loglist,
Day *day);
+ void (* day_cleared) (LogviewLoglist *loglist);
};
GType logview_loglist_get_type (void);
Modified: trunk/logview/logview-window.c
==============================================================================
--- trunk/logview/logview-window.c (original)
+++ trunk/logview/logview-window.c Tue Dec 23 13:28:19 2008
@@ -730,6 +730,23 @@
}
static void
+loglist_day_cleared_cb (LogviewLoglist *loglist,
+ gpointer user_data)
+{
+ LogviewWindow *logview = user_data;
+ GtkTextBuffer *buffer;
+ GtkTextIter start, end;
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (logview->priv->text_view));
+ gtk_text_buffer_get_start_iter (buffer, &start);
+ gtk_text_buffer_get_end_iter (buffer, &end);
+
+ /* clear all previous invisible tags */
+ gtk_text_buffer_remove_tag_by_name (buffer, "invisible",
+ &start, &end);
+}
+
+static void
logview_window_select_date (LogviewWindow *logview, GDate *date)
{
LogviewLog *log;
@@ -1012,6 +1029,8 @@
g_signal_connect (priv->loglist, "day_selected",
G_CALLBACK (loglist_day_selected_cb), logview);
+ g_signal_connect (priv->loglist, "day_cleared",
+ G_CALLBACK (loglist_day_cleared_cb), logview);
/* second pane : log */
main_view = gtk_vbox_new (FALSE, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]