From 5da5689541aa5bca6b056a2372bcd3410f6475b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sat, 25 Sep 2010 16:03:48 +0200 Subject: WIP: Refactoring of the library and symbols --- src/ld-symbol-library.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/ld-symbol-library.c') diff --git a/src/ld-symbol-library.c b/src/ld-symbol-library.c index 2b6738a..2f5f9d3 100644 --- a/src/ld-symbol-library.c +++ b/src/ld-symbol-library.c @@ -9,8 +9,6 @@ */ #include -#include -/* #include */ #include "config.h" @@ -29,11 +27,11 @@ /* * LdSymbolLibraryPrivate: - * @lua_state: Lua state. + * @script_state: State of the scripting language. */ struct _LdSymbolLibraryPrivate { - lua_State *lua_state; + gpointer script_state; }; G_DEFINE_TYPE (LdSymbolLibrary, ld_symbol_library, G_TYPE_OBJECT); @@ -70,8 +68,8 @@ ld_symbol_library_init (LdSymbolLibrary *self) self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, LD_TYPE_SYMBOL_LIBRARY, LdSymbolLibraryPrivate); - /* TODO: lua */ - self->priv->lua_state = NULL; + /* TODO */ + self->priv->script_state = NULL; self->categories = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_object_unref); @@ -151,6 +149,7 @@ ld_symbol_library_load (LdSymbolLibrary *self, const char *path) { GDir *dir; const gchar *item; + gboolean changed = FALSE; g_return_val_if_fail (LD_IS_SYMBOL_LIBRARY (self), FALSE); g_return_val_if_fail (path != NULL, FALSE); @@ -169,8 +168,15 @@ ld_symbol_library_load (LdSymbolLibrary *self, const char *path) if (cat) g_hash_table_insert (self->categories, cat->name, cat); g_free (categ_path); + + changed = TRUE; } g_dir_close (dir); + + if (changed) + g_signal_emit (self, + LD_SYMBOL_LIBRARY_GET_CLASS (self)->changed_signal, 0); + return TRUE; } @@ -186,6 +192,8 @@ ld_symbol_library_clear (LdSymbolLibrary *self) g_return_if_fail (LD_IS_SYMBOL_LIBRARY (self)); g_hash_table_remove_all (self->categories); - return; + + g_signal_emit (self, + LD_SYMBOL_LIBRARY_GET_CLASS (self)->changed_signal, 0); } -- cgit v1.2.3