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
@@ -653,6 +653,8 @@
return G_TYPE_LONG;
case COL_COMPLETE:
return G_TYPE_INT;
+ case COL_NOTE:
+ return G_TYPE_BOOLEAN;
default:
return G_TYPE_INVALID;
}
@@ -794,6 +796,7 @@
gint duration;
const gchar *name;
const gchar *cached_str;
+ const gchar *note = NULL;
g_return_if_fail (iter != NULL);
@@ -894,6 +897,13 @@
break;
+ case COL_NOTE:
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_object_get (task, "note", ¬e, 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
@@ -635,6 +635,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
@@ -186,6 +186,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,
@@ -1374,6 +1379,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,
@@ -2326,6 +2351,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", ¬e, NULL);
+ if (note && strlen(note)) {
+ g_object_set (cell,
+ "stock-id", GTK_STOCK_INFO,
+ "xalign", 0.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", ¬e, NULL);
+ if (note && strlen(note)) {
+ g_object_set (cell,
+ "stock-id", GTK_STOCK_INFO,
+ "xalign", 0.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
@@ -378,6 +378,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);