planner r879 - in trunk: . libplanner src



Author: mvdpot
Date: Sat Feb  9 21:58:22 2008
New Revision: 879
URL: http://svn.gnome.org/viewvc/planner?rev=879&view=rev

Log:
2008-02-09  Maurice van der Pot  <griffon26 kfk4ever com>

	* libplanner/mrp-task-manager.c:
	(task_manager_calculate_task_finish),
	(task_manager_calculate_task_start_from_finish):
	Don't let fixed duration tasks run during non-working intervals on a working
	day (such as lunch time). This fixes the incorrect duration of fixed duration 
	tasks as reported in bug #486990 by Sebastien Roy <sebastien roy sun com>.

	* libplanner/mrp-task.c: (task_class_init): 
	Fixed typo in property description.

	* src/planner-gantt-row.c: (gantt_row_notify_cb):
	Allow changes in scheduling mode to update the gantt bar appearance.



Modified:
   trunk/ChangeLog
   trunk/libplanner/mrp-task-manager.c
   trunk/libplanner/mrp-task.c
   trunk/src/planner-gantt-row.c

Modified: trunk/libplanner/mrp-task-manager.c
==============================================================================
--- trunk/libplanner/mrp-task-manager.c	(original)
+++ trunk/libplanner/mrp-task-manager.c	Sat Feb  9 21:58:22 2008
@@ -1702,8 +1702,7 @@
 	MrpUnitsInterval   *unit_ival;
 	MrpTaskType         type;
 	MrpTaskSched        sched;
-	
-   
+
 	priv = manager->priv;
 
 	if (task == priv->root) {
@@ -1802,8 +1801,10 @@
 			}
 			else if (sched == MRP_TASK_SCHED_FIXED_DURATION) {
 				delta = t2 - t1;
-				
-				if (effort + delta >= *duration) {
+
+				if (unit_ival->units_full == 0) {
+					delta = 0;
+				} else if (effort + delta >= *duration) {
 					/* Done, make sure we don't spill. */
 					finish = t1 + *duration - effort;
 					goto done;
@@ -1865,7 +1866,7 @@
 	MrpUnitsInterval   *unit_ival;
 	MrpTaskType         type;
 	MrpTaskSched        sched;
-	
+
 	priv = manager->priv;
 
 	if (task == priv->root) {
@@ -1956,7 +1957,9 @@
 			else if (sched == MRP_TASK_SCHED_FIXED_DURATION) {
 				delta = t2 - t1;
 				
-				if (effort + delta >= *duration) {
+				if (unit_ival->units_full == 0) {
+					delta = 0;
+				} else if (effort + delta >= *duration) {
 					/* Done, make sure we don't spill. */
 					start = t2 - (*duration - effort);
 					goto done;

Modified: trunk/libplanner/mrp-task.c
==============================================================================
--- trunk/libplanner/mrp-task.c	(original)
+++ trunk/libplanner/mrp-task.c	Sat Feb  9 21:58:22 2008
@@ -371,7 +371,7 @@
 		object_class,
 		PROP_SCHED,
 		g_param_spec_enum ("sched",
-				   "Sceduling type",
+				   "Scheduling type",
 				   "Task scheduling type",
 				   MRP_TYPE_TASK_SCHED,
 				   MRP_TASK_SCHED_FIXED_WORK,

Modified: trunk/src/planner-gantt-row.c
==============================================================================
--- trunk/src/planner-gantt-row.c	(original)
+++ trunk/src/planner-gantt-row.c	Sat Feb  9 21:58:22 2008
@@ -2074,8 +2074,9 @@
 	 * it since it's a good optimization.
 	 */
 	else if (strcmp (pspec->name, "critical") != 0 &&
-			 strcmp (pspec->name, "priority") != 0 &&
-			 strcmp (pspec->name, "percent-complete")) {
+		 strcmp (pspec->name, "sched") != 0 &&
+		 strcmp (pspec->name, "priority") != 0 &&
+		 strcmp (pspec->name, "percent-complete")) {
 		return;
 	}
 	



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