Blob Blame History Raw
diff -ru planner-0.14.4.orig/src/planner-conf-gconf.c planner-0.14.4/src/planner-conf-gconf.c
--- planner-0.14.4.orig/src/planner-conf-gconf.c	2008-07-22 14:41:47.000000000 +0100
+++ planner-0.14.4/src/planner-conf-gconf.c	2010-01-13 09:50:33.000000000 +0000
@@ -110,6 +110,28 @@
 	return ret_val;
 }
 
+gint
+planner_conf_get_int_with_default (const gchar *key, gint def, GError **error)
+{
+	GConfClient *client;
+	GConfValue  *val;
+	gchar       *full_key;
+	gint         ret_val = def;
+
+	client = conf_get_gconf_client ();
+
+	full_key = conf_get_key (key);
+	val = gconf_client_get (client, key, error);
+
+	if (val != NULL)
+	{
+		ret_val = gconf_value_get_int (val);
+		gconf_value_free (val);
+	}
+	
+	return ret_val;
+}
+
 gboolean 
 planner_conf_set_bool (const gchar *key, gboolean value, GError **error)
 {
diff -ru planner-0.14.4.orig/src/planner-conf.h planner-0.14.4/src/planner-conf.h
--- planner-0.14.4.orig/src/planner-conf.h	2008-07-22 14:41:47.000000000 +0100
+++ planner-0.14.4/src/planner-conf.h	2010-01-13 09:50:27.000000000 +0000
@@ -40,5 +40,9 @@
 					  gint             value,
 					  GError         **error);
 
+gint          planner_conf_get_int_with_default       (const gchar     *key,
+						       gint             def,
+						       GError         **error);
+
 #endif /* __PLANNER_CONF_H__ */
 
diff -ru planner-0.14.4.orig/src/planner-gantt-model.c planner-0.14.4/src/planner-gantt-model.c
--- planner-0.14.4.orig/src/planner-gantt-model.c	2008-07-22 14:41:47.000000000 +0100
+++ planner-0.14.4/src/planner-gantt-model.c	2010-01-12 16:59:44.000000000 +0000
@@ -654,6 +654,8 @@
 		return G_TYPE_LONG;	
 	case COL_COMPLETE:
 		return G_TYPE_INT;
+	case COL_NOTE:
+		return G_TYPE_BOOLEAN;
 	default:
 		return G_TYPE_INVALID;
 	}
@@ -796,6 +798,7 @@
 	MrpTaskType  type;
 	const gchar *name;
 	const gchar *cached_str;
+	const gchar *note = NULL;
 	
 	g_return_if_fail (iter != NULL);
 
@@ -898,6 +901,13 @@
 
 		break;
 
+	case COL_NOTE:
+		g_value_init (value, G_TYPE_BOOLEAN);
+	        g_object_get (task, "note", &note, NULL);
+	        g_value_set_boolean (value, note && strlen(note));
+
+		break;
+
 	default:
 		g_warning ("Bad column %d requested", column);
 	}
diff -ru planner-0.14.4.orig/src/planner-gantt-model.h planner-0.14.4/src/planner-gantt-model.h
--- planner-0.14.4.orig/src/planner-gantt-model.h	2008-07-22 14:41:47.000000000 +0100
+++ planner-0.14.4/src/planner-gantt-model.h	2010-01-12 16:59:44.000000000 +0000
@@ -61,6 +61,7 @@
 	COL_COST,
 	COL_ASSIGNED_TO,
 	COL_COMPLETE,
+	COL_NOTE,
 	NUM_COLS
 };
 
diff -ru planner-0.14.4.orig/src/planner-gantt-view.c planner-0.14.4/src/planner-gantt-view.c
--- planner-0.14.4.orig/src/planner-gantt-view.c	2010-01-12 15:36:55.000000000 +0000
+++ planner-0.14.4/src/planner-gantt-view.c	2010-01-12 16:59:44.000000000 +0000
@@ -712,6 +712,7 @@
 				       * xgettext:no-c-format
 				       */
 				      COL_COMPLETE, _("% Complete"),
+				      COL_NOTE, _("Notes"),
 				      -1);
 
 	priv->tree = tree;
diff -ru planner-0.14.4.orig/src/planner-resource-view.c planner-0.14.4/src/planner-resource-view.c
--- planner-0.14.4.orig/src/planner-resource-view.c	2009-04-07 19:15:08.000000000 +0100
+++ planner-0.14.4/src/planner-resource-view.c	2010-01-12 16:59:44.000000000 +0000
@@ -185,6 +185,11 @@
 							      GtkTreeModel            *tree_model,
 							      GtkTreeIter             *iter,
 							      gpointer                 data);
+static void           resource_view_note_data_func           (GtkTreeViewColumn       *tree_column,
+							      GtkCellRenderer         *cell,
+							      GtkTreeModel            *tree_model,
+							      GtkTreeIter             *iter,
+							      gpointer                 data);
 static void           resource_view_popup_menu               (GtkWidget               *widget,
 							      PlannerView             *view);
 static void           resource_view_edit_resource_cb         (GtkAction               *action,
@@ -1335,6 +1340,26 @@
 			  G_CALLBACK (resource_view_cell_cost_edited),
 			  view);
 
+	/* Note */
+	cell = gtk_cell_renderer_pixbuf_new ();
+
+	col = gtk_tree_view_column_new_with_attributes (_("Notes"),
+							cell, NULL);
+	gtk_tree_view_column_set_resizable (col, TRUE);
+	
+	gtk_tree_view_column_set_cell_data_func (col, cell, 
+						 resource_view_note_data_func,
+						 NULL, NULL);
+	g_object_set_data (G_OBJECT (col),
+			   "data-func", resource_view_note_data_func);
+	g_object_set_data (G_OBJECT (col), "id", "note");
+	
+	gtk_tree_view_append_column (tree_view, col);
+	g_signal_connect (col,
+			  "notify::width",
+			  G_CALLBACK (resource_view_column_notify_width_cb),
+			  view);
+	
 	/*
 	project = planner_window_get_project (view->main_window);
 	properties = mrp_project_get_properties_from_type (project, 
@@ -2287,6 +2312,32 @@
 }
 
 static void    
+resource_view_note_data_func (GtkTreeViewColumn    *tree_column,
+			      GtkCellRenderer      *cell,
+			      GtkTreeModel         *tree_model,
+			      GtkTreeIter          *iter,
+			      gpointer              data)
+{
+	MrpResource *resource;
+	gchar       *note;
+	
+	gtk_tree_model_get (tree_model, iter, COL_RESOURCE, &resource, -1);
+
+	g_object_get (resource, "note", &note, NULL);
+	if (note && strlen(note)) {
+		g_object_set (cell,
+			      "stock-id", GTK_STOCK_INFO,
+			      "xalign", 0,
+			      NULL);
+	}
+	else {
+		g_object_set (cell,
+			      "stock-id", NULL,
+			      NULL);
+	}
+}
+
+static void    
 resource_view_property_data_func (GtkTreeViewColumn *tree_column,
 				  GtkCellRenderer   *cell,
 				  GtkTreeModel      *model,
diff -ru planner-0.14.4.orig/src/planner-task-tree.c planner-0.14.4/src/planner-task-tree.c
--- planner-0.14.4.orig/src/planner-task-tree.c	2010-01-12 15:36:55.000000000 +0000
+++ planner-0.14.4/src/planner-task-tree.c	2010-01-12 16:59:44.000000000 +0000
@@ -141,6 +141,11 @@
 							GtkTreeModel         *tree_model,
 							GtkTreeIter          *iter,
 							gpointer              data);
+static void        task_tree_note_data_func            (GtkTreeViewColumn    *tree_column,
+							GtkCellRenderer      *cell,
+							GtkTreeModel         *tree_model,
+							GtkTreeIter          *iter,
+							gpointer              data);
 static void        task_tree_row_activated_cb          (GtkTreeView          *tree,
 							GtkTreePath          *path,
 							GtkTreeViewColumn    *col,
@@ -1695,6 +1700,35 @@
 }
 
 static void
+task_tree_note_data_func (GtkTreeViewColumn *tree_column,
+			  GtkCellRenderer   *cell,
+			  GtkTreeModel      *tree_model,
+			  GtkTreeIter       *iter,
+			  gpointer           data)
+{
+	PlannerTaskTree *tree = data;
+	MrpTask         *task;
+	gchar           *note;
+
+	gtk_tree_model_get (tree_model, iter,
+			    COL_TASK, &task,
+			    -1);
+
+	g_object_get (task, "note", &note, NULL);
+	if (note && strlen(note)) {
+		g_object_set (cell, 
+			      "stock-id", GTK_STOCK_INFO,
+			      "xalign", 0,
+			      NULL);
+        }
+	else {
+		g_object_set (cell, 
+			      "stock-id", NULL,
+			      NULL);
+	}
+}
+
+static void
 task_tree_name_edited (GtkCellRendererText *cell,
 		       gchar               *path_string,
 		       gchar               *new_text,
@@ -2562,6 +2596,23 @@
 		g_object_set_data (G_OBJECT (col), "id", "assigned_to");
 		break;
 
+	case COL_NOTE:
+		cell = gtk_cell_renderer_pixbuf_new ();
+		col = gtk_tree_view_column_new_with_attributes (title,
+								cell,
+								NULL);
+		gtk_tree_view_column_set_resizable (col, TRUE);
+		gtk_tree_view_column_set_min_width (col, 50);
+		gtk_tree_view_column_set_cell_data_func (col,
+							 cell,
+							 task_tree_note_data_func,
+							 GTK_TREE_VIEW (tree),
+							 NULL);
+		g_object_set_data (G_OBJECT (col),
+				   "data-func", task_tree_note_data_func);
+		g_object_set_data (G_OBJECT (col), "id", "note");
+		break;
+
 	default:
 		g_assert_not_reached ();
 	}
diff -ru planner-0.14.4.orig/src/planner-task-view.c planner-0.14.4/src/planner-task-view.c
--- planner-0.14.4.orig/src/planner-task-view.c	2008-08-03 13:45:16.000000000 +0100
+++ planner-0.14.4/src/planner-task-view.c	2010-01-12 16:59:44.000000000 +0000
@@ -348,6 +348,7 @@
 						     * xgettext:no-c-format
 						     */
 						    COL_COMPLETE, _("% Complete"),
+						    COL_NOTE, _("Notes"),
 						    -1);
 
 		g_object_unref (model);
diff -ru planner-0.14.4.orig/src/planner-view.c planner-0.14.4/src/planner-view.c
--- planner-0.14.4.orig/src/planner-view.c	2008-08-02 20:59:09.000000000 +0100
+++ planner-0.14.4/src/planner-view.c	2010-01-13 09:51:06.000000000 +0000
@@ -227,7 +227,8 @@
 
 		key = g_strdup_printf ("/%s/columns/%s/order",
 				       planner_view_get_name (view), id);
-		order = planner_conf_get_int (key, NULL);
+		order = planner_conf_get_int_with_default (key, g_list_position(columns, l), NULL);
+
 		g_object_set_data (G_OBJECT (column), "order", GINT_TO_POINTER (order));
 		g_free (key);