planner r889 - in trunk: . src



Author: kmaute
Date: Thu Feb 28 01:07:13 2008
New Revision: 889
URL: http://svn.gnome.org/viewvc/planner?rev=889&view=rev

Log:
Add %Complete column to task view.



Modified:
   trunk/ChangeLog
   trunk/src/planner-gantt-model.c
   trunk/src/planner-gantt-model.h
   trunk/src/planner-task-tree.c
   trunk/src/planner-task-view.c

Modified: trunk/src/planner-gantt-model.c
==============================================================================
--- trunk/src/planner-gantt-model.c	(original)
+++ trunk/src/planner-gantt-model.c	Thu Feb 28 01:07:13 2008
@@ -652,6 +652,8 @@
 		return MRP_TYPE_TASK;
 	case COL_COST:
 		return G_TYPE_LONG;	
+	case COL_COMPLETE:
+		return G_TYPE_INT;
 	default:
 		return G_TYPE_INVALID;
 	}
@@ -890,6 +892,12 @@
 
 		break;
 
+	case COL_COMPLETE:
+		g_value_init (value, G_TYPE_INT);
+		g_value_set_int (value, mrp_task_get_percent_complete (task));
+
+		break;
+
 	default:
 		g_warning ("Bad column %d requested", column);
 	}

Modified: trunk/src/planner-gantt-model.h
==============================================================================
--- trunk/src/planner-gantt-model.h	(original)
+++ trunk/src/planner-gantt-model.h	Thu Feb 28 01:07:13 2008
@@ -60,6 +60,7 @@
 	COL_TASK,
 	COL_COST,
 	COL_ASSIGNED_TO,
+	COL_COMPLETE,
 	NUM_COLS
 };
 

Modified: trunk/src/planner-task-tree.c
==============================================================================
--- trunk/src/planner-task-tree.c	(original)
+++ trunk/src/planner-task-tree.c	Thu Feb 28 01:07:13 2008
@@ -126,6 +126,11 @@
 							GtkTreeModel         *tree_model,
 							GtkTreeIter          *iter,
 							gpointer              data);
+static void        task_tree_complete_data_func        (GtkTreeViewColumn    *tree_column,
+							GtkCellRenderer      *cell,
+							GtkTreeModel         *tree_model,
+							GtkTreeIter          *iter,
+							gpointer              data);
 static void        task_tree_assigned_to_data_func     (GtkTreeViewColumn    *tree_column,
 							GtkCellRenderer      *cell,
 							GtkTreeModel         *tree_model,
@@ -1534,6 +1539,31 @@
 }
 
 static void
+task_tree_complete_data_func (GtkTreeViewColumn *tree_column,
+			  GtkCellRenderer   *cell,
+			  GtkTreeModel      *tree_model,
+			  GtkTreeIter       *iter,
+			  gpointer           data)
+{
+	gchar  *str;
+	gint    complete;
+
+	gtk_tree_model_get (tree_model,
+			    iter,
+			    COL_COMPLETE, &complete,
+			    -1);
+
+	str = planner_format_int (complete);
+
+	g_object_set (cell,
+		      "text", str,
+		      NULL);
+
+	g_free (str);
+}
+
+
+static void
 task_tree_assigned_to_data_func (GtkTreeViewColumn *tree_column,
 			  GtkCellRenderer   *cell,
 			  GtkTreeModel      *tree_model,
@@ -1711,6 +1741,46 @@
 }
 
 static void
+task_tree_complete_edited (GtkCellRendererText *cell,
+		       gchar               *path_string,
+		       gchar               *new_text,
+		       gpointer             data)
+{
+	PlannerTaskTree     *tree = data;
+	GtkTreeView         *view = data;
+	GtkTreeModel        *model;
+	GtkTreePath         *path;
+	GtkTreeIter          iter;
+	MrpTask             *task;
+	GValue               value = { 0 };
+        gint		     complete;
+
+	model = gtk_tree_view_get_model (view);
+	path = gtk_tree_path_new_from_string (path_string);	
+	gtk_tree_model_get_iter (model, &iter, path);
+
+	gtk_tree_model_get (model, &iter, 
+			    COL_TASK, &task,
+			    -1);
+
+        complete = atoi(new_text);
+	if (mrp_task_get_percent_complete (MRP_TASK (task)) != complete) {
+		g_value_init (&value, G_TYPE_INT);
+		g_value_set_int (&value, complete);
+		
+		task_cmd_edit_property (tree->priv->main_window,
+					PLANNER_TASK_TREE (view),
+					task,
+					"percent_complete",
+					&value);
+
+		g_value_unset (&value);
+	}
+	
+	gtk_tree_path_free (path);
+}
+
+static void
 task_tree_start_edited (GtkCellRendererText *cell,
 			gchar               *path_string,
 			gchar               *new_text,
@@ -2444,6 +2514,32 @@
 		g_object_set_data (G_OBJECT (col), "id", "cost");
 		break;
 
+	case COL_COMPLETE:
+		cell = gtk_cell_renderer_text_new ();
+		g_object_set (cell, "editable", TRUE, NULL);
+
+		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, 70);
+		gtk_tree_view_column_set_cell_data_func (col,
+							 cell,
+							 task_tree_complete_data_func,
+							 GTK_TREE_VIEW (tree),
+							 NULL);
+		g_object_set_data (G_OBJECT (col),
+				   "data-func", task_tree_complete_data_func);
+		g_object_set_data (G_OBJECT (col), "id", "complete");
+
+		g_signal_connect (cell,
+				  "edited",
+				  G_CALLBACK (task_tree_complete_edited),
+				  GTK_TREE_VIEW (tree));
+
+		break;
+
 	case COL_ASSIGNED_TO:
 		cell = gtk_cell_renderer_text_new ();
 		col = gtk_tree_view_column_new_with_attributes (title,

Modified: trunk/src/planner-task-view.c
==============================================================================
--- trunk/src/planner-task-view.c	(original)
+++ trunk/src/planner-task-view.c	Thu Feb 28 01:07:13 2008
@@ -341,6 +341,7 @@
 						    COL_SLACK, _("Slack"),
 						    COL_COST, _("Cost"),
 						    COL_ASSIGNED_TO, _("Assigned to"),
+						    COL_COMPLETE, _("% Complete"),
 						    -1);
 
 		g_object_unref (model);
@@ -814,6 +815,7 @@
 			    strcmp (id, "duration") == 0 ||
 			    strcmp (id, "slack") == 0 ||
 			    strcmp (id, "cost") == 0 ||
+			    strcmp (id, "complete") == 0 ||
 			    strcmp (id, "assigned-to")) {
 				gtk_tree_view_column_set_visible (column, TRUE);
 			} else {



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