From f7165a030fe590fc6dcdbfe3685a2ffeeece3f13 Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Mon, 12 Oct 2009 11:15:08 +0000 Subject: [PATCH] Put old filetype template menu items in 'Old' submenu as they should be removed after the 0.19 release. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4299 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 3 +++ src/templates.c | 23 +++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6f7f55282..bdc9b1c69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ * src/templates.c: Don't use filetype submenus for templates (slower to navigate, often only 1 per-filetype anyway). + * src/templates.c: + Put old filetype template menu items in 'Old' submenu as they should + be removed after the 0.19 release. 2009-10-12 Lex Trotman diff --git a/src/templates.c b/src/templates.c index 8997e3a4d..5e952855e 100644 --- a/src/templates.c +++ b/src/templates.c @@ -244,26 +244,33 @@ on_new_with_filetype_template(GtkMenuItem *menuitem, gpointer user_data) } -/* template items for the new file menu */ +/* TODO: remove filetype template support after 0.19 */ static gboolean create_new_filetype_items(void) { GSList *node; gboolean ret = FALSE; + GtkWidget *menu = NULL; foreach_slist(node, filetypes_by_title) { GeanyFiletype *ft = node->data; - GtkWidget *tmp_menu; - const gchar *label = ft->title; + GtkWidget *item; if (ft->id >= GEANY_MAX_BUILT_IN_FILETYPES || ft_templates[ft->id] == NULL) continue; - tmp_menu = gtk_menu_item_new_with_label(label); - gtk_widget_show(tmp_menu); - gtk_container_add(GTK_CONTAINER(new_with_template_menu), tmp_menu); - g_signal_connect(tmp_menu, "activate", G_CALLBACK(on_new_with_filetype_template), ft); - + if (!menu) + { + item = gtk_menu_item_new_with_label(_("Old")); + menu = gtk_menu_new(); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu); + gtk_widget_show_all(item); + gtk_container_add(GTK_CONTAINER(new_with_template_menu), item); + } + item = gtk_menu_item_new_with_label(ft->title); + gtk_widget_show(item); + gtk_container_add(GTK_CONTAINER(menu), item); + g_signal_connect(item, "activate", G_CALLBACK(on_new_with_filetype_template), ft); ret = TRUE; } return ret;