[Xfce4-commits] r23669 - in mousepad/trunk: . src
Benedikt Meurer
benny at xfce.org
Sat Nov 4 18:24:18 CET 2006
Author: benny
Date: 2006-11-04 17:24:15 +0000 (Sat, 04 Nov 2006)
New Revision: 23669
Modified:
mousepad/trunk/AUTHORS
mousepad/trunk/ChangeLog
mousepad/trunk/src/callback.c
mousepad/trunk/src/callback.h
mousepad/trunk/src/file.c
mousepad/trunk/src/menu.c
Log:
2006-11-04 Benedikt Meurer <benny at xfce.org>
* AUTHORS, src/callback.{c,h}, src/file.c, src/menu.c: Merge the
support for the new recently-used database, using the GtkRecent
functionality, available in GTK+ 2.10 and later, instead of the
planned libfrap module.
Modified: mousepad/trunk/AUTHORS
===================================================================
--- mousepad/trunk/AUTHORS 2006-11-04 16:22:40 UTC (rev 23668)
+++ mousepad/trunk/AUTHORS 2006-11-04 17:24:15 UTC (rev 23669)
@@ -1,2 +1,3 @@
Erik Harrison <erikharrison at gmail.com>
+Benedikt Meurer <benny at xfce.org>
Tarot Osuji <tarot at sdf.lonestar.org>
Modified: mousepad/trunk/ChangeLog
===================================================================
--- mousepad/trunk/ChangeLog 2006-11-04 16:22:40 UTC (rev 23668)
+++ mousepad/trunk/ChangeLog 2006-11-04 17:24:15 UTC (rev 23669)
@@ -1,5 +1,12 @@
2006-11-04 Benedikt Meurer <benny at xfce.org>
+ * AUTHORS, src/callback.{c,h}, src/file.c, src/menu.c: Merge the
+ support for the new recently-used database, using the GtkRecent
+ functionality, available in GTK+ 2.10 and later, instead of the
+ planned libfrap module.
+
+2006-11-04 Benedikt Meurer <benny at xfce.org>
+
* src/selector.c(create_file_chooser): Apply patch from Nick Schermer
<nick at xfce.org> to set default response in the open/save file dialogs
so hitting enter opens/saves the file. Bug #2249.
Modified: mousepad/trunk/src/callback.c
===================================================================
--- mousepad/trunk/src/callback.c 2006-11-04 16:22:40 UTC (rev 23668)
+++ mousepad/trunk/src/callback.c 2006-11-04 17:24:15 UTC (rev 23669)
@@ -2,6 +2,7 @@
* callback.c
* This file is part of Mousepad
*
+ * Copyright (C) 2006 Benedikt Meurer <benny at xfce.org>
* Copyright (C) 2005 Erik Harrison
* Copyright (C) 2004 Tarot Osuji
*
@@ -110,6 +111,34 @@
}
}
+#if GTK_CHECK_VERSION(2,10,0)
+void cb_file_open_recent(StructData *sd, GtkRecentChooser *chooser)
+{
+ FileInfo *fi;
+ gchar *uri;
+
+ uri = gtk_recent_chooser_get_current_uri(chooser);
+ if (G_LIKELY(uri != NULL)) {
+ fi = g_new0(FileInfo, 1);
+ fi->lineend = sd->fi->lineend;
+ fi->charset = g_strdup(sd->fi->charset);
+ fi->manual_charset = g_strdup(sd->fi->manual_charset);
+ fi->filename = g_filename_from_uri(uri, NULL, NULL);
+ if (G_LIKELY(fi->filename != NULL)) {
+ if (file_open_real(sd->mainwin->textview, fi)) {
+ g_free(fi);
+ } else {
+ g_free(sd->fi);
+ sd->fi = fi;
+ set_main_window_title(sd);
+ undo_init(sd->mainwin->textview, sd->mainwin->textbuffer, sd->mainwin->menubar);
+ }
+ }
+ g_free(uri);
+ }
+}
+#endif
+
gint cb_file_save(StructData *sd)
{
if (sd->fi->filename == NULL)
Modified: mousepad/trunk/src/callback.h
===================================================================
--- mousepad/trunk/src/callback.h 2006-11-04 16:22:40 UTC (rev 23668)
+++ mousepad/trunk/src/callback.h 2006-11-04 17:24:15 UTC (rev 23669)
@@ -2,6 +2,7 @@
* callback.h
* This file is part of Mousepad
*
+ * Copyright (C) 2006 Benedikt Meurer <benny at xfce.org>
* Copyright (C) 2005 Erik Harrison
* Copyright (C) 2004 Tarot Osuji
*
@@ -26,6 +27,9 @@
void cb_file_new(StructData *sd);
void cb_file_new_window(StructData *sd);
void cb_file_open(StructData *sd);
+#if GTK_CHECK_VERSION(2,10,0)
+void cb_file_open_recent(StructData *sd, GtkRecentChooser *chooser);
+#endif
gint cb_file_save(StructData *sd);
gint cb_file_save_as(StructData *sd);
gint cb_file_print(StructData *sd);
Modified: mousepad/trunk/src/file.c
===================================================================
--- mousepad/trunk/src/file.c 2006-11-04 16:22:40 UTC (rev 23668)
+++ mousepad/trunk/src/file.c 2006-11-04 17:24:15 UTC (rev 23669)
@@ -1,7 +1,8 @@
/*
* file.c
- * This file is part of Leafpad
+ * This file is part of Mousepad
*
+ * Copyright (C) 2006 Benedikt Meurer <benny at xfce.org>
* Copyright (C) 2004 Tarot Osuji
*
* This program is free software; you can redistribute it and/or modify
@@ -36,6 +37,10 @@
const gchar *charset;
gchar *str = NULL;
GtkTextIter iter;
+#if GTK_CHECK_VERSION(2,10,0)
+ GtkRecentData recent_data;
+ gchar *uri;
+#endif
GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
@@ -115,6 +120,25 @@
g_free(str);
undo_unblock_signal(textbuffer);
+#if GTK_CHECK_VERSION(2,10,0)
+ /* generate the recently-used data */
+ recent_data.display_name = NULL;
+ recent_data.description = NULL;
+ recent_data.mime_type = "text/plain";
+ recent_data.app_name = "Mousepad Text Editor";
+ recent_data.app_exec = "mousepad %f";
+ recent_data.groups = NULL;
+ recent_data.is_private = FALSE;
+
+ /* add the file to the recently-used database */
+ uri = g_filename_to_uri(fi->filename, NULL, NULL);
+ if (G_LIKELY(uri != NULL))
+ {
+ gtk_recent_manager_add_full(gtk_recent_manager_get_default(), uri, &recent_data);
+ g_free(uri);
+ }
+#endif
+
return 0;
}
Modified: mousepad/trunk/src/menu.c
===================================================================
--- mousepad/trunk/src/menu.c 2006-11-04 16:22:40 UTC (rev 23668)
+++ mousepad/trunk/src/menu.c 2006-11-04 17:24:15 UTC (rev 23669)
@@ -2,6 +2,7 @@
* menu.c
* This file is part of Mousepad
*
+ * Copyright (C) 2006 Benedikt Meurer <benny at xfce.org>
* Copyright (C) 2005 Erik Harrison
* Copyright (C) 2004 Tarot Osuji
*
@@ -67,10 +68,18 @@
#endif
{ N_("/File/_Open..."), "<control>O",
G_CALLBACK(cb_file_open), 0, "<StockItem>", GTK_STOCK_OPEN },
+#if GTK_CHECK_VERSION(2,10,0)
+ { N_("/File/Open _Recent"), NULL,
+ NULL, 0, "<Item>", NULL, },
+#endif
+ { "/File/---", NULL,
+ NULL, 0, "<Separator>" },
{ N_("/File/_Save"), "<control>S",
G_CALLBACK(cb_file_save), 0, "<StockItem>", GTK_STOCK_SAVE },
{ N_("/File/Save _As..."), NULL,
G_CALLBACK(cb_file_save_as), 0, "<StockItem>", GTK_STOCK_SAVE_AS },
+ { "/File/---", NULL,
+ NULL, 0, "<Separator>" },
{ N_("/File/_Print..."), "<control>P",
G_CALLBACK(cb_file_print), 0, "<StockItem>", GTK_STOCK_PRINT },
{ "/File/---", NULL,
@@ -135,6 +144,11 @@
{
GtkAccelGroup *accel_group;
GtkItemFactory *ifactory;
+#if GTK_CHECK_VERSION(2,10,0)
+ GtkRecentFilter *recent_filter;
+ GtkWidget *recent_menu_item;
+ GtkWidget *recent_menu;
+#endif
accel_group = gtk_accel_group_new();
ifactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group);
@@ -186,6 +200,21 @@
gtk_item_factory_get_widget(ifactory, "<main>/Options/Auto Indent"),
FALSE);
gtk_item_factory_delete_item(ifactory, "/File/New Window"); */
+
+#if GTK_CHECK_VERSION(2,10,0)
+ /* add the recent chooser menu */
+ recent_menu = gtk_recent_chooser_menu_new();
+ recent_filter = gtk_recent_filter_new();
+ gtk_recent_filter_add_application(recent_filter, "Mousepad Text Editor");
+ gtk_recent_chooser_add_filter(GTK_RECENT_CHOOSER(recent_menu), recent_filter);
+ gtk_recent_chooser_set_local_only(GTK_RECENT_CHOOSER(recent_menu), TRUE);
+ gtk_recent_chooser_set_limit(GTK_RECENT_CHOOSER(recent_menu), 10);
+ gtk_recent_chooser_set_show_tips(GTK_RECENT_CHOOSER(recent_menu), TRUE);
+ g_signal_connect_swapped(G_OBJECT(recent_menu), "item-activated", G_CALLBACK(cb_file_open_recent), sd);
+
+ recent_menu_item = gtk_item_factory_get_widget(ifactory, "/File/Open Recent");
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent_menu_item), recent_menu);
+#endif
return gtk_item_factory_get_widget(ifactory, "<main>");
}
More information about the Xfce4-commits
mailing list