From 1d920db1d2dce5aadf8209960129002cddab4a8e Mon Sep 17 00:00:00 2001 From: Caolan McNamara Date: Jan 13 2010 10:02:34 +0000 Subject: Resolves: rhbz#546847 add note column --- diff --git a/planner-gnome606824-notecolumn.patch b/planner-gnome606824-notecolumn.patch new file mode 100644 index 0000000..2965574 --- /dev/null +++ b/planner-gnome606824-notecolumn.patch @@ -0,0 +1,275 @@ +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", ¬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 +@@ -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", ¬e, 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", ¬e, 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); + diff --git a/planner.spec b/planner.spec index 818cada..8767a72 100644 --- a/planner.spec +++ b/planner.spec @@ -1,7 +1,7 @@ Summary: A graphical project management tool Name: planner Version: 0.14.4 -Release: 13%{?dist} +Release: 14%{?dist} License: GPLv2+ Group: Applications/Productivity URL: http://live.gnome.org/Planner @@ -17,19 +17,20 @@ BuildRequires: python-devel, intltool, autoconf, automake, libtool Requires: shared-mime-info Requires(post): %{_bindir}/scrollkeeper-update Requires(postun): %{_bindir}/scrollkeeper-update - -Patch0: planner-gnome349304-recentlyused.patch -Patch1: planner-gnome596173-xdg.patch -Patch2: planner-gnome596966-editoninsert.patch -Patch3: planner-gnome550559-fitzoom.patch -Patch4: planner-buildfix.patch -Patch5: planner-gnome603693-planner-calendar-for-edittask.patch -Patch6: planner-gnome604169-comboboxentry.patch -Patch7: planner-gnome604355-scrolling.patch -Patch8: planner-gnome604510.calcolors.patch -Patch9: planner-gnome604515-usagestatus.patch + +Patch0: planner-gnome349304-recentlyused.patch +Patch1: planner-gnome596173-xdg.patch +Patch2: planner-gnome596966-editoninsert.patch +Patch3: planner-gnome550559-fitzoom.patch +Patch4: planner-buildfix.patch +Patch5: planner-gnome603693-planner-calendar-for-edittask.patch +Patch6: planner-gnome604169-comboboxentry.patch +Patch7: planner-gnome604355-scrolling.patch +Patch8: planner-gnome604510.calcolors.patch +Patch9: planner-gnome604515-usagestatus.patch Patch10: planner-gnome604531-tooltips.patch Patch11: planner-gnome581282-printpreview.patch +Patch12: planner-gnome606824-notecolumn.patch %description Planner is a visual project management application which allows users to @@ -59,18 +60,19 @@ This package provides a plugin to integration planner and evolution. %prep %setup -q -%patch0 -p1 -b .recentlyused -%patch1 -p1 -b .xdg -%patch2 -p1 -b .editoninsert -%patch3 -p1 -b .fitzoom -%patch4 -p1 -b .buildfix -%patch5 -p1 -b .edittask -%patch6 -p1 -b .combobox -%patch7 -p1 -b .scrolling -%patch8 -p1 -b .calcolors -%patch9 -p1 -b .resourcestatus +%patch0 -p1 -b .recentlyused +%patch1 -p1 -b .xdg +%patch2 -p1 -b .editoninsert +%patch3 -p1 -b .fitzoom +%patch4 -p1 -b .buildfix +%patch5 -p1 -b .edittask +%patch6 -p1 -b .combobox +%patch7 -p1 -b .scrolling +%patch8 -p1 -b .calcolors +%patch9 -p1 -b .resourcestatus %patch10 -p1 -b .tooltips %patch11 -p1 -b .printpreview +%patch12 -p1 -b .notecolumn %build rm -rf libegg @@ -169,6 +171,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pkgconfig/* %changelog +* Wed Jan 13 2010 Caolán McNamara - 0.14.4-14 +- Resolves: rhbz#546847 add note column + * Mon Jan 11 2010 Caolán McNamara - 0.14.4-13 - Resolves: rhbz#554222 fix combo dropdown