rpms/planner/F-12 planner-buildfix.patch, NONE, 1.1 planner-gnome349304-recentlyused.patch, NONE, 1.1 planner.spec, 1.67, 1.68

Caolan McNamara caolanm at fedoraproject.org
Mon Nov 23 12:04:22 UTC 2009


Author: caolanm

Update of /cvs/pkgs/rpms/planner/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25701/F-12

Modified Files:
	planner.spec 
Added Files:
	planner-buildfix.patch planner-gnome349304-recentlyused.patch 
Log Message:
Resolves: rhbz#540242 fix gtk_recent_manager_add_full usage

planner-buildfix.patch:
 configure.in        |    1 +
 data/ui/Makefile.am |    2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

--- NEW FILE planner-buildfix.patch ---
--- planner-0.14.4/configure.in	2009-11-19 08:52:05.000000000 +0000
+++ planner-0.14.4/configure.in	2009-11-19 08:53:05.000000000 +0000
@@ -289,6 +289,7 @@
     		libedata-cal-$EDS_PACKAGE >= $EDS_REQUIRED
     		libedataserver-$EDS_PACKAGE >= $EDS_REQUIRED
     		evolution-plugin >= $EVOLUTION_REQUIRED
+    		libgnome-2.0
     ])
     extensiondir=`$PKG_CONFIG --variable=extensiondir evolution-data-server-$EDS_PACKAGE`
     AC_SUBST(extensiondir)
--- planner-0.14.4/data/ui/Makefile.am	2009-11-23 11:36:55.000000000 +0000
+++ planner-0.14.4/data/ui/Makefile.am	2009-11-23 11:37:07.000000000 +0000
@@ -3,12 +3,10 @@
 ui_DATA = \
 	gantt-view.ui		\
 	task-view.ui		\
-	gantt-view.ui		\
 	html-plugin.ui		\
 	main-window.ui		\
 	resource-view.ui	\
 	sql-plugin.ui		\
-	task-view.ui		\
 	xml-planner-plugin.ui	\
 	time-table-view.ui	\
 	eds-plugin.ui		\

planner-gnome349304-recentlyused.patch:
 Makefile.am               |    1 
 configure.in              |    2 
 data/ui/main-window.ui    |    3 -
 po/POTFILES.in            |    1 
 src/Makefile.am           |    1 
 src/planner-application.c |   18 +-----
 src/planner-application.h |    4 -
 src/planner-window.c      |  122 ++++++++++++++++++++++++++++------------------
 tests/Makefile.am         |    2 
 9 files changed, 82 insertions(+), 72 deletions(-)

--- NEW FILE planner-gnome349304-recentlyused.patch ---
>From 6879eaf26aad6006987d0a494f084ce5b55141bf Mon Sep 17 00:00:00 2001
From: Alexandre Franke <alexandre.franke at gmail.com>
Date: Wed, 5 Aug 2009 18:24:02 +0200
Subject: [PATCH] Kill libegg and replace it by GtkRecentManager

---
 Makefile.am                                     |    1 -
 configure.in                                    |    2 -
 data/ui/main-window.ui                          |    3 +-
 po/POTFILES.in                                  |    1 -
 src/Makefile.am                                 |    1 -
 src/planner-application.c                       |   18 +-
 src/planner-application.h                       |    4 +-
 src/planner-window.c                            |  122 +-
 tests/Makefile.am                               |    1 -
 32 files changed, 82 insertions(+), 6612 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 6c7a5ca..128551f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,6 @@ endif
 SUBDIRS = \
 	po 				\
 	libplanner			\
-	libegg				\
 	src				\
 	data				\
 	docs				\
diff --git a/configure.in b/configure.in
index e2912fa..c2ff063 100644
--- a/configure.in
+++ b/configure.in
@@ -312,8 +312,6 @@ AC_SUBST(ACLOCAL_AMFLAGS)
 AC_CONFIG_FILES([
 Makefile
 libplanner/Makefile
-libegg/Makefile
-libegg/recent-files/Makefile
 src/Makefile
 docs/Makefile
 docs/libplanner/Makefile
diff --git a/data/ui/main-window.ui b/data/ui/main-window.ui
index fdf3e7d..a0ddc5c 100644
--- a/data/ui/main-window.ui
+++ b/data/ui/main-window.ui
@@ -3,6 +3,7 @@
     <menu            action="File">
       <menuitem      action="FileNew"/>
       <menuitem      action="FileOpen"/>
+      <menuitem      action="FileOpenRecent"/>
       <menu          action="Import">
         <placeholder name="Import placeholder"/>
       </menu>
@@ -17,8 +18,6 @@
       <menuitem      action="FilePrint"/>
       <menuitem      action="FilePrintPreview"/>
       <separator/>
-      <placeholder   name="OpenRecent"/>
-      <separator/>
       <menuitem      action="FileClose"/>
       <menuitem      action="FileExit"/>
     </menu>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8eb6503..521e428 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -22,7 +22,6 @@ data/mime/planner.xml.in
 data/planner.desktop.in.in
 data/planner.schemas.in
 data/stylesheets/localizable.xml
-libegg/recent-files/egg-recent-vfs-utils.c
 
 libplanner/mrp-assignment.c
 libplanner/mrp-calendar.c
diff --git a/src/Makefile.am b/src/Makefile.am
index c6b0484..f53c42c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,7 +21,6 @@ planner_LDFLAGS = -export-dynamic
 planner_LDADD = \
 	libplannerapp.la \
 	$(top_builddir)/libplanner/libplanner-1.la \
-	$(top_builddir)/libegg/recent-files/libeggrecent.la \
 	$(PLANNER_LIBS)
 
 
diff --git a/src/planner-application.c b/src/planner-application.c
index 71741a4..9e21f48 100644
--- a/src/planner-application.c
+++ b/src/planner-application.c
@@ -22,8 +22,7 @@
  */
 
 #include <config.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkstock.h>
+#include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include "planner-window.h"
 #include "planner-application.h"
@@ -36,7 +35,7 @@
 	GList *windows;
 
 	/* recent file stuff */
-	EggRecentModel *recent_model;
+	GtkRecentManager *recent_model;
 };
 
 
@@ -181,14 +180,7 @@
 
 	priv->windows = NULL;
 	
-	priv->recent_model = egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU);
-	egg_recent_model_set_filter_mime_types (priv->recent_model,
-						"application/x-planner",
-						"application/x-mrproject",
-						NULL);
-	egg_recent_model_set_filter_uri_schemes (priv->recent_model, "file", NULL);
-
-	g_object_set (priv->recent_model, "limit", 5, NULL);
+	priv->recent_model = gtk_recent_manager_get_default ();
 
 	app->priv = priv;
 }
@@ -198,8 +190,6 @@
 {
 	PlannerApplication *app = PLANNER_APPLICATION (object);
 
-	g_object_unref (app->priv->recent_model);
-	
 	g_free (app->priv);
 
 	if (G_OBJECT_CLASS (parent_class)->finalize) {
@@ -282,7 +272,7 @@
 	g_list_free (list_cpy);
 }
 
-EggRecentModel *
+GtkRecentManager *
 planner_application_get_recent_model (PlannerApplication *app)
 {
 	g_return_val_if_fail (PLANNER_IS_APPLICATION (app), NULL);
diff --git a/src/planner-application.h b/src/planner-application.h
index 5ba2e53..5220baa 100644
--- a/src/planner-application.h
+++ b/src/planner-application.h
@@ -26,7 +26,7 @@
 
 #include <libplanner/mrp-application.h>
 #include <libplanner/mrp-project.h>
-#include <libegg/recent-files/egg-recent-model.h>
+#include <gtk/gtk.h>
 
 #define PLANNER_TYPE_APPLICATION                (planner_application_get_type ())
 #define PLANNER_APPLICATION(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANNER_TYPE_APPLICATION, PlannerApplication))
@@ -54,6 +54,6 @@ GType                 planner_application_get_type         (void) G_GNUC_CONST;
 PlannerApplication   *planner_application_new              (void);
 GtkWidget       *     planner_application_new_window       (PlannerApplication *app);
 void                  planner_application_exit             (PlannerApplication *app);
-EggRecentModel  *     planner_application_get_recent_model (PlannerApplication *app);
+GtkRecentManager     *planner_application_get_recent_model (PlannerApplication *app);
 
 #endif /* __PLANNER_APPLICATION_H__ */
diff --git a/src/planner-window.c b/src/planner-window.c
index 21c1863..b120d13 100644
--- a/src/planner-window.c
+++ b/src/planner-window.c
@@ -24,7 +24,6 @@
 #include <config.h>
 #include <string.h>
 #include <math.h>
-#include <locale.h>
 #include <glib/gi18n.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gtk/gtk.h>
@@ -32,9 +31,6 @@
 #include <libplanner/mrp-error.h>
 #include <libplanner/mrp-project.h>
 #include <libplanner/mrp-paths.h>
-#include <libegg/recent-files/egg-recent-view.h>
-#include <libegg/recent-files/egg-recent-view-uimanager.h>
-#include <libegg/recent-files/egg-recent-util.h>
 #include "planner-marshal.h"
 #include "planner-conf.h"
 #include "planner-sidebar.h"
@@ -80,7 +76,7 @@
 	GList               *plugins;
 	GTimer              *last_saved;
 
-	EggRecentViewUIManager *recent_view;
+	GtkWidget           *recent_view;
 };
 
 /* Drop targets. */
@@ -183,8 +179,8 @@
 static void       window_update_title                    (PlannerWindow                *window);
 static GtkWidget *window_create_dialog_button            (const gchar                  *icon_name,
 							  const gchar                  *text);
-static gchar *    window_recent_tooltip_func             (EggRecentItem                *item,
-							  gpointer                      user_data);
+static void       window_recent_add_item                 (PlannerWindow                *window,
+							  const gchar                  *uri);
 static void       window_save_state                      (PlannerWindow *window);
 static void       window_restore_state                   (PlannerWindow *window);
 
@@ -233,6 +229,9 @@
 	{ "FileOpen",
 	  GTK_STOCK_OPEN,          N_("_Open..."),                 "F3",                N_("Open a project"),
 	  G_CALLBACK (window_open_cb) },
+	{ "FileOpenRecent",
+	  NULL,                    N_("Open _Recent"),             NULL,                NULL,
+	  NULL },
 	{ "Import",
 	  NULL,                    N_("_Import"),                  NULL,                NULL,
 	  NULL },
@@ -426,16 +425,22 @@
 }
 
 static void
-planner_window_open_recent_cb (GtkAction     *action,
-			       PlannerWindow *window)
+recent_chooser_item_activated (GtkRecentChooser *chooser, gpointer user_data)
 {
-	const EggRecentItem *item;
-	const gchar         *uri;
+	gchar *uri;
+	PlannerWindow *window;
+	PlannerWindowPriv *priv;
 
-	item = egg_recent_view_uimanager_get_item (window->priv->recent_view, action);
-	uri = egg_recent_item_peek_uri (item);
+	g_return_if_fail (PLANNER_IS_WINDOW (user_data));
 
-	planner_window_open_in_existing_or_new (window, uri, FALSE);
+	window = PLANNER_WINDOW (user_data);
+	priv = window->priv;
+
+	uri = gtk_recent_chooser_get_current_uri (chooser);
+	if (uri != NULL) {
+                planner_window_open_in_existing_or_new (window, uri, FALSE);
+                g_free (uri);
+        }
 }
 
 static void
@@ -606,16 +611,29 @@
 		      NULL);
 
 	/* Handle recent file stuff. */
-	priv->recent_view = egg_recent_view_uimanager_new (priv->ui_manager,
-							   "/MenuBar/File/OpenRecent",
-							   G_CALLBACK (planner_window_open_recent_cb),
-							   window);
-
-	egg_recent_view_set_model (EGG_RECENT_VIEW (priv->recent_view),
-				   planner_application_get_recent_model (priv->application));
-	egg_recent_view_uimanager_set_tooltip_func (priv->recent_view,
-						    window_recent_tooltip_func,
-						    NULL);
+	priv->recent_view = gtk_recent_chooser_menu_new_for_manager (
+		planner_application_get_recent_model (priv->application));
+
+	GtkRecentFilter *filter;
+	filter = gtk_recent_filter_new ();
+	gtk_recent_filter_add_mime_type (filter, "application/x-planner");
+	gtk_recent_filter_add_mime_type (filter, "application/x-mrproject");
+	gtk_recent_filter_add_group (filter, "planner");
+	gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (priv->recent_view), filter);
+
+	g_signal_connect (priv->recent_view,
+			  "item_activated",
+			  G_CALLBACK (recent_chooser_item_activated),
+			  window);
+
+	gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (priv->recent_view), GTK_RECENT_SORT_MRU);
+	gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER (priv->recent_view), TRUE);
+	gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (priv->recent_view), 5);
+	gtk_recent_chooser_menu_set_show_numbers (GTK_RECENT_CHOOSER_MENU (priv->recent_view), TRUE);
+
+	GtkWidget *open_recent;
+	open_recent = gtk_ui_manager_get_widget (priv->ui_manager, "/MenuBar/File/FileOpenRecent");
+	gtk_menu_item_set_submenu (GTK_MENU_ITEM (open_recent), priv->recent_view);
 
 	hbox = gtk_hbox_new (FALSE, 0);
 
@@ -1515,7 +1533,6 @@
 	gint              response;
 	gchar            *filename = NULL;
 	gchar            *last_dir;
-	EggRecentItem    *item;
 
 	priv = window->priv;
 
@@ -1583,10 +1600,7 @@
 
 		if (success) {
 			/* Add the file to the recent list */
-			item = egg_recent_item_new_from_uri (mrp_project_get_uri (priv->project));
-			egg_recent_item_set_mime_type (item, "application/x-planner");
-			egg_recent_model_add_full (planner_application_get_recent_model (priv->application), item);
-			egg_recent_item_unref (item);
+			window_recent_add_item (window, mrp_project_get_uri (priv->project));
 		} else {
 			GtkWidget *dialog;
 			
@@ -1686,7 +1700,6 @@
 	PlannerWindowPriv *priv;
 	GError           *error = NULL;
 	GtkWidget        *dialog;
-	EggRecentItem    *item;
 	
 	g_return_val_if_fail (PLANNER_IS_WINDOW (window), FALSE);
 	g_return_val_if_fail (uri != NULL, FALSE);
@@ -1710,11 +1723,7 @@
 
 	if (!internal) {
 		/* Add the file to the recent list */
-		item = egg_recent_item_new_from_uri (uri);
-		egg_recent_item_set_mime_type (item, "application/x-planner");
-		egg_recent_model_add_full (planner_application_get_recent_model (priv->application), item);
-		egg_recent_item_unref (item);
-		
+		window_recent_add_item (window, uri);
 		window_update_title (window);
 	}
 	
@@ -1943,23 +1952,42 @@
 	}
 }
 
-static gchar *
-window_recent_tooltip_func (EggRecentItem *item,
-			    gpointer user_data)
+static void
+window_recent_add_item (PlannerWindow *window, const gchar *uri)
 {
-	gchar *uri;
-	gchar *escaped;
-	gchar *tooltip;
+	gchar *file_uri;
+	GtkRecentData *recent_data;
+	static gchar *groups[2] = {
+		"planner",
+		NULL
+	};
 
-	uri = egg_recent_item_get_uri_for_display (item);
+	g_return_if_fail (PLANNER_IS_WINDOW (window));
+	if (uri == NULL)
+		return;
 
-	escaped = egg_recent_util_escape_underlines (uri);
-	tooltip = g_strdup_printf (_("Open '%s'"), escaped);
+	file_uri = g_filename_to_uri (uri, NULL, NULL);
+	if (file_uri == NULL)
+		return;
 
-	g_free (uri);
-	g_free (escaped);
+	recent_data = g_slice_new (GtkRecentData);
+	recent_data->display_name = g_filename_display_basename (uri);
+	recent_data->description = NULL;
+	recent_data->mime_type = "application/x-planner";
+	recent_data->app_name = (gchar *) g_get_application_name ();
+	recent_data->app_exec = g_strjoin (" ", g_get_prgname (), "%u", NULL);
+	recent_data->groups = groups;
+	recent_data->is_private = FALSE;
+
+	gtk_recent_manager_add_full (planner_application_get_recent_model (window->priv->application),
+				     file_uri,
+				     recent_data);
+
+	g_free (recent_data->display_name);
+	g_free (recent_data->app_exec);
+	g_free (file_uri);
 
-	return tooltip;
+	g_slice_free (GtkRecentData, recent_data);
 }
 
 PlannerCmdManager *
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 81d5522..0ca64fd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -10,7 +10,6 @@ INCLUDES = \
 LDADD =	\
 	$(top_builddir)/src/libplannerapp.la \
 	$(top_builddir)/libplanner/libplanner-1.la \
-	$(top_builddir)/libegg/recent-files/libeggrecent.la \
 	$(PLANNER_LIBS)
 
 check_LTLIBRARIES = libselfcheck.la
-- 
1.5.6.6



Index: planner.spec
===================================================================
RCS file: /cvs/pkgs/rpms/planner/F-12/planner.spec,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -p -r1.67 -r1.68
--- planner.spec	17 Nov 2009 10:49:00 -0000	1.67
+++ planner.spec	23 Nov 2009 12:04:22 -0000	1.68
@@ -1,7 +1,7 @@
 Summary:   A graphical project management tool
 Name:      planner
 Version:   0.14.4
-Release:   4%{?dist}
+Release:   5%{?dist}
 License:   GPLv2+
 Group:     Applications/Productivity
 URL:       http://live.gnome.org/Planner
@@ -13,15 +13,16 @@ BuildRequires: libgnomeprintui22-devel >
 BuildRequires: libxslt-devel >= 1.0.27, libgsf-devel, gtk-doc, pygtk2-devel
 BuildRequires: scrollkeeper, glib2-devel, evolution-data-server
 BuildRequires: evolution-data-server-devel >= 1.9.1, evolution-devel >= 2.9.1
-BuildRequires: python-devel, intltool
+BuildRequires: python-devel, intltool, autoconf, automake, libtool
 Requires:  shared-mime-info
 Requires(post): %{_bindir}/scrollkeeper-update
 Requires(postun): %{_bindir}/scrollkeeper-update
 
-Patch0: planner-gnome596171-recentlyused.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
 
 %description
 Planner is a visual project management application which allows users to
@@ -55,8 +56,13 @@ This package provides a plugin to integr
 %patch1 -p1 -b .xdg
 %patch2 -p1 -b .editoninsert
 %patch3 -p1 -b .fitzoom
+%patch4 -p1 -b .buildfix
 
 %build
+rm -rf libegg
+aclocal
+autoconf
+automake
 %configure --enable-python --disable-gtk-doc --disable-dotnet --disable-update-mimedb --enable-eds --enable-eds-backend --disable-static
 make # %{?_smp_mflags} not parallel build safe
 
@@ -151,6 +157,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/pkgconfig/*
 
 %changelog
+* Mon Nov 23 2009 Caolán McNamara <caolanm at redhat.com> - 0.14.4-5
+- Resolves: rhbz#540242 fix gtk_recent_manager_add_full usage
+
 * Tue Nov 17 2009 Caolán McNamara <caolanm at redhat.com> - 0.14.4-4
 - Resolves: rhbz#526295 automatically go to edit mode on insert task
 - Resolves: rhbz#537854 fix zoom to fit




More information about the fedora-extras-commits mailing list