From b954dc8245fd5e4d58053ea6353b39b3f6bf4938 Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Wed, 18 Apr 2007 15:21:33 +0000 Subject: [PATCH] Add Load Tags command in the File menu. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1463 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 11 +++ geany.glade | 50 ++++++++----- src/callbacks.c | 8 +++ src/callbacks.h | 4 ++ src/interface.c | 187 ++++++++++++++++++++++++++---------------------- src/symbols.c | 67 +++++++++++++++++ src/symbols.h | 2 + 7 files changed, 227 insertions(+), 102 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5a2022cf0..a91348698 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,17 @@ * src/filetypes.c, src/filetypes.h, src/document.c: Split filetypes_get_from_filename() into filetypes_detect_from_file() and filetypes_detect_from_filename(). + * tagmanager/tm_tag.c: + Use the usual TM parser for all langTypes except pascal, php, latex + when loading global tags files. + * tagmanager/tm_workspace.c: + Keep tag names with different argument lists when loading global + tags. + Prevent segfault if using tm_workspace_find_scoped() with global + tags. + * src/interface.c, src/callbacks.c, src/callbacks.h, src/symbols.c, + src/symbols.h, geany.glade: + Add Load Tags command in the File menu. 2007-04-16 Enrico Tröger diff --git a/geany.glade b/geany.glade index 84f45481a..902863f7a 100644 --- a/geany.glade +++ b/geany.glade @@ -57,7 +57,7 @@ True - + True gtk-new 1 @@ -147,7 +147,7 @@ - + True gtk-save 1 @@ -168,7 +168,7 @@ - + True gtk-revert-to-saved 1 @@ -188,7 +188,7 @@ True - + True gtk-revert-to-saved 1 @@ -219,6 +219,22 @@ + + + True + Load global tags file + Load Ta_gs + True + + + + + + + True + + + True @@ -268,7 +284,7 @@ - + True gtk-close 1 @@ -476,7 +492,7 @@ - + True gtk-indent 1 @@ -497,7 +513,7 @@ - + True gtk-unindent 1 @@ -553,7 +569,7 @@ True - + True gtk-add 1 @@ -585,7 +601,7 @@ True - + True gtk-add 1 @@ -670,7 +686,7 @@ True - + True gtk-add 1 @@ -767,7 +783,7 @@ - + True gtk-find-and-replace 1 @@ -833,7 +849,7 @@ - + True gtk-jump-to 1 @@ -868,7 +884,7 @@ - + True gtk-select-font 1 @@ -1219,7 +1235,7 @@ - + True gtk-new 1 @@ -1240,7 +1256,7 @@ - + True gtk-open 1 @@ -1261,7 +1277,7 @@ - + True gtk-close 1 @@ -1319,7 +1335,7 @@ - + True gtk-select-color 1 diff --git a/src/callbacks.c b/src/callbacks.c index c20b2753d..cb9f13b0d 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -2085,6 +2085,14 @@ on_remove_markers1_activate (GtkMenuItem *menuitem, } +void +on_load_tags1_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + symbols_show_load_tags_dialog(); +} + + void on_context_action1_activate (GtkMenuItem *menuitem, gpointer user_data) diff --git a/src/callbacks.h b/src/callbacks.h index 4af642f09..430e74778 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -596,6 +596,10 @@ void on_remove_markers1_activate (GtkMenuItem *menuitem, gpointer user_data); +void +on_load_tags1_activate (GtkMenuItem *menuitem, + gpointer user_data); + void on_context_action1_activate (GtkMenuItem *menuitem, gpointer user_data); diff --git a/src/interface.c b/src/interface.c index 43a33c628..90771d6f2 100644 --- a/src/interface.c +++ b/src/interface.c @@ -37,7 +37,7 @@ create_window1 (void) GtkWidget *menuitem1_menu; GtkWidget *menu_new1; GtkWidget *menu_new_with_template1; - GtkWidget *image1676; + GtkWidget *image1724; GtkWidget *menu_new_with_template1_menu; GtkWidget *invisible2; GtkWidget *separator12; @@ -48,21 +48,23 @@ create_window1 (void) GtkWidget *menu_save1; GtkWidget *menu_save_as1; GtkWidget *menu_save_all1; - GtkWidget *image1677; + GtkWidget *image1725; GtkWidget *menu_reload1; - GtkWidget *image1678; + GtkWidget *image1726; GtkWidget *menu_reload_as1; - GtkWidget *image1679; + GtkWidget *image1727; GtkWidget *menu_reload_as1_menu; GtkWidget *invisible7; GtkWidget *separator21; + GtkWidget *load_tags1; + GtkWidget *separator39; GtkWidget *preferences2; GtkWidget *separator24; GtkWidget *print1; GtkWidget *separator14; GtkWidget *menu_close1; GtkWidget *menu_close_all1; - GtkWidget *image1680; + GtkWidget *image1728; GtkWidget *menu_separatormenuitem1; GtkWidget *menu_quit1; GtkWidget *edit1; @@ -88,20 +90,20 @@ create_window1 (void) GtkWidget *menu_duplicate_line1; GtkWidget *separator29; GtkWidget *menu_increase_indent1; - GtkWidget *image1681; + GtkWidget *image1729; GtkWidget *menu_decrease_indent1; - GtkWidget *image1682; + GtkWidget *image1730; GtkWidget *separator37; GtkWidget *send_selection_to2; GtkWidget *send_selection_to2_menu; GtkWidget *invisible13; GtkWidget *separator18; GtkWidget *insert_include2; - GtkWidget *image1683; + GtkWidget *image1731; GtkWidget *insert_include2_menu; GtkWidget *invisible4; GtkWidget *add_comments1; - GtkWidget *image1684; + GtkWidget *image1732; GtkWidget *add_comments1_menu; GtkWidget *menu_add_changelog_entry1; GtkWidget *insert_file_header1; @@ -110,7 +112,7 @@ create_window1 (void) GtkWidget *insert_gpl_notice2; GtkWidget *insert_bsd_license_notice2; GtkWidget *insert_date1; - GtkWidget *image1685; + GtkWidget *image1733; GtkWidget *insert_date1_menu; GtkWidget *invisible8; GtkWidget *separator9; @@ -122,7 +124,7 @@ create_window1 (void) GtkWidget *find_previous1; GtkWidget *find_in_files1; GtkWidget *replace1; - GtkWidget *image1686; + GtkWidget *image1734; GtkWidget *separator33; GtkWidget *find_nextsel1; GtkWidget *find_prevsel1; @@ -130,11 +132,11 @@ create_window1 (void) GtkWidget *next_message1; GtkWidget *separator32; GtkWidget *go_to_line1; - GtkWidget *image1687; + GtkWidget *image1735; GtkWidget *menuitem3; GtkWidget *menuitem3_menu; GtkWidget *menu_change_font1; - GtkWidget *image1688; + GtkWidget *image1736; GtkWidget *menu_separator4; GtkWidget *menu_fullscreen1; GtkWidget *menu_show_messages_window1; @@ -176,18 +178,18 @@ create_window1 (void) GtkWidget *menu_project1; GtkWidget *menu_project1_menu; GtkWidget *project_new1; - GtkWidget *image1689; + GtkWidget *image1737; GtkWidget *project_open1; - GtkWidget *image1690; + GtkWidget *image1738; GtkWidget *project_close1; - GtkWidget *image1691; + GtkWidget *image1739; GtkWidget *separator34; GtkWidget *project_properties1; GtkWidget *menu_build1; GtkWidget *tools1; GtkWidget *tools1_menu; GtkWidget *menu_choose_color1; - GtkWidget *image1692; + GtkWidget *image1740; GtkWidget *menu_count_words1; GtkWidget *menu_insert_special_chars1; GtkWidget *menu_item5; @@ -288,9 +290,9 @@ create_window1 (void) gtk_widget_show (menu_new_with_template1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_new_with_template1); - image1676 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1676); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image1676); + image1724 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1724); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image1724); menu_new_with_template1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_new_with_template1), menu_new_with_template1_menu); @@ -333,25 +335,25 @@ create_window1 (void) gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_save_all1); gtk_tooltips_set_tip (tooltips, menu_save_all1, _("Saves all open files"), NULL); - image1677 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1677); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image1677); + image1725 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1725); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image1725); menu_reload1 = gtk_image_menu_item_new_with_mnemonic (_("_Reload")); gtk_widget_show (menu_reload1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_reload1); - image1678 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1678); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_reload1), image1678); + image1726 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1726); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_reload1), image1726); menu_reload_as1 = gtk_image_menu_item_new_with_mnemonic (_("R_eload As")); gtk_widget_show (menu_reload_as1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_reload_as1); - image1679 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1679); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_reload_as1), image1679); + image1727 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1727); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_reload_as1), image1727); menu_reload_as1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_reload_as1), menu_reload_as1_menu); @@ -364,6 +366,16 @@ create_window1 (void) gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator21); gtk_widget_set_sensitive (separator21, FALSE); + load_tags1 = gtk_menu_item_new_with_mnemonic (_("Load Ta_gs")); + gtk_widget_show (load_tags1); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), load_tags1); + gtk_tooltips_set_tip (tooltips, load_tags1, _("Load global tags file"), NULL); + + separator39 = gtk_separator_menu_item_new (); + gtk_widget_show (separator39); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator39); + gtk_widget_set_sensitive (separator39, FALSE); + preferences2 = gtk_image_menu_item_new_from_stock ("gtk-properties", accel_group); gtk_widget_show (preferences2); gtk_container_add (GTK_CONTAINER (menuitem1_menu), preferences2); @@ -392,9 +404,9 @@ create_window1 (void) gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_close_all1); gtk_tooltips_set_tip (tooltips, menu_close_all1, _("Closes all open files"), NULL); - image1680 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1680); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image1680); + image1728 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1728); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image1728); menu_separatormenuitem1 = gtk_separator_menu_item_new (); gtk_widget_show (menu_separatormenuitem1); @@ -502,17 +514,17 @@ create_window1 (void) gtk_widget_show (menu_increase_indent1); gtk_container_add (GTK_CONTAINER (menu_format1_menu), menu_increase_indent1); - image1681 = gtk_image_new_from_stock ("gtk-indent", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1681); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_increase_indent1), image1681); + image1729 = gtk_image_new_from_stock ("gtk-indent", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1729); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_increase_indent1), image1729); menu_decrease_indent1 = gtk_image_menu_item_new_with_mnemonic (_("_Decrease Indent")); gtk_widget_show (menu_decrease_indent1); gtk_container_add (GTK_CONTAINER (menu_format1_menu), menu_decrease_indent1); - image1682 = gtk_image_new_from_stock ("gtk-unindent", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1682); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_decrease_indent1), image1682); + image1730 = gtk_image_new_from_stock ("gtk-unindent", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1730); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_decrease_indent1), image1730); separator37 = gtk_separator_menu_item_new (); gtk_widget_show (separator37); @@ -538,9 +550,9 @@ create_window1 (void) gtk_widget_show (insert_include2); gtk_container_add (GTK_CONTAINER (edit1_menu), insert_include2); - image1683 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1683); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image1683); + image1731 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1731); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image1731); insert_include2_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (insert_include2), insert_include2_menu); @@ -552,9 +564,9 @@ create_window1 (void) gtk_widget_show (add_comments1); gtk_container_add (GTK_CONTAINER (edit1_menu), add_comments1); - image1684 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1684); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image1684); + image1732 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1732); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image1732); add_comments1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (add_comments1), add_comments1_menu); @@ -593,9 +605,9 @@ create_window1 (void) gtk_widget_show (insert_date1); gtk_container_add (GTK_CONTAINER (edit1_menu), insert_date1); - image1685 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1685); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_date1), image1685); + image1733 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1733); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_date1), image1733); insert_date1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (insert_date1), insert_date1_menu); @@ -639,9 +651,9 @@ create_window1 (void) gtk_widget_show (replace1); gtk_container_add (GTK_CONTAINER (search1_menu), replace1); - image1686 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1686); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image1686); + image1734 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1734); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image1734); separator33 = gtk_separator_menu_item_new (); gtk_widget_show (separator33); @@ -674,9 +686,9 @@ create_window1 (void) gtk_widget_show (go_to_line1); gtk_container_add (GTK_CONTAINER (search1_menu), go_to_line1); - image1687 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1687); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image1687); + image1735 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1735); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image1735); menuitem3 = gtk_menu_item_new_with_mnemonic (_("_View")); gtk_widget_show (menuitem3); @@ -690,9 +702,9 @@ create_window1 (void) gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_change_font1); gtk_tooltips_set_tip (tooltips, menu_change_font1, _("Change the default font"), NULL); - image1688 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1688); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image1688); + image1736 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1736); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image1736); menu_separator4 = gtk_separator_menu_item_new (); gtk_widget_show (menu_separator4); @@ -874,25 +886,25 @@ create_window1 (void) gtk_widget_show (project_new1); gtk_container_add (GTK_CONTAINER (menu_project1_menu), project_new1); - image1689 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1689); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (project_new1), image1689); + image1737 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1737); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (project_new1), image1737); project_open1 = gtk_image_menu_item_new_with_mnemonic (_("_Open")); gtk_widget_show (project_open1); gtk_container_add (GTK_CONTAINER (menu_project1_menu), project_open1); - image1690 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1690); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (project_open1), image1690); + image1738 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1738); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (project_open1), image1738); project_close1 = gtk_image_menu_item_new_with_mnemonic (_("_Close")); gtk_widget_show (project_close1); gtk_container_add (GTK_CONTAINER (menu_project1_menu), project_close1); - image1691 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1691); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (project_close1), image1691); + image1739 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1739); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (project_close1), image1739); separator34 = gtk_separator_menu_item_new (); gtk_widget_show (separator34); @@ -919,9 +931,9 @@ create_window1 (void) gtk_container_add (GTK_CONTAINER (tools1_menu), menu_choose_color1); gtk_tooltips_set_tip (tooltips, menu_choose_color1, _("Open a color chooser dialog, to interactively pick colors from a palette."), NULL); - image1692 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU); - gtk_widget_show (image1692); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image1692); + image1740 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU); + gtk_widget_show (image1740); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image1740); menu_count_words1 = gtk_menu_item_new_with_mnemonic (_("_Word Count")); gtk_widget_show (menu_count_words1); @@ -1254,6 +1266,9 @@ create_window1 (void) g_signal_connect ((gpointer) menu_reload1, "activate", G_CALLBACK (on_toolbutton23_clicked), NULL); + g_signal_connect ((gpointer) load_tags1, "activate", + G_CALLBACK (on_load_tags1_activate), + NULL); g_signal_connect ((gpointer) preferences2, "activate", G_CALLBACK (on_file_properties_activate), NULL); @@ -1546,7 +1561,7 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, menuitem1_menu, "menuitem1_menu"); GLADE_HOOKUP_OBJECT (window1, menu_new1, "menu_new1"); GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1, "menu_new_with_template1"); - GLADE_HOOKUP_OBJECT (window1, image1676, "image1676"); + GLADE_HOOKUP_OBJECT (window1, image1724, "image1724"); GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1_menu, "menu_new_with_template1_menu"); GLADE_HOOKUP_OBJECT (window1, invisible2, "invisible2"); GLADE_HOOKUP_OBJECT (window1, separator12, "separator12"); @@ -1557,21 +1572,23 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, menu_save1, "menu_save1"); GLADE_HOOKUP_OBJECT (window1, menu_save_as1, "menu_save_as1"); GLADE_HOOKUP_OBJECT (window1, menu_save_all1, "menu_save_all1"); - GLADE_HOOKUP_OBJECT (window1, image1677, "image1677"); + GLADE_HOOKUP_OBJECT (window1, image1725, "image1725"); GLADE_HOOKUP_OBJECT (window1, menu_reload1, "menu_reload1"); - GLADE_HOOKUP_OBJECT (window1, image1678, "image1678"); + GLADE_HOOKUP_OBJECT (window1, image1726, "image1726"); GLADE_HOOKUP_OBJECT (window1, menu_reload_as1, "menu_reload_as1"); - GLADE_HOOKUP_OBJECT (window1, image1679, "image1679"); + GLADE_HOOKUP_OBJECT (window1, image1727, "image1727"); GLADE_HOOKUP_OBJECT (window1, menu_reload_as1_menu, "menu_reload_as1_menu"); GLADE_HOOKUP_OBJECT (window1, invisible7, "invisible7"); GLADE_HOOKUP_OBJECT (window1, separator21, "separator21"); + GLADE_HOOKUP_OBJECT (window1, load_tags1, "load_tags1"); + GLADE_HOOKUP_OBJECT (window1, separator39, "separator39"); GLADE_HOOKUP_OBJECT (window1, preferences2, "preferences2"); GLADE_HOOKUP_OBJECT (window1, separator24, "separator24"); GLADE_HOOKUP_OBJECT (window1, print1, "print1"); GLADE_HOOKUP_OBJECT (window1, separator14, "separator14"); GLADE_HOOKUP_OBJECT (window1, menu_close1, "menu_close1"); GLADE_HOOKUP_OBJECT (window1, menu_close_all1, "menu_close_all1"); - GLADE_HOOKUP_OBJECT (window1, image1680, "image1680"); + GLADE_HOOKUP_OBJECT (window1, image1728, "image1728"); GLADE_HOOKUP_OBJECT (window1, menu_separatormenuitem1, "menu_separatormenuitem1"); GLADE_HOOKUP_OBJECT (window1, menu_quit1, "menu_quit1"); GLADE_HOOKUP_OBJECT (window1, edit1, "edit1"); @@ -1597,20 +1614,20 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, menu_duplicate_line1, "menu_duplicate_line1"); GLADE_HOOKUP_OBJECT (window1, separator29, "separator29"); GLADE_HOOKUP_OBJECT (window1, menu_increase_indent1, "menu_increase_indent1"); - GLADE_HOOKUP_OBJECT (window1, image1681, "image1681"); + GLADE_HOOKUP_OBJECT (window1, image1729, "image1729"); GLADE_HOOKUP_OBJECT (window1, menu_decrease_indent1, "menu_decrease_indent1"); - GLADE_HOOKUP_OBJECT (window1, image1682, "image1682"); + GLADE_HOOKUP_OBJECT (window1, image1730, "image1730"); GLADE_HOOKUP_OBJECT (window1, separator37, "separator37"); GLADE_HOOKUP_OBJECT (window1, send_selection_to2, "send_selection_to2"); GLADE_HOOKUP_OBJECT (window1, send_selection_to2_menu, "send_selection_to2_menu"); GLADE_HOOKUP_OBJECT (window1, invisible13, "invisible13"); GLADE_HOOKUP_OBJECT (window1, separator18, "separator18"); GLADE_HOOKUP_OBJECT (window1, insert_include2, "insert_include2"); - GLADE_HOOKUP_OBJECT (window1, image1683, "image1683"); + GLADE_HOOKUP_OBJECT (window1, image1731, "image1731"); GLADE_HOOKUP_OBJECT (window1, insert_include2_menu, "insert_include2_menu"); GLADE_HOOKUP_OBJECT (window1, invisible4, "invisible4"); GLADE_HOOKUP_OBJECT (window1, add_comments1, "add_comments1"); - GLADE_HOOKUP_OBJECT (window1, image1684, "image1684"); + GLADE_HOOKUP_OBJECT (window1, image1732, "image1732"); GLADE_HOOKUP_OBJECT (window1, add_comments1_menu, "add_comments1_menu"); GLADE_HOOKUP_OBJECT (window1, menu_add_changelog_entry1, "menu_add_changelog_entry1"); GLADE_HOOKUP_OBJECT (window1, insert_file_header1, "insert_file_header1"); @@ -1619,7 +1636,7 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, insert_gpl_notice2, "insert_gpl_notice2"); GLADE_HOOKUP_OBJECT (window1, insert_bsd_license_notice2, "insert_bsd_license_notice2"); GLADE_HOOKUP_OBJECT (window1, insert_date1, "insert_date1"); - GLADE_HOOKUP_OBJECT (window1, image1685, "image1685"); + GLADE_HOOKUP_OBJECT (window1, image1733, "image1733"); GLADE_HOOKUP_OBJECT (window1, insert_date1_menu, "insert_date1_menu"); GLADE_HOOKUP_OBJECT (window1, invisible8, "invisible8"); GLADE_HOOKUP_OBJECT (window1, separator9, "separator9"); @@ -1631,7 +1648,7 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, find_previous1, "find_previous1"); GLADE_HOOKUP_OBJECT (window1, find_in_files1, "find_in_files1"); GLADE_HOOKUP_OBJECT (window1, replace1, "replace1"); - GLADE_HOOKUP_OBJECT (window1, image1686, "image1686"); + GLADE_HOOKUP_OBJECT (window1, image1734, "image1734"); GLADE_HOOKUP_OBJECT (window1, separator33, "separator33"); GLADE_HOOKUP_OBJECT (window1, find_nextsel1, "find_nextsel1"); GLADE_HOOKUP_OBJECT (window1, find_prevsel1, "find_prevsel1"); @@ -1639,11 +1656,11 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, next_message1, "next_message1"); GLADE_HOOKUP_OBJECT (window1, separator32, "separator32"); GLADE_HOOKUP_OBJECT (window1, go_to_line1, "go_to_line1"); - GLADE_HOOKUP_OBJECT (window1, image1687, "image1687"); + GLADE_HOOKUP_OBJECT (window1, image1735, "image1735"); GLADE_HOOKUP_OBJECT (window1, menuitem3, "menuitem3"); GLADE_HOOKUP_OBJECT (window1, menuitem3_menu, "menuitem3_menu"); GLADE_HOOKUP_OBJECT (window1, menu_change_font1, "menu_change_font1"); - GLADE_HOOKUP_OBJECT (window1, image1688, "image1688"); + GLADE_HOOKUP_OBJECT (window1, image1736, "image1736"); GLADE_HOOKUP_OBJECT (window1, menu_separator4, "menu_separator4"); GLADE_HOOKUP_OBJECT (window1, menu_fullscreen1, "menu_fullscreen1"); GLADE_HOOKUP_OBJECT (window1, menu_show_messages_window1, "menu_show_messages_window1"); @@ -1684,18 +1701,18 @@ create_window1 (void) GLADE_HOOKUP_OBJECT (window1, menu_project1, "menu_project1"); GLADE_HOOKUP_OBJECT (window1, menu_project1_menu, "menu_project1_menu"); GLADE_HOOKUP_OBJECT (window1, project_new1, "project_new1"); - GLADE_HOOKUP_OBJECT (window1, image1689, "image1689"); + GLADE_HOOKUP_OBJECT (window1, image1737, "image1737"); GLADE_HOOKUP_OBJECT (window1, project_open1, "project_open1"); - GLADE_HOOKUP_OBJECT (window1, image1690, "image1690"); + GLADE_HOOKUP_OBJECT (window1, image1738, "image1738"); GLADE_HOOKUP_OBJECT (window1, project_close1, "project_close1"); - GLADE_HOOKUP_OBJECT (window1, image1691, "image1691"); + GLADE_HOOKUP_OBJECT (window1, image1739, "image1739"); GLADE_HOOKUP_OBJECT (window1, separator34, "separator34"); GLADE_HOOKUP_OBJECT (window1, project_properties1, "project_properties1"); GLADE_HOOKUP_OBJECT (window1, menu_build1, "menu_build1"); GLADE_HOOKUP_OBJECT (window1, tools1, "tools1"); GLADE_HOOKUP_OBJECT (window1, tools1_menu, "tools1_menu"); GLADE_HOOKUP_OBJECT (window1, menu_choose_color1, "menu_choose_color1"); - GLADE_HOOKUP_OBJECT (window1, image1692, "image1692"); + GLADE_HOOKUP_OBJECT (window1, image1740, "image1740"); GLADE_HOOKUP_OBJECT (window1, menu_count_words1, "menu_count_words1"); GLADE_HOOKUP_OBJECT (window1, menu_insert_special_chars1, "menu_insert_special_chars1"); GLADE_HOOKUP_OBJECT (window1, menu_item5, "menu_item5"); diff --git a/src/symbols.c b/src/symbols.c index a4d6b59de..c36680ba5 100644 --- a/src/symbols.c +++ b/src/symbols.c @@ -40,6 +40,7 @@ #include "encodings.h" #include "document.h" #include "support.h" +#include "msgwindow.h" const guint TM_GLOBAL_TYPE_MASK = @@ -733,3 +734,69 @@ int symbols_generate_global_tags(int argc, char **argv) } +// fname should be in locale encoding +static gboolean load_tags_filename(const gchar *fname) +{ + gchar *tags_ext; + gchar *shortname = g_strdup(fname); + gboolean ret = FALSE; + + tags_ext = strstr(shortname, ".tags"); + if (tags_ext) + { + gchar *utf8_shortname; + filetype *ft; + + *tags_ext = '\0'; // remove .tags extension + utf8_shortname = utils_get_utf8_from_locale(shortname); + ft = filetypes_detect_from_filename(utf8_shortname); + g_free(utf8_shortname); + + if (ft) + { + ret = tm_workspace_load_global_tags(fname, ft->lang); + } + } + g_free(shortname); + return ret; +} + + +void symbols_show_load_tags_dialog() +{ + GtkWidget *dialog; + GtkFileFilter *filter; + + dialog = gtk_file_chooser_dialog_new(_("Load Tags"), GTK_WINDOW(app->window), + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_OK, + NULL); + filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter, _("Geany tag files (*.tags)")); + gtk_file_filter_add_pattern(filter, "*.tags"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter); + + if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) + { + GSList *flist = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog)); + GSList *item; + + for (item = flist; item != NULL; item = g_slist_next(item)) + { + gchar *fname = item->data; + gchar *utf8_fname; + gboolean ok; + + ok = load_tags_filename(fname); + + utf8_fname = utils_get_utf8_from_locale(fname); + msgwin_status_add(ok ? _("Loaded tags file '%s'.") : + _("Could not load tags file '%s'."), utf8_fname); + g_free(utf8_fname); + g_free(fname); + } + g_slist_free(flist); + } + gtk_widget_destroy(dialog); +} diff --git a/src/symbols.h b/src/symbols.h index 9e7bf0e0d..693210dc8 100644 --- a/src/symbols.h +++ b/src/symbols.h @@ -50,4 +50,6 @@ gboolean symbols_recreate_tag_list(gint idx); int symbols_generate_global_tags(int argc, char **argv); +void symbols_show_load_tags_dialog(); + #endif