anjuta r3814 - in trunk: . libegg plugins/document-manager plugins/editor plugins/file-loader plugins/search plugins/symbol-browser plugins/symbol-db
- From: jhs svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r3814 - in trunk: . libegg plugins/document-manager plugins/editor plugins/file-loader plugins/search plugins/symbol-browser plugins/symbol-db
- Date: Thu, 3 Apr 2008 21:49:08 +0100 (BST)
Author: jhs
Date: Thu Apr 3 21:49:08 2008
New Revision: 3814
URL: http://svn.gnome.org/viewvc/anjuta?rev=3814&view=rev
Log:
2008-04-03 Johannes Schmid <jhs gnome org>
* Makefile.am:
* configure.in:
* libegg/.cvsignore:
* libegg/Makefile.am:
* libegg/egg-cell-renderer-text.c:
* libegg/egg-combo-action.c:
* libegg/egg-entry-action.c:
* libegg/egg-recent-action.c:
* libegg/egg-recent-files-module.c:
* libegg/egg-recent-item.c:
* libegg/egg-recent-model.c:
* libegg/egg-recent-util.c:
* libegg/egg-recent-view-gtk.c:
* libegg/egg-recent-view.c:
* libegg/egg-submenu-action.c:
* libegg/eggcellrendererpopup.c:
* libegg/eggcomboselect.c:
* libegg/eggmarshalers.list:
* libegg/eggtreemodelfilter.c:
* libegg/eggtreemodelunion.c:
* libegg/eggtreemultidnd.c:
* libegg/gtkcellview.h:
* libegg/layout.glade:
* libegg/menu/.cvsignore:
* libegg/menu/Makefile.am:
* libegg/menu/egg-combo-action.h:
* libegg/menu/egg-entry-action.h:
* libegg/menu/egg-recent-action.h:
* libegg/menu/egg-submenu-action.h:
* libegg/menu/eggcomboselect.h:
* libegg/recent-files/.cvsignore:
* libegg/recent-files/Makefile.am:
* libegg/recent-files/egg-recent-item.h:
* libegg/recent-files/egg-recent-model.h:
* libegg/recent-files/egg-recent-util.h:
* libegg/recent-files/egg-recent-view-gtk.h:
* libegg/recent-files/egg-recent-view.h:
* libegg/recent-files/egg-recent.h:
* libegg/test-actions.c:
* libegg/test-multi-drag.c:
* libegg/test-union.c:
* libegg/treeviewutils/.cvsignore:
* libegg/treeviewutils/Makefile.am:
* libegg/treeviewutils/egg-cell-renderer-text.h:
* libegg/treeviewutils/eggcellrendererpopup.h:
* libegg/treeviewutils/eggtreemodelfilter.h:
* libegg/treeviewutils/eggtreemodelunion.h:
* libegg/treeviewutils/eggtreemultidnd.h:
* libegg/util/.cvsignore:
* libegg/util/Makefile.am:
* libegg/util/egg-macros.h:
* libegg/util/eggintl.h:
Killed libegg (#349279)
* plugins/document-manager/Makefile.am:
* plugins/document-manager/action-callbacks.c:
* plugins/document-manager/plugin.c:
* plugins/editor/plugin.c:
(on_open_recent_file), (sort_recent_menu),
(setup_recent_chooser_menu), (activate_plugin), (dispose),
(anjuta_file_loader_plugin_instance_init):
* plugins/file-loader/plugin.h:
* plugins/search/Makefile.am:
* plugins/search/plugin.c:
* plugins/search/search-replace.c:
Removed dead code and libegg from Makefiles
* plugins/symbol-browser/Makefile.am:
* plugins/symbol-browser/anjuta-symbol-browser-plugin.ui:
* plugins/symbol-browser/plugin.c (on_editor_saved),
(update_editor_symbol_model), (iter_matches),
(value_removed_current_editor), (activate_plugin):
Removed symbol-browser toolbar which used libegg and was
buggy (#451588)
Patch from Ignacio Casal Quinteiro with lots of changes:
* plugins/file-loader/Makefile.am:
* plugins/file-loader/anjuta-loader-plugin.ui:
* plugins/file-loader/plugin.c (set_recent_file), (open_file),
Port FileLoader to GtkRecent (#398984)
Removed:
trunk/libegg/
Modified:
trunk/ChangeLog
trunk/Makefile.am
trunk/configure.in
trunk/plugins/document-manager/Makefile.am
trunk/plugins/document-manager/action-callbacks.c
trunk/plugins/document-manager/plugin.c
trunk/plugins/editor/plugin.c
trunk/plugins/file-loader/Makefile.am
trunk/plugins/file-loader/anjuta-loader-plugin.ui
trunk/plugins/file-loader/plugin.c
trunk/plugins/file-loader/plugin.h
trunk/plugins/search/Makefile.am
trunk/plugins/search/plugin.c
trunk/plugins/search/search-replace.c
trunk/plugins/symbol-browser/Makefile.am
trunk/plugins/symbol-browser/anjuta-symbol-browser-plugin.ui
trunk/plugins/symbol-browser/plugin.c
trunk/plugins/symbol-db/plugin.c
trunk/plugins/symbol-db/symbol-db-engine-iterator-node.c
trunk/plugins/symbol-db/symbol-db-view-locals.c
Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am (original)
+++ trunk/Makefile.am Thu Apr 3 21:49:08 2008
@@ -3,7 +3,7 @@
@INTLTOOL_DESKTOP_RULE@
SUBDIRS = tagmanager global-tags \
- libegg pixmaps scripts data \
+ pixmaps scripts data \
doc libanjuta plugins src manuals mime launcher po
anjutadocdir = $(datadir)/doc/anjuta
Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in (original)
+++ trunk/configure.in Thu Apr 3 21:49:08 2008
@@ -1097,11 +1097,6 @@
tagmanager/Makefile
tagmanager/include/Makefile
global-tags/Makefile
-libegg/Makefile
-libegg/util/Makefile
-libegg/treeviewutils/Makefile
-libegg/menu/Makefile
-libegg/recent-files/Makefile
libanjuta/Makefile
libanjuta/libanjuta-1.0.pc
libanjuta/interfaces/Makefile
Modified: trunk/plugins/document-manager/Makefile.am
==============================================================================
--- trunk/plugins/document-manager/Makefile.am (original)
+++ trunk/plugins/document-manager/Makefile.am Thu Apr 3 21:49:08 2008
@@ -34,7 +34,6 @@
$(PCRE_LIBS) \
$(GNOME_PRINT_UI_LIBS) \
$(GNOME_VFS_LIBS) \
- $(top_builddir)/libegg/libanjuta-egg.la \
$(LIBANJUTA_LIBS)
libanjuta_document_manager_la_SOURCES= \
Modified: trunk/plugins/document-manager/action-callbacks.c
==============================================================================
--- trunk/plugins/document-manager/action-callbacks.c (original)
+++ trunk/plugins/document-manager/action-callbacks.c Thu Apr 3 21:49:08 2008
@@ -38,8 +38,6 @@
#include <libanjuta/interfaces/ianjuta-editor-goto.h>
#include <libanjuta/interfaces/ianjuta-editor-language.h>
-#include <libegg/menu/egg-entry-action.h>
-
#include <sys/wait.h>
#include <sys/stat.h>
Modified: trunk/plugins/document-manager/plugin.c
==============================================================================
--- trunk/plugins/document-manager/plugin.c (original)
+++ trunk/plugins/document-manager/plugin.c Thu Apr 3 21:49:08 2008
@@ -24,7 +24,6 @@
#include <libanjuta/anjuta-debug.h>
#include <libanjuta/anjuta-encodings.h>
-#include <libegg/menu/egg-entry-action.h>
#include <libanjuta/interfaces/ianjuta-document-manager.h>
#include <libanjuta/interfaces/ianjuta-file.h>
#include <libanjuta/interfaces/ianjuta-editor.h>
Modified: trunk/plugins/editor/plugin.c
==============================================================================
--- trunk/plugins/editor/plugin.c (original)
+++ trunk/plugins/editor/plugin.c Thu Apr 3 21:49:08 2008
@@ -23,7 +23,6 @@
#include <libanjuta/anjuta-shell.h>
#include <libanjuta/anjuta-debug.h>
#include <libanjuta/anjuta-encodings.h>
-#include <libegg/menu/egg-entry-action.h>
#include <libanjuta/interfaces/ianjuta-document-manager.h>
#include <libanjuta/interfaces/ianjuta-file.h>
#include <libanjuta/interfaces/ianjuta-file-savable.h>
Modified: trunk/plugins/file-loader/Makefile.am
==============================================================================
--- trunk/plugins/file-loader/Makefile.am (original)
+++ trunk/plugins/file-loader/Makefile.am Thu Apr 3 21:49:08 2008
@@ -39,8 +39,7 @@
libanjuta_loader_la_LIBADD = \
$(GTK_LIBS) \
$(GNOME_VFS_LIBS) \
- $(LIBANJUTA_LIBS)\
- $(top_builddir)/libegg/libanjuta-egg.la
+ $(LIBANJUTA_LIBS)
# Plugin dependencies
Modified: trunk/plugins/file-loader/anjuta-loader-plugin.ui
==============================================================================
--- trunk/plugins/file-loader/anjuta-loader-plugin.ui (original)
+++ trunk/plugins/file-loader/anjuta-loader-plugin.ui Thu Apr 3 21:49:08 2008
@@ -28,9 +28,7 @@
<toolbar name="ToolbarMain">
<placeholder name="PlaceholderFileToolbar">
<placeholder name="PlaceholderFileToolbarNew" />
- <toolitem name="Wizard" action="ActionFileWizard" />
- <toolitem name="Open" action="ActionFileOpen" />
- <toolitem name="OpenRecent" action="ActionFileOpenRecent"/>
+ <toolitem name="Open" action="ActionFileOpenRecent" />
</placeholder>
</toolbar>
</ui>
Modified: trunk/plugins/file-loader/plugin.c
==============================================================================
--- trunk/plugins/file-loader/plugin.c (original)
+++ trunk/plugins/file-loader/plugin.c Thu Apr 3 21:49:08 2008
@@ -34,8 +34,6 @@
#include <libanjuta/interfaces/ianjuta-file-loader.h>
#include <libanjuta/interfaces/ianjuta-document-manager.h>
#include <libanjuta/interfaces/ianjuta-wizard.h>
-#include <libegg/menu/egg-submenu-action.h>
-#include <libegg/menu/egg-recent-action.h>
#include "plugin.h"
#include "dnd.h"
@@ -70,23 +68,31 @@
set_recent_file (AnjutaFileLoaderPlugin *plugin, const gchar *uri,
const gchar *mime)
{
- EggRecentItem *recent_item;
+ GtkRecentData *recent_data;
+ gchar *name;
+
DEBUG_PRINT ("Adding recent item of mimi-type: %s", mime);
- recent_item = egg_recent_item_new ();
- egg_recent_item_set_uri (recent_item, uri);
- egg_recent_item_set_mime_type (recent_item, mime);
- if (strcmp (mime, "application/x-anjuta") == 0)
- {
- egg_recent_item_add_group (recent_item, "anjuta-projects");
- egg_recent_model_add_full (plugin->recent_files_model_top,
- recent_item);
- }
- else
+
+ name = g_path_get_basename (uri);
+
+ recent_data = g_slice_new (GtkRecentData);
+
+ recent_data->display_name = name;
+ recent_data->description = NULL;
+ recent_data->mime_type = (gchar *)mime;
+ recent_data->app_name = (gchar *) g_get_application_name ();
+ recent_data->app_exec = g_strjoin (" ", g_get_prgname (), "%u", NULL);
+ recent_data->groups = NULL;
+ recent_data->is_private = FALSE;
+
+ if (!gtk_recent_manager_add_full (plugin->recent_manager, uri, recent_data))
{
- egg_recent_item_add_group (recent_item, "anjuta-files");
- egg_recent_model_add_full (plugin->recent_files_model_bottom,
- recent_item);
+ g_warning ("Unable to add '%s' to the list of recently used documents", uri);
}
+
+ g_free (name);
+ g_free (recent_data->app_exec);
+ g_slice_free (GtkRecentData, recent_data);
}
static void
@@ -354,6 +360,8 @@
chdir (dirname);
g_free (dirname);
+ /* FIXME: We have to manage the error to know if we have to remove the recent file
+ */
ianjuta_file_loader_load (IANJUTA_FILE_LOADER (plugin),
uri, FALSE, NULL);
}
@@ -376,14 +384,14 @@
}
static gboolean
-on_open_recent_file (EggRecentAction *action, AnjutaFileLoaderPlugin *plugin)
+on_open_recent_file (GtkRecentChooser *chooser, AnjutaFileLoaderPlugin *plugin)
{
const gchar *uri;
GnomeVFSURI *vfs_uri;
gboolean ret = TRUE;
RecentIdelOpenData *rdata;
- uri = egg_recent_action_get_selected_uri (action);
+ uri = gtk_recent_chooser_get_current_uri (chooser);
vfs_uri = gnome_vfs_uri_new (uri);
rdata = g_new0 (RecentIdelOpenData, 1);
rdata->plugin = plugin;
@@ -665,22 +673,6 @@
return submenu;
}
-/*
-static void
-on_recent_files_tooltip (GtkTooltips *tooltips, GtkWidget *menu_item,
- EggRecentItem *item, gpointer user_data)
-{
- char *uri, *tip;
-
- uri = egg_recent_item_get_uri_for_display (item);
- tip = g_strdup_printf ("Open '%s'", uri);
-
- gtk_tooltips_set_tip (tooltips, menu_item, tip, NULL);
-
- g_free (uri);
-}
-*/
-
static void
open_file_with (AnjutaFileLoaderPlugin *plugin, GtkMenuItem *menuitem,
const gchar *uri)
@@ -1106,16 +1098,54 @@
}
}
+static gint
+sort_recent_menu (GtkRecentInfo *a, GtkRecentInfo *b, gpointer useless)
+{
+ const gchar *mime_a;
+ const gchar *mime_b;
+
+ mime_a = gtk_recent_info_get_mime_type (a);
+ mime_b = gtk_recent_info_get_mime_type (b);
+
+ if (strcmp(mime_a, mime_b) == 0)
+ return 1;
+ else if (strcmp (mime_a, "application/x-anjuta") == 0)
+ return -1;
+ else if (strcmp (mime_b, "application/x-anjuta") == 0)
+ return 1;
+
+ return 0;
+}
+
+static void
+setup_recent_chooser_menu (GtkRecentChooser* recent_menu, AnjutaFileLoaderPlugin* plugin)
+{
+ GtkRecentFilter *filter;
+
+ gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER (recent_menu), TRUE);
+ gtk_recent_chooser_set_show_icons (GTK_RECENT_CHOOSER (recent_menu), TRUE);
+ gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (recent_menu), GTK_RECENT_SORT_CUSTOM);
+ gtk_recent_chooser_set_sort_func (GTK_RECENT_CHOOSER (recent_menu), sort_recent_menu, NULL, NULL);
+ g_object_set (recent_menu, "show-numbers", TRUE, NULL);
+ gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (recent_menu), 20);
+
+ filter = gtk_recent_filter_new ();
+ gtk_recent_filter_add_application (filter, g_get_application_name ());
+ gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (recent_menu), filter);
+
+ g_signal_connect (recent_menu, "item-activated",
+ G_CALLBACK (on_open_recent_file), plugin);
+}
+
static gboolean
activate_plugin (AnjutaPlugin *plugin)
{
- EggSubmenuAction *saction;
- GtkAction *action;
+ GtkAction *action, *saction;
AnjutaUI *ui;
AnjutaFileLoaderPlugin *loader_plugin;
- // GtkWidget *recent_menu;
- // EggRecentViewGtk *recent_view;
GtkActionGroup *group;
+ GtkWidget *widget;
+ GtkWidget* recent_menu;
loader_plugin = ANJUTA_PLUGIN_FILE_LOADER (plugin);
@@ -1123,6 +1153,9 @@
ui = anjuta_shell_get_ui (plugin->shell, NULL);
+ /* Recent manager */
+ loader_plugin->recent_manager = gtk_recent_manager_get_default();
+
/* Add action group */
loader_plugin->action_group =
anjuta_ui_add_action_group_entries (ui, "ActionGroupLoader",
@@ -1136,13 +1169,8 @@
popup_actions_file,
G_N_ELEMENTS (popup_actions_file),
GETTEXT_PACKAGE, FALSE, plugin);
- saction = g_object_new (EGG_TYPE_SUBMENU_ACTION,
- "name", "ActionFileWizard",
- "label", _("New"),
- "tooltip", _("New file, project and project components."),
- NULL);
- egg_submenu_action_set_menu_factory (saction,
- on_create_submenu, plugin);
+ saction = gtk_recent_action_new ("ActionFileWizard", _("New"),
+ _("New file, project and project components."), NULL);
gtk_action_group_add_action (loader_plugin->action_group,
GTK_ACTION (saction));
@@ -1152,17 +1180,13 @@
"is-important", TRUE, NULL);
group = gtk_action_group_new ("ActionGroupLoaderRecent");
- action = g_object_new (EGG_TYPE_RECENT_ACTION,
- "name", "ActionFileOpenRecent",
- "label", _("Open _Recent"),
- "tooltip", _("Open recent file"),
- NULL);
- egg_recent_action_add_model (EGG_RECENT_ACTION (action),
- loader_plugin->recent_files_model_top);
- egg_recent_action_add_model (EGG_RECENT_ACTION (action),
- loader_plugin->recent_files_model_bottom);
- g_signal_connect (action, "activate",
- G_CALLBACK (on_open_recent_file), plugin);
+ action = gtk_recent_action_new_for_manager ("ActionFileOpenRecent", _("Open _Recent"),
+ _("Open recent file"), NULL,
+ loader_plugin->recent_manager);
+ g_object_set (action, "stock-id", GTK_STOCK_OPEN, NULL);
+ setup_recent_chooser_menu (GTK_RECENT_CHOOSER (action), loader_plugin);
+ g_signal_connect (action, "activate", G_CALLBACK (on_open_activate), loader_plugin);
+
gtk_action_group_add_action (group, action);
anjuta_ui_add_action_group (ui, "ActionGroupLoaderRecent",
N_("Open recent files"), group, FALSE);
@@ -1171,6 +1195,18 @@
/* Add UI */
loader_plugin->uiid = anjuta_ui_merge (ui, UI_FILE);
+ /* Adding submenus */
+ recent_menu = gtk_recent_chooser_menu_new_for_manager (loader_plugin->recent_manager);
+ setup_recent_chooser_menu (GTK_RECENT_CHOOSER (recent_menu), loader_plugin);
+ widget = gtk_ui_manager_get_widget (GTK_UI_MANAGER(ui),
+ "/MenuMain/MenuFile/PlaceholderFileMenus/OpenRecent");
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget),
+ recent_menu);
+
+ widget = gtk_ui_manager_get_widget (GTK_UI_MANAGER(ui),
+ "/MenuMain/MenuFile/PlaceholderFileMenus/Wizard");
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget), on_create_submenu(loader_plugin));
+
/* Install drag n drop handler */
dnd_drop_init (GTK_WIDGET (plugin->shell), dnd_dropped, plugin,
"text/plain", "text/html", "text/source", "application-x/anjuta",
@@ -1225,16 +1261,6 @@
dispose (GObject *obj)
{
AnjutaFileLoaderPlugin *plugin = ANJUTA_PLUGIN_FILE_LOADER (obj);
- if (plugin->recent_files_model_top)
- {
- g_object_unref (plugin->recent_files_model_top);
- plugin->recent_files_model_top = NULL;
- }
- if (plugin->recent_files_model_bottom)
- {
- g_object_unref (plugin->recent_files_model_bottom);
- plugin->recent_files_model_bottom = NULL;
- }
G_OBJECT_CLASS (parent_class)->dispose (obj);
}
@@ -1252,17 +1278,6 @@
plugin->fm_current_uri = NULL;
plugin->pm_current_uri = NULL;
-
- plugin->recent_files_model_top =
- egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU);
- egg_recent_model_set_limit (plugin->recent_files_model_top, 5);
- egg_recent_model_set_filter_groups (plugin->recent_files_model_top,
- "anjuta-projects", NULL);
- plugin->recent_files_model_bottom =
- egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU);
- egg_recent_model_set_limit (plugin->recent_files_model_bottom, 15);
- egg_recent_model_set_filter_groups (plugin->recent_files_model_bottom,
- "anjuta-files", NULL);
}
static void
Modified: trunk/plugins/file-loader/plugin.h
==============================================================================
--- trunk/plugins/file-loader/plugin.h (original)
+++ trunk/plugins/file-loader/plugin.h Thu Apr 3 21:49:08 2008
@@ -1,6 +1,6 @@
#include <libanjuta/anjuta-plugin.h>
-#include <libegg/recent-files/egg-recent-model.h>
+#include <gtk/gtkrecentmanager.h>
extern GType anjuta_file_loader_plugin_get_type (GTypeModule *module);
#define ANJUTA_TYPE_PLUGIN_FILE_LOADER (anjuta_file_loader_plugin_get_type (NULL))
@@ -15,8 +15,8 @@
struct _AnjutaFileLoaderPlugin{
AnjutaPlugin parent;
- EggRecentModel *recent_files_model_top;
- EggRecentModel *recent_files_model_bottom;
+
+ GtkRecentManager *recent_manager;
GtkActionGroup *action_group;
GtkActionGroup *popup_action_group;
GtkActionGroup *recent_group;
Modified: trunk/plugins/search/Makefile.am
==============================================================================
--- trunk/plugins/search/Makefile.am (original)
+++ trunk/plugins/search/Makefile.am Thu Apr 3 21:49:08 2008
@@ -42,7 +42,6 @@
$(GNOME_UI_LIBS) \
$(GLADE_LIBS) \
$(LIBANJUTA_LIBS) \
- $(top_builddir)/libegg/libanjuta-egg.la \
$(top_builddir)/tagmanager/libanjuta-ctags.la
libanjuta_search_la_SOURCES= \
Modified: trunk/plugins/search/plugin.c
==============================================================================
--- trunk/plugins/search/plugin.c (original)
+++ trunk/plugins/search/plugin.c Thu Apr 3 21:49:08 2008
@@ -24,8 +24,6 @@
#include <libanjuta/anjuta-shell.h>
#include <libanjuta/anjuta-debug.h>
-#include <libegg/menu/egg-entry-action.h>
-
#include "plugin.h"
#include "search-replace.h"
#include "search-replace_backend.h"
Modified: trunk/plugins/search/search-replace.c
==============================================================================
--- trunk/plugins/search/search-replace.c (original)
+++ trunk/plugins/search/search-replace.c Thu Apr 3 21:49:08 2008
@@ -36,8 +36,6 @@
#include <libanjuta/interfaces/ianjuta-bookmark.h>
#include <libanjuta/interfaces/ianjuta-indicable.h>
-#include <libegg/menu/egg-entry-action.h>
-
#include "search-replace_backend.h"
#include "search-replace.h"
#include "search_preferences.h"
@@ -1354,21 +1352,6 @@
#define MAX_ITEMS_SEARCH_COMBO 16
-void
-search_toolbar_set_text(gchar *search_text)
-{
- AnjutaUI *ui;
- GtkAction *action;
-
- AnjutaShell* shell;
- g_object_get(G_OBJECT(sr->docman), "shell", &shell, NULL);
-
- ui = anjuta_shell_get_ui (shell, NULL);
- action = anjuta_ui_get_action (ui, "ActionGroupNavigation",
- "ActionEditSearchEntry");
- egg_entry_action_set_text (EGG_ENTRY_ACTION(action), search_text);
-}
-
static void
search_update_combos(void)
{
Modified: trunk/plugins/symbol-browser/Makefile.am
==============================================================================
--- trunk/plugins/symbol-browser/Makefile.am (original)
+++ trunk/plugins/symbol-browser/Makefile.am Thu Apr 3 21:49:08 2008
@@ -62,7 +62,6 @@
$(GDL_LIBS) \
$(GNOME_UI_LIBS) \
$(LIBANJUTA_LIBS) \
- $(top_builddir)/libegg/libanjuta-egg.la \
$(top_builddir)/tagmanager/libanjuta-ctags.la
prefs_glade_files = anjuta-symbol-browser-plugin.glade
Modified: trunk/plugins/symbol-browser/anjuta-symbol-browser-plugin.ui
==============================================================================
--- trunk/plugins/symbol-browser/anjuta-symbol-browser-plugin.ui (original)
+++ trunk/plugins/symbol-browser/anjuta-symbol-browser-plugin.ui Thu Apr 3 21:49:08 2008
@@ -8,9 +8,6 @@
</menu>
</placeholder>
</menubar>
- <toolbar name="ToolbarSymbols">
- <toolitem name="Symbol" action="ActionGotoSymbol"/>
- </toolbar>
<popup name="PopupSymbolBrowser">
<menuitem name="GotoDef" action="ActionPopupSymbolBrowserGotoDef"/>
<menuitem name="GotoDecl" action="ActionPopupSymbolBrowserGotoDecl"/>
Modified: trunk/plugins/symbol-browser/plugin.c
==============================================================================
--- trunk/plugins/symbol-browser/plugin.c (original)
+++ trunk/plugins/symbol-browser/plugin.c Thu Apr 3 21:49:08 2008
@@ -32,7 +32,6 @@
#include <libanjuta/interfaces/ianjuta-markable.h>
#include <libanjuta/interfaces/ianjuta-symbol-manager.h>
#include <libanjuta/interfaces/ianjuta-preferences.h>
-#include <libegg/menu/egg-combo-action.h>
#include <tm_tagmanager.h>
#include "an_symbol_view.h"
@@ -544,17 +543,6 @@
}
static void
-on_symbol_selected (GtkAction *action, SymbolBrowserPlugin *sv_plugin)
-{
- GtkTreeIter iter;
-
- if (egg_combo_action_get_active_iter (EGG_COMBO_ACTION (action), &iter))
- {
- goto_tree_iter (sv_plugin, &iter);
- }
-}
-
-static void
on_local_treeview_row_activated (GtkTreeView *view, GtkTreePath *arg1,
GtkTreeViewColumn *arg2,
SymbolBrowserPlugin *sv_plugin)
@@ -644,8 +632,6 @@
/* Update File symbol view */
ui = anjuta_shell_get_ui (ANJUTA_PLUGIN (sv_plugin)->shell, NULL);
- action = anjuta_ui_get_action (ui, "ActionGroupSymbolNavigation",
- "ActionGotoSymbol");
file_symbol_model =
@@ -653,18 +639,11 @@
g_object_set_data (G_OBJECT (editor), "tm_file",
g_object_get_data (G_OBJECT (file_symbol_model),
"tm_file"));
- /* Set toolbar version */
- egg_combo_action_set_model (EGG_COMBO_ACTION (action), file_symbol_model);
/* Set local view version */
gtk_tree_view_set_model (GTK_TREE_VIEW (sv_plugin->sl_tree),
file_symbol_model);
sv_plugin->locals_line_number = 0;
on_editor_update_ui (editor, sv_plugin);
-
- if (gtk_tree_model_iter_n_children (file_symbol_model, NULL) > 0)
- g_object_set (G_OBJECT (action), "sensitive", TRUE, NULL);
- else
- g_object_set (G_OBJECT (action), "sensitive", FALSE, NULL);
#if 0
/* FIXME: Re-hilite all editors on tags update */
@@ -733,8 +712,6 @@
g_free (local_filename);
anjuta_symbol_view_workspace_add_file (ANJUTA_SYMBOL_VIEW (sv_plugin->sv_tree), uri);
- action = anjuta_ui_get_action (ui, "ActionGroupSymbolNavigation",
- "ActionGotoSymbol");
g_free (uri);
file_symbol_model =
@@ -744,19 +721,12 @@
g_object_set_data (G_OBJECT (editor), "tm_file",
g_object_get_data (G_OBJECT (file_symbol_model),
"tm_file"));
- /* Set toolbar version */
- egg_combo_action_set_model (EGG_COMBO_ACTION (action), file_symbol_model);
/* Set local view version */
gtk_tree_view_set_model (GTK_TREE_VIEW (sv_plugin->sl_tree),
file_symbol_model);
sv_plugin->locals_line_number = 0;
on_editor_update_ui (IANJUTA_EDITOR (editor), sv_plugin);
-
- if (gtk_tree_model_iter_n_children (file_symbol_model, NULL) > 0)
- g_object_set (G_OBJECT (action), "sensitive", TRUE, NULL);
- else
- g_object_set (G_OBJECT (action), "sensitive", FALSE, NULL);
}
}
}
@@ -770,11 +740,7 @@
if (line == lineno)
{
GtkTreePath* path = gtk_tree_model_get_path (model, iter);
- GtkAction* action = anjuta_ui_get_action (sv_plugin->ui,
- "ActionGroupSymbolNavigation",
- "ActionGotoSymbol");
- egg_combo_action_set_active_iter (EGG_COMBO_ACTION (action), iter);
gtk_tree_view_set_cursor (GTK_TREE_VIEW (sv_plugin->sl_tree), path, NULL,
FALSE);
gtk_tree_path_free (path);
@@ -875,9 +841,6 @@
sv_plugin = ANJUTA_PLUGIN_SYMBOL_BROWSER (plugin);
ui = anjuta_shell_get_ui (plugin->shell, NULL);
- action = anjuta_ui_get_action (ui, "ActionGroupSymbolNavigation",
- "ActionGotoSymbol");
- g_object_set (G_OBJECT (action), "sensitive", FALSE, NULL);
sv_plugin->current_editor = NULL;
}
@@ -885,7 +848,6 @@
activate_plugin (AnjutaPlugin *plugin)
{
GtkActionGroup *group;
- GtkAction *action;
SymbolBrowserPlugin *sv_plugin;
DEBUG_PRINT ("SymbolBrowserPlugin: Activating Symbol Manager plugin...");
@@ -983,19 +945,7 @@
G_N_ELEMENTS (popup_actions),
GETTEXT_PACKAGE, FALSE, plugin);
group = gtk_action_group_new ("ActionGroupSymbolNavigation");
-
- /* create a new combobox in style of libegg... */
- action = g_object_new (EGG_TYPE_COMBO_ACTION,
- "name", "ActionGotoSymbol",
- "label", _("Goto symbol"),
- "tooltip", _("Select the symbol to go"),
- "stock_id", GTK_STOCK_JUMP_TO,
- NULL);
-
- g_object_set (G_OBJECT (action), "sensitive", FALSE, NULL);
- g_signal_connect (action, "activate",
- G_CALLBACK (on_symbol_selected), sv_plugin);
- gtk_action_group_add_action (group, action);
+
anjuta_ui_add_action_group (sv_plugin->ui, "ActionGroupSymbolNavigation",
N_("Symbol navigations"), group, FALSE);
sv_plugin->action_group_nav = group;
Modified: trunk/plugins/symbol-db/plugin.c
==============================================================================
--- trunk/plugins/symbol-db/plugin.c (original)
+++ trunk/plugins/symbol-db/plugin.c Thu Apr 3 21:49:08 2008
@@ -39,8 +39,6 @@
#include <libanjuta/interfaces/ianjuta-iterable.h>
#include <libanjuta/interfaces/ianjuta-preferences.h>
-#include <libegg/menu/egg-combo-action.h>
-
#include "plugin.h"
#include "symbol-db-view.h"
#include "symbol-db-view-locals.h"
Modified: trunk/plugins/symbol-db/symbol-db-engine-iterator-node.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-engine-iterator-node.c (original)
+++ trunk/plugins/symbol-db/symbol-db-engine-iterator-node.c Thu Apr 3 21:49:08 2008
@@ -25,6 +25,7 @@
#include <libanjuta/interfaces/ianjuta-symbol.h>
#include <libanjuta/anjuta-utils.h>
#include <libanjuta/anjuta-debug.h>
+#include <libgnomevfs/gnome-vfs.h>
#include "symbol-db-engine-iterator-node.h"
#include "symbol-db-engine.h"
@@ -43,7 +44,6 @@
SymbolDBEngineIteratorNode *
symbol_db_engine_iterator_node_new (const GdaDataModelIter *data)
{
-/* DEBUG_PRINT ("sdb_engine_iterator_node_new ()");*/
SymbolDBEngineIteratorNode *s;
s = g_object_new (SYMBOL_TYPE_DB_ENGINE_ITERATOR_NODE, NULL);
s->priv->data_iter = (GdaDataModelIter *)data;
@@ -56,7 +56,6 @@
sdb_engine_iterator_node_instance_init (SymbolDBEngineIteratorNode *object)
{
SymbolDBEngineIteratorNode *sdbin;
-/* DEBUG_PRINT ("sdb_engine_iterator_node_instance_init ()");*/
sdbin = SYMBOL_DB_ENGINE_ITERATOR_NODE (object);
@@ -68,12 +67,9 @@
static void
sdb_engine_iterator_node_finalize (GObject *object)
{
- /* TODO: Add deinitalization code here */
SymbolDBEngineIteratorNode *dbin;
SymbolDBEngineIteratorNodePriv *priv;
-/* DEBUG_PRINT ("sdb_engine_iterator_node_finalize ()");*/
-
dbin = SYMBOL_DB_ENGINE_ITERATOR_NODE (object);
priv = dbin->priv;
if (priv->uri)
@@ -101,13 +97,11 @@
{
SymbolDBEngineIteratorNodePriv *priv;
const GValue* value;
- GdaParameter *par;
g_return_val_if_fail (dbin != NULL, -1);
priv = dbin->priv;
- par = gda_data_model_iter_get_param_for_column (priv->data_iter, 0);
- value = gda_parameter_get_value (par);
+ value = gda_data_model_iter_get_value_at (priv->data_iter, 0);
return value != NULL && G_VALUE_HOLDS_INT (value)
? g_value_get_int (value) : -1;
@@ -121,13 +115,11 @@
{
SymbolDBEngineIteratorNodePriv *priv;
const GValue* value;
- GdaParameter *par;
g_return_val_if_fail (dbin != NULL, NULL);
priv = dbin->priv;
- par = gda_data_model_iter_get_param_for_column (priv->data_iter, 1);
- value = gda_parameter_get_value (par);
+ value = gda_data_model_iter_get_value_at (priv->data_iter, 1);
return value != NULL && G_VALUE_HOLDS_STRING (value)
? g_value_get_string (value) : NULL;
@@ -141,13 +133,11 @@
{
SymbolDBEngineIteratorNodePriv *priv;
const GValue* value;
- GdaParameter *par;
g_return_val_if_fail (dbin != NULL, -1);
priv = dbin->priv;
- par = gda_data_model_iter_get_param_for_column (priv->data_iter, 2);
- value = gda_parameter_get_value (par);
+ value = gda_data_model_iter_get_value_at (priv->data_iter, 2);
return value != NULL && G_VALUE_HOLDS_INT (value)
? g_value_get_int (value) : -1;
@@ -162,15 +152,12 @@
SymbolDBEngineIteratorNodePriv *priv;
const GValue* value;
- GdaParameter *par;
-
g_return_val_if_fail (dbin != NULL, FALSE);
priv = dbin->priv;
- par = gda_data_model_iter_get_param_for_column (priv->data_iter, 3);
- value = gda_parameter_get_value (par);
+ value = gda_data_model_iter_get_value_at (priv->data_iter, 3);
- if (value != NULL)
+ if (value != NULL && G_VALUE_HOLDS_INT (value))
return g_value_get_int (value) == 1 ? TRUE : FALSE;
return FALSE;
@@ -184,13 +171,11 @@
{
SymbolDBEngineIteratorNodePriv *priv;
const GValue* value;
- GdaParameter *par;
g_return_val_if_fail (dbin != NULL, NULL);
priv = dbin->priv;
- par = gda_data_model_iter_get_param_for_column (priv->data_iter, 4);
- value = gda_parameter_get_value (par);
+ value = gda_data_model_iter_get_value_at (priv->data_iter, 4);
return value != NULL && G_VALUE_HOLDS_STRING (value)
? g_value_get_string (value) : NULL;
@@ -201,87 +186,64 @@
gint sym_info)
{
SymbolDBEngineIteratorNodePriv *priv;
- GdaParameter *par = NULL;
- GdaParameter *res = NULL;
- gint column = -1;
+ const GValue *value = NULL;
g_return_val_if_fail (dbin != NULL, NULL);
priv = dbin->priv;
-#if 0
- DEBUG_PRINT ("symbol_db_engine_iterator_node_get_symbol_extra_string () for %d",
- sym_info);
-
- if (GDA_PARAMETER_LIST(priv->data_iter)) {
- g_print ("-Parameter(s):\n");
- GSList *params;
- for (params = GDA_PARAMETER_LIST(priv->data_iter)->parameters; params;
- params = params->next) {
- GdaParameter *parameter = GDA_PARAMETER (params->data);
- g_print (" - name:%s type:%s\n",
- gda_object_get_name (GDA_OBJECT (parameter)),
- g_type_name (gda_parameter_get_g_type (parameter)));
- }
- }
-#endif
+
if (sym_info & SYMINFO_FILE_PATH)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "file_path");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "file_path");
}
else if (sym_info & SYMINFO_LANGUAGE)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "language_name");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "language_name");
}
else if (sym_info & SYMINFO_IMPLEMENTATION)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "implementation_name");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "implementation_name");
}
else if (sym_info & SYMINFO_ACCESS)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "access_name");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "access_name");
}
else if (sym_info & SYMINFO_KIND)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "kind_name");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "kind_name");
}
else if (sym_info & SYMINFO_TYPE)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "type");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "type");
}
else if (sym_info & SYMINFO_TYPE_NAME)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "type_name");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "type_name");
}
else if (sym_info & SYMINFO_PROJECT_NAME)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "project_name");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "project_name");
}
else if (sym_info & SYMINFO_FILE_IGNORE)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "file_ignore_type");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "file_ignore_type");
}
else if (sym_info & SYMINFO_FILE_INCLUDE)
{
- par = gda_parameter_list_find_param (GDA_PARAMETER_LIST(priv->data_iter),
- "file_include_type");
+ value = gda_data_model_iter_get_value_for_field (priv->data_iter,
+ "file_include_type");
}
- if (par != NULL)
- {
- column = gda_data_model_iter_get_column_for_param (priv->data_iter, par);
- res = gda_data_model_iter_get_param_for_column (priv->data_iter, column);
- return gda_parameter_get_value_str (res);
- }
- else
- return NULL;
+ return value != NULL && G_VALUE_HOLDS_STRING (value)
+ ? g_value_get_string (value) : NULL;
}
void
@@ -315,65 +277,9 @@
}
}
-
/* IAnjutaSymbol implementation */
-static IAnjutaSymbolType
-isymbol_type (IAnjutaSymbol *isymbol, GError **err)
-{
- SymbolDBEngineIteratorNode *s;
- SymbolDBEngineIteratorNodePriv *priv;
- gpointer tag_found;
- const gchar* find_str;
-
- g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR_NODE (isymbol),
- IANJUTA_SYMBOL_TYPE_UNDEF);
-
- s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
- priv = s->priv;
-
- find_str = symbol_db_engine_iterator_node_get_symbol_extra_string (s,
- SYMINFO_TYPE);
- if (find_str == NULL) {
- DEBUG_PRINT ("isymbol_type (): find_str is NULL");
- return IANJUTA_SYMBOL_TYPE_UNDEF;
- }
-
- tag_found = g_hash_table_lookup (priv->sym_type_conversion_hash, find_str);
-
- if (tag_found == NULL) {
- DEBUG_PRINT ("isymbol_type (): nothing matching ");
- return IANJUTA_SYMBOL_TYPE_UNDEF;
- }
-
- return (IAnjutaSymbolType)tag_found;
-}
-
-
-static const gchar*
-isymbol_type_str (IAnjutaSymbol *isymbol, GError **err)
-{
- SymbolDBEngineIteratorNode *s;
-
- g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol), NULL);
- s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
- return symbol_db_engine_iterator_node_get_symbol_extra_string (s,
- SYMINFO_TYPE);
-}
-
-static const gchar*
-isymbol_type_name (IAnjutaSymbol *isymbol, GError **err)
-{
- SymbolDBEngineIteratorNode *s;
-
- g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol), NULL);
- s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
- return symbol_db_engine_iterator_node_get_symbol_extra_string (s,
- SYMINFO_TYPE_NAME);
-}
-
-
static const gchar*
-isymbol_name (IAnjutaSymbol *isymbol, GError **err)
+isymbol_get_name (IAnjutaSymbol *isymbol, GError **err)
{
SymbolDBEngineIteratorNode *s;
@@ -384,7 +290,7 @@
}
static const gchar*
-isymbol_args (IAnjutaSymbol *isymbol, GError **err)
+isymbol_get_args (IAnjutaSymbol *isymbol, GError **err)
{
SymbolDBEngineIteratorNode *s;
@@ -394,54 +300,18 @@
}
static const gchar*
-isymbol_scope (IAnjutaSymbol *isymbol, GError **err)
-{
- SymbolDBEngineIteratorNode *s;
-
- g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol), NULL);
- s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
-// g_return_val_if_fail (s->priv->tm_tag != NULL, NULL);
-// return s->priv->tm_tag->atts.entry.scope;
- return NULL;
-}
-
-static const gchar*
-isymbol_inheritance (IAnjutaSymbol *isymbol, GError **err)
-{
- SymbolDBEngineIteratorNode *s;
-
- g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol), NULL);
- s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
-// g_return_val_if_fail (s->priv->tm_tag != NULL, NULL);
-// return s->priv->tm_tag->atts.entry.inheritance;
-// return
- return NULL;
-}
-
-static const gchar*
-isymbol_access (IAnjutaSymbol *isymbol, GError **err)
+isymbol_get_extra_info_string (IAnjutaSymbol *isymbol, IAnjutaSymbolField sym_info,
+ GError **err)
{
SymbolDBEngineIteratorNode *s;
g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol), NULL);
s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
- return symbol_db_engine_iterator_node_get_symbol_extra_string (s,
- SYMINFO_ACCESS);
-}
+ return symbol_db_engine_iterator_node_get_symbol_extra_string (s, sym_info);
+}
static const gchar*
-isymbol_impl (IAnjutaSymbol *isymbol, GError **err)
-{
- SymbolDBEngineIteratorNode *s;
-
- g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol), NULL);
- s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
- return symbol_db_engine_iterator_node_get_symbol_extra_string (s,
- SYMINFO_IMPLEMENTATION);
-}
-
-static const gchar*
-isymbol_uri (IAnjutaSymbol *isymbol, GError **err)
+isymbol_get_uri (IAnjutaSymbol *isymbol, GError **err)
{
SymbolDBEngineIteratorNode *s;
@@ -458,7 +328,7 @@
}
static gulong
-isymbol_line (IAnjutaSymbol *isymbol, GError **err)
+isymbol_get_line (IAnjutaSymbol *isymbol, GError **err)
{
SymbolDBEngineIteratorNode *s;
@@ -478,7 +348,7 @@
}
static const GdkPixbuf*
-isymbol_icon (IAnjutaSymbol *isymbol, GError **err)
+isymbol_get_icon (IAnjutaSymbol *isymbol, GError **err)
{
SymbolDBEngineIteratorNode *s;
@@ -492,22 +362,42 @@
SYMINFO_ACCESS));
}
+static IAnjutaSymbolType
+isymbol_get_sym_type (IAnjutaSymbol *isymbol, GError **err)
+{
+ SymbolDBEngineIteratorNode *s;
+ SymbolDBEngineIteratorNodePriv *priv;
+ const gchar* type_str;
+ gint type;
+
+ g_return_val_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR (isymbol),
+ IANJUTA_SYMBOL_TYPE_UNDEF);
+ s = SYMBOL_DB_ENGINE_ITERATOR_NODE (isymbol);
+
+ priv = s->priv;
+
+ type_str = symbol_db_engine_iterator_node_get_symbol_extra_string (s,
+ IANJUTA_SYMBOL_FIELD_TYPE);
+ if (type_str == NULL)
+ return IANJUTA_SYMBOL_TYPE_UNDEF;
+
+ type = (IAnjutaSymbolType)g_hash_table_lookup ((GHashTable*)priv->sym_type_conversion_hash,
+ type_str);
+
+ return type;
+}
+
static void
isymbol_iface_init (IAnjutaSymbolIface *iface)
{
- iface->type = isymbol_type;
- iface->type_str = isymbol_type_str;
- iface->type_name = isymbol_type_name;
- iface->name = isymbol_name;
- iface->args = isymbol_args;
- iface->scope = isymbol_scope;
- iface->inheritance = isymbol_inheritance;
- iface->access = isymbol_access;
- iface->impl = isymbol_impl;
- iface->uri = isymbol_uri;
- iface->line = isymbol_line;
+ iface->get_uri = isymbol_get_uri;
+ iface->get_name = isymbol_get_name;
+ iface->get_line = isymbol_get_line;
+ iface->get_sym_type = isymbol_get_sym_type;
iface->is_local = isymbol_is_local;
- iface->icon = isymbol_icon;
+ iface->get_args = isymbol_get_args;
+ iface->get_extra_info_string = isymbol_get_extra_info_string;
+ iface->get_icon = isymbol_get_icon;
}
ANJUTA_TYPE_BEGIN (SymbolDBEngineIteratorNode, sdb_engine_iterator_node, G_TYPE_OBJECT);
Modified: trunk/plugins/symbol-db/symbol-db-view-locals.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-view-locals.c (original)
+++ trunk/plugins/symbol-db/symbol-db-view-locals.c Thu Apr 3 21:49:08 2008
@@ -26,7 +26,6 @@
#include <gtk/gtk.h>
#include <libanjuta/anjuta-utils.h>
#include <libanjuta/anjuta-debug.h>
-#include <libegg/menu/egg-combo-action.h>
#include "symbol-db-view-locals.h"
#include "symbol-db-engine.h"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]