diff --git a/planner-gnome604169-comboboxentry.patch b/planner-gnome604169-comboboxentry.patch index 2cfdfb5..7ff14ce 100644 --- a/planner-gnome604169-comboboxentry.patch +++ b/planner-gnome604169-comboboxentry.patch @@ -1,6 +1,6 @@ diff -ru planner-0.14.4.orig/data/glade/add-predecessor.glade planner-0.14.4/data/glade/add-predecessor.glade ---- planner-0.14.4.orig/data/glade/add-predecessor.glade 2009-12-09 12:48:03.000000000 +0000 -+++ planner-0.14.4/data/glade/add-predecessor.glade 2009-12-09 12:48:16.000000000 +0000 +--- planner-0.14.4.orig/data/glade/add-predecessor.glade 2010-01-25 10:27:21.000000000 +0000 ++++ planner-0.14.4/data/glade/add-predecessor.glade 2010-01-25 09:46:24.000000000 +0000 @@ -88,7 +88,6 @@ 0.5 0 @@ -87,10 +87,85 @@ diff -ru planner-0.14.4.orig/data/glade/add-predecessor.glade planner-0.14.4/dat 0 +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 2010-01-25 09:50:30.000000000 +0000 ++++ planner-0.14.4/src/planner-gantt-model.c 2010-01-25 10:14:59.000000000 +0000 +@@ -1139,28 +1139,12 @@ + return sibling->data; + } + +-static const gchar * +-value_cache_get_wbs (PlannerGanttModel *model, +- MrpTask *task) ++gchar *get_wbs_from_task(MrpTask *task) + { +- ValueCache *cache; +- MrpTask *tmp_task; ++ gint pos; + gchar *str; ++ MrpTask *tmp_task; + GString *string; +- gint pos; +- +- cache = value_cache_get (model, task); +- if (!cache->wbs) { +- goto update_cache; +- } +- +- if (cache->wbs_stamp != model->priv->wbs_stamp) { +- goto update_cache; +- } +- +- return cache->wbs; +- +- update_cache: + string = g_string_sized_new (24); + + pos = -1; +@@ -1182,10 +1166,29 @@ + if (mrp_task_get_parent (tmp_task) == NULL) + break; + } ++ return g_string_free (string, FALSE); ++} + +- g_free (cache->wbs); ++static const gchar * ++value_cache_get_wbs (PlannerGanttModel *model, ++ MrpTask *task) ++{ ++ ValueCache *cache; ++ ++ cache = value_cache_get (model, task); ++ if (!cache->wbs) { ++ goto update_cache; ++ } ++ ++ if (cache->wbs_stamp != model->priv->wbs_stamp) { ++ goto update_cache; ++ } + +- cache->wbs = g_string_free (string, FALSE); ++ return cache->wbs; ++ ++ update_cache: ++ g_free (cache->wbs); ++ cache->wbs = get_wbs_from_task(task); + cache->wbs_stamp = model->priv->wbs_stamp; + + return cache->wbs; diff -ru planner-0.14.4.orig/src/planner-task-dialog.c planner-0.14.4/src/planner-task-dialog.c ---- planner-0.14.4.orig/src/planner-task-dialog.c 2009-12-09 12:48:03.000000000 +0000 -+++ planner-0.14.4/src/planner-task-dialog.c 2009-12-09 12:50:21.000000000 +0000 -@@ -350,56 +350,42 @@ +--- planner-0.14.4.orig/src/planner-task-dialog.c 2010-01-25 10:27:21.000000000 +0000 ++++ planner-0.14.4/src/planner-task-dialog.c 2010-01-25 10:25:08.000000000 +0000 +@@ -183,6 +183,7 @@ + GtkWidget *dialog); + static void task_dialog_update_sensitivity (DialogData *data); + static void task_dialog_update_title (DialogData *data); ++extern gchar * get_wbs_from_task (MrpTask *task); + + + +@@ -350,56 +351,56 @@ #endif static void @@ -126,11 +201,25 @@ diff -ru planner-0.14.4.orig/src/planner-task-dialog.c planner-0.14.4/src/planne - strings = NULL; + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); for (l = tasks; l; l = l->next) { ++ GString *scratch; ++ gchar *wbs; ++ + gtk_list_store_append (store, &iter); ++ scratch = g_string_new( NULL); ++ ++ wbs = get_wbs_from_task (l->data); ++ if (wbs != NULL && wbs[0] != 0) ++ g_string_append_printf (scratch, "%s ", wbs); ++ g_free(wbs); ++ name = mrp_task_get_name (l->data); - if (name == NULL || name[0] == 0) { +- if (name == NULL || name[0] == 0) { - strings = g_list_prepend (strings, - _("(No name)")); ++ if (name != NULL && name[0] != 0) ++ g_string_append (scratch, name); ++ ++ if (scratch->len == 0) { + gtk_list_store_set (store, &iter, + 0, _("(No name)"), + 1, l->data, @@ -138,10 +227,11 @@ diff -ru planner-0.14.4.orig/src/planner-task-dialog.c planner-0.14.4/src/planne } else { - strings = g_list_prepend (strings, (gchar*) name); + gtk_list_store_set (store, &iter, -+ 0, name, ++ 0, scratch->str, + 1, l->data, + -1); } ++ g_string_free(scratch, TRUE); } - strings = g_list_reverse (strings); @@ -169,7 +259,7 @@ diff -ru planner-0.14.4.orig/src/planner-task-dialog.c planner-0.14.4/src/planne } static gboolean -@@ -1906,7 +1892,7 @@ +@@ -1906,7 +1907,7 @@ tasks = mrp_project_get_all_tasks (project); tasks = g_list_remove (tasks, task); @@ -178,7 +268,7 @@ diff -ru planner-0.14.4.orig/src/planner-task-dialog.c planner-0.14.4/src/planne w = glade_xml_get_widget (glade, "type_optionmenu"); g_object_set_data (G_OBJECT (dialog), "type_optionmenu", w); -@@ -1947,10 +1933,11 @@ +@@ -1947,10 +1948,11 @@ GtkWidget *w; GError *error = NULL; MrpTask *task_main; @@ -191,7 +281,7 @@ diff -ru planner-0.14.4.orig/src/planner-task-dialog.c planner-0.14.4/src/planne const gchar *str; main_window = g_object_get_data (G_OBJECT (dialog), "main_window"); -@@ -1970,7 +1957,11 @@ +@@ -1970,7 +1972,11 @@ /* Predecessor task. */ w = g_object_get_data (G_OBJECT (dialog), "predecessor_combo"); diff --git a/planner.spec b/planner.spec index 8283b5d..fac6076 100644 --- a/planner.spec +++ b/planner.spec @@ -7,7 +7,7 @@ Summary: A graphical project management tool Name: planner Version: 0.14.4 -Release: 17%{?dist} +Release: 18%{?dist} License: GPLv2+ Group: Applications/Productivity URL: http://live.gnome.org/Planner @@ -187,6 +187,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pkgconfig/* %changelog +* Mon Jan 25 2010 Caolán McNamara - 0.14.4-18 +- Resolves: rhbz#558392 add WBS to comboboxentry + * Thu Jan 21 2010 Caolán McNamara - 0.14.4-17 - Resolves: rhbz#526297 allow copy/paste of tasks