anjuta r4261 - in trunk: . plugins/symbol-browser plugins/symbol-db
- From: jhs svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r4261 - in trunk: . plugins/symbol-browser plugins/symbol-db
- Date: Sun, 14 Sep 2008 21:07:55 +0000 (UTC)
Author: jhs
Date: Sun Sep 14 21:07:54 2008
New Revision: 4261
URL: http://svn.gnome.org/viewvc/anjuta?rev=4261&view=rev
Log:
2008-09-14 Massimo Cora\' <maxcvs email it>
* plugins/symbol-browser/an_symbol_iter.c (isymbol_iter_next):
removed some debug messages.
* plugins/symbol-db/anjuta-symbol-db.glade:
converted the GtkFileChooser into GtkComboBoxEntry because of bug #551384.
* plugins/symbol-db/plugin.c (g_list_compare), (on_session_load),
(do_check_offline_files_changed), (on_project_root_added):
* plugins/symbol-db/symbol-db-engine-iterator-node.c
(symbol_db_engine_iterator_node_set_data):
* plugins/symbol-db/symbol-db-engine-iterator.c
(symbol_db_engine_iterator_new):
* plugins/symbol-db/symbol-db-engine.c (sdb_engine_cache_lookup),
(sdb_engine_insert_dyn_query_node_by_id),
(sdb_engine_get_tuple_id_by_unique_name),
(sdb_engine_get_tuple_id_by_unique_name2),
(sdb_engine_get_tuple_id_by_unique_name3),
(sdb_engine_get_tuple_id_by_unique_name4),
(sdb_engine_ctags_output_callback_1), (sdb_engine_init),
(symbol_db_engine_add_new_workspace),
(symbol_db_engine_add_new_project), (sdb_engine_add_new_language),
(sdb_engine_add_new_file), (sdb_engine_add_new_sym_type),
(sdb_engine_add_new_sym_kind), (sdb_engine_add_new_sym_access),
(sdb_engine_add_new_sym_implementation),
(sdb_engine_add_new_heritage),
(sdb_engine_add_new_scope_definition),
(sdb_engine_add_new_tmp_heritage_scope),
(sdb_engine_second_pass_update_scope_1),
(sdb_engine_second_pass_update_scope),
(sdb_engine_second_pass_update_heritage),
(sdb_engine_add_new_symbol), (sdb_engine_detects_removed_ids),
(sdb_engine_update_file), (on_scan_update_files_symbols_end),
(symbol_db_engine_update_project_symbols),
(symbol_db_engine_remove_file), (symbol_db_engine_remove_files),
(sdb_engine_walk_down_scope_path),
(symbol_db_engine_get_files_with_zero_symbols),
(sdb_engine_prepare_file_info_sql),
(symbol_db_engine_get_class_parents_by_symbol_id),
(symbol_db_engine_get_class_parents),
(symbol_db_engine_get_global_members_filtered),
(symbol_db_engine_get_scope_members_by_symbol_id_filtered),
(symbol_db_engine_get_scope_members_by_symbol_id),
(symbol_db_engine_get_scope_members),
(symbol_db_engine_get_current_scope),
(symbol_db_engine_get_file_symbols),
(symbol_db_engine_get_symbol_info_by_id),
(symbol_db_engine_find_symbol_by_name_pattern),
(symbol_db_engine_get_parent_scope_id_by_symbol_id),
(symbol_db_engine_find_symbol_by_name_pattern_filtered),
(symbol_db_engine_get_files_for_project):
* plugins/symbol-db/symbol-db-engine.h:
* plugins/symbol-db/symbol-db-prefs.c
(on_prefs_executable_changed), (sdb_prefs_init1):
* plugins/symbol-db/symbol-db-prefs.h:
* plugins/symbol-db/symbol-db-view-locals.c
(symbol_db_view_locals_update_list):
* plugins/symbol-db/symbol-db-view.c (symbol_db_view_get_pixbuf):
ported to libgda-svn 3204. Still some bugs due to libgda remain but
they are being squashed.
Modified:
trunk/ChangeLog
trunk/plugins/symbol-browser/an_symbol_iter.c
trunk/plugins/symbol-db/Makefile.am
trunk/plugins/symbol-db/anjuta-symbol-db.glade
trunk/plugins/symbol-db/plugin.c
trunk/plugins/symbol-db/symbol-db-engine-iterator-node.c
trunk/plugins/symbol-db/symbol-db-engine-iterator.c
trunk/plugins/symbol-db/symbol-db-engine.c
trunk/plugins/symbol-db/symbol-db-engine.h
trunk/plugins/symbol-db/symbol-db-prefs.c
trunk/plugins/symbol-db/symbol-db-prefs.h
trunk/plugins/symbol-db/symbol-db-view-locals.c
trunk/plugins/symbol-db/symbol-db-view.c
Modified: trunk/plugins/symbol-browser/an_symbol_iter.c
==============================================================================
--- trunk/plugins/symbol-browser/an_symbol_iter.c (original)
+++ trunk/plugins/symbol-browser/an_symbol_iter.c Sun Sep 14 21:07:54 2008
@@ -123,8 +123,8 @@
if (si->priv->tm_tags_array->len <= 0)
return FALSE;
- DEBUG_PRINT ("si->priv->tm_tags_array->len %d", si->priv->tm_tags_array->len);
- DEBUG_PRINT ("si->priv->current_pos %d", si->priv->current_pos);
+ /*DEBUG_PRINT ("si->priv->tm_tags_array->len %d", si->priv->tm_tags_array->len);
+ DEBUG_PRINT ("si->priv->current_pos %d", si->priv->current_pos);*/
if (si->priv->current_pos >= (si->priv->tm_tags_array->len - 1))
{
Modified: trunk/plugins/symbol-db/Makefile.am
==============================================================================
--- trunk/plugins/symbol-db/Makefile.am (original)
+++ trunk/plugins/symbol-db/Makefile.am Sun Sep 14 21:07:54 2008
@@ -58,7 +58,7 @@
symbol-db-engine-iterator-node.c \
symbol-db-system.h \
symbol-db-system.c symbol-db-prefs.h \
- symbol-db-prefs.c
+ symbol-db-prefs.c
libanjuta_symbol_db_la_LDFLAGS = $(ANJUTA_PLUGIN_LDFLAGS)
Modified: trunk/plugins/symbol-db/anjuta-symbol-db.glade
==============================================================================
--- trunk/plugins/symbol-db/anjuta-symbol-db.glade (original)
+++ trunk/plugins/symbol-db/anjuta-symbol-db.glade Sun Sep 14 21:07:54 2008
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.4 on Wed Aug 27 21:42:20 2008 -->
+<!--Generated with glade3 3.4.4 on Fri Sep 12 22:16:51 2008 -->
<glade-interface>
<widget class="GtkWindow" id="symbol_db_pref_window">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -40,16 +40,18 @@
</packing>
</child>
<child>
- <widget class="GtkFileChooserButton" id="preferences_file:text:/usr/bin/ctags:0:symboldb.ctags">
+ <widget class="GtkComboBoxEntry" id="comboboxentry1">
<property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="preview_widget_active">False</property>
- <property name="use_preview_label">False</property>
- <property name="title" translatable="yes">Choose ctags executable</property>
+ <property name="items" translatable="yes">/usr/bin/ctags
+/usr/local/bin/ctags</property>
+ <child internal-child="entry">
+ <widget class="GtkEntry" id="preferences_entry:text:/usr/bin/ctags:0:symboldb.ctags">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </widget>
+ </child>
</widget>
<packing>
- <property name="padding">5</property>
- <property name="pack_type">GTK_PACK_END</property>
<property name="position">1</property>
</packing>
</child>
Modified: trunk/plugins/symbol-db/plugin.c
==============================================================================
--- trunk/plugins/symbol-db/plugin.c (original)
+++ trunk/plugins/symbol-db/plugin.c Sun Sep 14 21:07:54 2008
@@ -22,6 +22,7 @@
* Boston, MA 02110-1301, USA.
*/
+
#include <config.h>
#include <libgnomevfs/gnome-vfs-utils.h>
#include <libgnomevfs/gnome-vfs-mime-utils.h>
@@ -69,6 +70,12 @@
static unsigned int signals[LAST_SIGNAL] = { 0 };
+static gint
+g_list_compare (gconstpointer a, gconstpointer b)
+{
+ return strcmp ((const gchar*)a, (const gchar*)b);
+}
+
static void
register_stock_icons (AnjutaPlugin *plugin)
{
@@ -440,7 +447,7 @@
g_value_init (&value, G_TYPE_OBJECT);
g_value_set_object (&value, cur_doc);
value_added_current_editor (ANJUTA_PLUGIN (sdb_plugin),
- "document_manager_current_editor",
+ "document_manager_current_document",
&value, NULL);
g_value_unset(&value);
}
@@ -1217,6 +1224,145 @@
}
}
+#if 0
+static void
+do_check_offline_files_changed (SymbolDBPlugin *sdb_plugin)
+{
+ GList * prj_elements_list;
+ IAnjutaProjectManager *pm;
+ gboolean parsed = NULL;
+ GPtrArray *to_remove_files = NULL;
+
+ pm = anjuta_shell_get_interface (ANJUTA_PLUGIN (sdb_plugin)->shell,
+ IAnjutaProjectManager, NULL);
+
+ prj_elements_list = ianjuta_project_manager_get_elements (pm,
+ IANJUTA_PROJECT_MANAGER_SOURCE,
+ NULL);
+
+ /* some files may have added/removed editing Makefile.am while
+ * Anjuta was offline. Check this case too.
+ */
+ SymbolDBEngineIterator *it =
+ symbol_db_engine_get_files_for_project (sdb_plugin->sdbe_project,
+ NULL,
+ SYMINFO_FILE_PATH);
+
+ /* files eventually removed to the project with Anjuta offline */
+ to_remove_files = NULL;
+
+ /* something between O(n^2) and O(n log n). Totally inefficient,
+ * in particular for big-sized projects. Are we really sure we want
+ * this? The only hope is that both the lists come ordered.
+ */
+ if (it != NULL && symbol_db_engine_iterator_get_n_items (it) > 0)
+ {
+ parsed = TRUE;
+ do {
+ SymbolDBEngineIteratorNode *dbin;
+ GList *link;
+ gchar *full_path;
+ gchar *full_uri;
+
+ dbin = (SymbolDBEngineIteratorNode *) it;
+
+ const gchar * db_file =
+ symbol_db_engine_iterator_node_get_symbol_extra_string (dbin,
+ SYMINFO_FILE_PATH);
+ full_path = symbol_db_engine_get_full_local_path (sdb_plugin->sdbe_project,
+ db_file);
+ full_uri = gnome_vfs_get_uri_from_local_path (full_path);
+
+ if ((link = g_list_find_custom (prj_elements_list, full_uri,
+ g_list_compare)) == NULL)
+ {
+ if (to_remove_files == NULL)
+ to_remove_files = g_ptr_array_new ();
+
+ DEBUG_PRINT ("to_remove_files, added %s", full_path);
+ g_ptr_array_add (to_remove_files, full_path);
+ /* no need to free full_path now */
+ }
+ else
+ {
+ /* go and remove the entry from the project_entries, so
+ * to skip an iteration next time */
+ prj_elements_list = g_list_delete_link (prj_elements_list,
+ link);
+ DEBUG_PRINT ("deleted, removed %s. Still length %d", full_path,
+ g_list_length (prj_elements_list));
+ g_free (full_path);
+ }
+ g_free (full_uri);
+ } while (symbol_db_engine_iterator_move_next (it));
+ }
+
+ /* good, in prj_elements_list we'll have the files to add
+ * from project */
+ if (to_remove_files != NULL)
+ {
+ DEBUG_PRINT ("if (to_remove_files != NULL)");
+ symbol_db_engine_remove_files (sdb_plugin->sdbe_project,
+ sdb_plugin->project_opened,
+ to_remove_files);
+ g_ptr_array_foreach (to_remove_files, (GFunc)g_free, NULL);
+ g_ptr_array_free (to_remove_files, TRUE);
+ to_remove_files = NULL;
+ }
+
+ /* add those left files */
+ if (prj_elements_list != NULL && it != NULL && parsed == TRUE)
+ {
+ DEBUG_PRINT ("if (prj_elements_list != NULL)");
+ GPtrArray *to_add_files = g_ptr_array_new ();
+ GPtrArray *languages_array = g_ptr_array_new();
+ GList *item = prj_elements_list;
+ IAnjutaLanguage* lang_manager;
+
+ lang_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN(sdb_plugin)->shell,
+ IAnjutaLanguage, NULL);
+
+ while (item != NULL)
+ {
+ const gchar* lang;
+ gchar *full_path;
+ IAnjutaLanguageId lang_id;
+ const gchar *file_mime;
+
+ full_path = gnome_vfs_get_local_path_from_uri (item->data);
+ file_mime = gnome_vfs_get_mime_type_for_name (full_path);
+ lang_id = ianjuta_language_get_from_mime_type (lang_manager,
+ file_mime, NULL);
+ /* No supported language... */
+ if (!lang_id)
+ {
+ g_free (full_path);
+ continue;
+ }
+ lang = ianjuta_language_get_name (lang_manager, lang_id, NULL);
+ g_ptr_array_add (languages_array, g_strdup (lang));
+
+
+ g_ptr_array_add (to_add_files, full_path);
+
+ item = item->next;
+ }
+
+ symbol_db_engine_add_new_files (sdb_plugin->sdbe_project,
+ sdb_plugin->project_opened,
+ to_add_files,
+ languages_array,
+ TRUE);
+
+ g_ptr_array_foreach (languages_array, (GFunc)g_free, NULL);
+ g_ptr_array_free (languages_array, TRUE);
+
+ g_ptr_array_foreach (to_add_files, (GFunc)g_free, NULL);
+ g_ptr_array_free (to_add_files, TRUE);
+ }
+}
+#endif
+
/* add a new project */
static void
on_project_root_added (AnjutaPlugin *plugin, const gchar *name,
@@ -1244,13 +1390,11 @@
if (parallel_scan == TRUE)
{
- DEBUG_PRINT ("go with parallel scan");
/* we simulate a project-import-end signal received */
on_received_project_import_end (sdb_plugin, sdb_plugin);
}
else
{
- DEBUG_PRINT ("connect to a project-import-end signal");
g_signal_connect (G_OBJECT (sdb_plugin),
"project-import-end",
G_CALLBACK (on_received_project_import_end),
@@ -1320,22 +1464,29 @@
sdb_plugin->project_opened);
}
- /* we need an import */
+ /*
+ * we need an initial import
+ */
if (needs_sources_scan == TRUE)
{
DEBUG_PRINT ("Symbol-DB: importing sources...");
do_import_project_sources (plugin, pm, root_dir);
}
- else /* no import needed. But we may have aborted the scan of sources ..*/
+ else
{
+ /*
+ * no import needed. But we may have aborted the scan of sources ..
+ */
+
GPtrArray *sources_array = NULL;
sources_array =
symbol_db_engine_get_files_with_zero_symbols (sdb_plugin->sdbe_project);
if (sources_array != NULL && sources_array->len > 0)
- {
- /* if we're importing first shut off the signal receiving.
+ {
+ /*
+ * if we're importing first shut off the signal receiving.
* We'll re-enable that on scan-end
*/
symbol_db_view_locals_recv_signals_from_engine (
@@ -1355,6 +1506,12 @@
g_ptr_array_free (sources_array, TRUE);
}
+
+ /* check for offline changes */
+ /* FIXME */
+ /*do_check_offline_files_changed (sdb_plugin);*/
+
+
/* Update the symbols */
symbol_db_engine_update_project_symbols (sdb_plugin->sdbe_project,
root_dir);
@@ -2072,11 +2229,6 @@
iface->get_symbol_by_id = isymbol_manager_get_symbol_by_id;
}
-static gint
-g_list_compare (gconstpointer a, gconstpointer b)
-{
- return strcmp ((const gchar*)a, (const gchar*)b);
-}
static void
on_prefs_package_add (SymbolDBPrefs *sdbp, const gchar *package,
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 Sun Sep 14 21:07:54 2008
@@ -118,9 +118,9 @@
g_return_val_if_fail (dbin != NULL, NULL);
priv = dbin->priv;
-
+
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;
}
@@ -263,10 +263,9 @@
symbol_db_engine_iterator_node_set_data (SymbolDBEngineIteratorNode *dbin,
const GdaDataModelIter *data)
{
- g_return_if_fail (dbin != NULL);
- g_return_if_fail (SYMBOL_IS_DB_ENGINE_ITERATOR_NODE (dbin));
-
SymbolDBEngineIteratorNodePriv *priv;
+ g_return_if_fail (dbin != NULL);
+ g_return_if_fail (data != NULL);
priv = dbin->priv;
priv->data_iter = GDA_DATA_MODEL_ITER (data);
Modified: trunk/plugins/symbol-db/symbol-db-engine-iterator.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-engine-iterator.c (original)
+++ trunk/plugins/symbol-db/symbol-db-engine-iterator.c Sun Sep 14 21:07:54 2008
@@ -86,14 +86,13 @@
SymbolDBEngineIteratorPriv *priv;
g_return_val_if_fail (model != NULL, NULL);
-
+
dbi = g_object_new (SYMBOL_TYPE_DB_ENGINE_ITERATOR, NULL);
-
priv = dbi->priv;
priv->data_model = model;
- priv->data_iter = gda_data_model_create_iter (model);
-
+ priv->data_iter = gda_data_model_create_iter (model);
+
/* because gda_data_model_get_n_rows () could be cpu-intensive, we'll
* proxy this value, e.g. it's calculated if it is really needed */
priv->total_rows = -1;
@@ -101,17 +100,17 @@
/* to avoid calling everytime this function when we want to use the IteratorNode,
* just do it now.
*/
- symbol_db_engine_iterator_first (dbi);
-
+ if (symbol_db_engine_iterator_first (dbi) == FALSE)
+ {
+ g_warning ("symbol_db_engine_iterator_new (): cannot set iter to first row");
+ }
+
/* set the data_iter on the base class */
symbol_db_engine_iterator_node_set_data (SYMBOL_DB_ENGINE_ITERATOR_NODE (dbi),
priv->data_iter);
-
+
symbol_db_engine_iterator_node_set_conversion_hash (SYMBOL_DB_ENGINE_ITERATOR_NODE (dbi),
sym_type_conversion_hash);
-
-
- ianjuta_iterable_first (IANJUTA_ITERABLE (dbi), NULL);
return dbi;
}
Modified: trunk/plugins/symbol-db/symbol-db-engine.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-engine.c (original)
+++ trunk/plugins/symbol-db/symbol-db-engine.c Sun Sep 14 21:07:54 2008
@@ -228,6 +228,7 @@
DYN_PREP_QUERY_FIND_SYMBOL_BY_NAME_PATTERN_FILTERED,
DYN_PREP_QUERY_GET_SCOPE_MEMBERS_BY_SYMBOL_ID,
DYN_PREP_QUERY_GET_SCOPE_MEMBERS_BY_SYMBOL_ID_FILTERED,
+ DYN_PREP_QUERY_GET_FILES_FOR_PROJECT,
DYN_PREP_QUERY_COUNT
} dyn_query_type;
@@ -359,6 +360,7 @@
} UpdateFileSymbolsData;
+
static GObjectClass *parent_class = NULL;
/* some forward declarations */
@@ -376,7 +378,7 @@
gpointer orig_key = NULL;
gpointer value = NULL;
- /* avoid lazy initialization may gain some cpu cycles. Just lookup here. */
+ /* avoiding lazy initialization may gain some cpu cycles. Just lookup here. */
if (g_hash_table_lookup_extended (hash_table,
lookup,
&orig_key,
@@ -720,10 +722,11 @@
dyn_node->query_str = g_strdup (sql);
+/*
DEBUG_PRINT ("inserting child into main_gtree's gtree child, "
"other_parameters %d, sym_info %d, dyn_node %p",
other_parameters, sym_info, dyn_node);
-
+*/
/* insert the dyn_node into child_gtree, then child_gtree into main_gtree */
g_tree_insert (child_gtree, (gpointer)other_parameters, dyn_node);
@@ -872,7 +875,7 @@
"from pquery!\n");
return -1;
}
- gda_holder_set_value (param, param_value);
+ gda_holder_set_value (param, param_value, NULL);
/* execute the query with parametes just set */
data_model = gda_connection_statement_execute_select (priv->db_connection,
@@ -888,7 +891,7 @@
}
/* get and parse the results. */
- num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0);
+ num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0, NULL);
table_id = g_value_get_int (num);
g_object_unref (data_model);
@@ -937,7 +940,7 @@
param_key1, param_key2);
return -1;
}
- gda_holder_set_value (param, value1);
+ gda_holder_set_value (param, value1, NULL);
/* ...and the second one */
if ((param = gda_set_get_holder ((GdaSet*)plist, param_key2)) == NULL)
@@ -947,7 +950,7 @@
param_key1, param_key2);
return -1;
}
- gda_holder_set_value (param, value2);
+ gda_holder_set_value (param, value2, NULL);
/* execute the query with parametes just set */
data_model = gda_connection_statement_execute_select (priv->db_connection,
@@ -963,7 +966,7 @@
}
/* get and parse the results. */
- num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0);
+ num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0, NULL);
table_id = g_value_get_int (num);
g_object_unref (data_model);
@@ -1006,7 +1009,7 @@
"from pquery!\n");
return -1;
}
- gda_holder_set_value (param, value1);
+ gda_holder_set_value (param, value1, NULL);
/* ...and the second one */
@@ -1017,7 +1020,7 @@
param_key1, param_key2);
return -1;
}
- gda_holder_set_value (param, value2);
+ gda_holder_set_value (param, value2, NULL);
/* ...and the third one */
if ((param = gda_set_get_holder ((GdaSet*)plist, param_key3)) == NULL)
@@ -1027,7 +1030,7 @@
param_key1, param_key3);
return -1;
}
- gda_holder_set_value (param, value3);
+ gda_holder_set_value (param, value3, NULL);
/* execute the query with parametes just set */
data_model = gda_connection_statement_execute_select (priv->db_connection,
@@ -1043,7 +1046,7 @@
}
/* get and parse the results. */
- num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0);
+ num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0, NULL);
table_id = g_value_get_int (num);
g_object_unref (data_model);
@@ -1087,7 +1090,7 @@
"from pquery!\n");
return -1;
}
- gda_holder_set_value (param, value1);
+ gda_holder_set_value (param, value1, NULL);
/* ...and the second one */
@@ -1097,7 +1100,7 @@
"param is NULL from pquery!");
return -1;
}
- gda_holder_set_value (param, value2);
+ gda_holder_set_value (param, value2, NULL);
/* ...and the third one */
if ((param = gda_set_get_holder ((GdaSet*)plist, param_key3)) == NULL)
@@ -1106,7 +1109,7 @@
"param is NULL from pquery!");
return -1;
}
- gda_holder_set_value (param, value3);
+ gda_holder_set_value (param, value3, NULL);
/* ...and the fourth one */
if ((param = gda_set_get_holder ((GdaSet*)plist, param_key4)) == NULL)
@@ -1115,7 +1118,7 @@
"param is NULL from pquery!");
return -1;
}
- gda_holder_set_value (param, value4);
+ gda_holder_set_value (param, value4, NULL);
/* execute the query with parametes just set */
data_model = gda_connection_statement_execute_select (priv->db_connection,
@@ -1131,7 +1134,7 @@
}
/* get and parse the results. */
- num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0);
+ num = gda_data_model_get_value_at (GDA_DATA_MODEL (data_model), 0, 0, NULL);
table_id = g_value_get_int (num);
g_object_unref (data_model);
@@ -1653,16 +1656,13 @@
output->chars = g_strdup (chars);
output->user_data = user_data;
- if (priv->thread_list_data == NULL)
- priv->thread_list_data = g_queue_new ();
-
g_queue_push_tail (priv->thread_list_data, output);
/* thread monitor */
if (priv->thread_monitor_handler <= 0)
{
priv->thread_monitor_handler =
- g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE,
+ g_timeout_add_full (G_PRIORITY_LOW,
THREADS_MONITOR_TIMEOUT,
sdb_engine_thread_monitor,
user_data,
@@ -1962,6 +1962,9 @@
*/
sdbe->priv->scan_queue = g_async_queue_new ();
+ /* the thread list data */
+ sdbe->priv->thread_list_data = g_queue_new ();
+
/* some signals queues */
sdbe->priv->signals_queue = g_async_queue_new ();
sdbe->priv->updated_symbols_id = g_async_queue_new ();
@@ -2022,7 +2025,7 @@
STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
PREP_QUERY_GET_ALL_FROM_FILE_BY_PROJECT_ID,
- "SELECT file_id, file_path, prj_id, lang_id, analyse_time FROM file "
+ "SELECT file_id, file_path AS db_file_path, prj_id, lang_id, analyse_time FROM file "
"WHERE prj_id = ## /* name:'prjid' type:gint */");
/*
"SELECT * FROM file JOIN project on project_id = prj_id WHERE "\
@@ -2037,7 +2040,7 @@
STATIC_QUERY_POPULATE_INIT_NODE(sdbe->priv->static_query_list,
PREP_QUERY_GET_ALL_FROM_FILE_WHERE_NOT_IN_SYMBOLS,
- "SELECT file_id, file_path FROM file WHERE file_id NOT IN "
+ "SELECT file_id, file_path AS db_file_path FROM file WHERE file_id NOT IN "
"(SELECT file_defined_id FROM symbol)");
/* -- language -- */
@@ -2329,6 +2332,9 @@
DYN_PREP_QUERY_GET_SCOPE_MEMBERS_BY_SYMBOL_ID_FILTERED,
TRUE);
+ DYN_QUERY_POPULATE_INIT_NODE(sdbe->priv->dyn_query_list,
+ DYN_PREP_QUERY_GET_FILES_FOR_PROJECT,
+ TRUE);
/* init cache hashtables */
sdb_engine_init_caches (sdbe);
@@ -2923,7 +2929,7 @@
g_warning ("param is NULL from pquery!\n");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, workspace_name);
+ gda_holder_set_value_str (param, NULL, workspace_name, NULL);
/* execute the query with parametes just set */
if (gda_connection_statement_execute_non_select (priv->db_connection,
@@ -3058,7 +3064,7 @@
g_warning ("param prjname is NULL from pquery!");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, project);
+ gda_holder_set_value_str (param, NULL, project, NULL);
if ((param = gda_set_get_holder ((GdaSet*)plist, "wsid")) == NULL)
{
@@ -3067,7 +3073,7 @@
}
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, wks_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* execute the query with parametes just set */
if (gda_connection_statement_execute_non_select (priv->db_connection,
@@ -3126,7 +3132,7 @@
g_warning ("param langname is NULL from pquery!");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, language);
+ gda_holder_set_value_str (param, NULL, language, NULL);
GError *err = NULL;
/* execute the query with parametes just set */
@@ -3246,7 +3252,7 @@
return FALSE;
}
- gda_holder_set_value_str (param, NULL, relative_path);
+ gda_holder_set_value_str (param, NULL, relative_path, NULL);
/* project id parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "prjid")) == NULL)
@@ -3257,7 +3263,7 @@
}
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, project_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* language id parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "langid")) == NULL)
@@ -3269,7 +3275,7 @@
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, language_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parametes just set */
@@ -3402,7 +3408,7 @@
g_warning ("param type is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, type);
+ gda_holder_set_value_str (param, NULL, type, NULL);
/* type_name parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "typename")) == NULL)
@@ -3410,7 +3416,7 @@
g_warning ("param typename is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, type_name);
+ gda_holder_set_value_str (param, NULL, type_name, NULL);
/* execute the query with parametes just set */
if (gda_connection_statement_execute_non_select (priv->db_connection,
@@ -3506,7 +3512,7 @@
g_warning ("param kindname is NULL from pquery!");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, kind_name);
+ gda_holder_set_value_str (param, NULL, kind_name, NULL);
/* execute the query with parametes just set */
@@ -3590,7 +3596,7 @@
g_warning ("param accesskind is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, access);
+ gda_holder_set_value_str (param, NULL, access, NULL);
/* execute the query with parametes just set */
GError *err = NULL;
@@ -3674,7 +3680,7 @@
g_warning ("param accesskind is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, implementation);
+ gda_holder_set_value_str (param, NULL, implementation, NULL);
/* execute the query with parametes just set */
GError *err = NULL;
@@ -3738,7 +3744,7 @@
}
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, base_symbol_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* symderived id parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "symderived")) == NULL)
@@ -3748,7 +3754,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, derived_symbol_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parametes just set */
@@ -3814,7 +3820,7 @@
g_warning ("param scope is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, scope);
+ gda_holder_set_value_str (param, NULL, scope, NULL);
/* typeid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "typeid")) == NULL)
@@ -3824,7 +3830,7 @@
}
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, type_table_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parameters just set */
@@ -3941,7 +3947,7 @@
}
else
good_tag = TRUE;
-
+
if ((field_class = tagsField (tag_entry, "class")) == NULL)
{
field_class = "";
@@ -3978,7 +3984,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, symbol_referer_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* finherits parameter */
@@ -3987,7 +3993,7 @@
g_warning ("param finherits is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_inherits);
+ gda_holder_set_value_str (param, NULL, field_inherits, NULL);
/* fstruct parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "fstruct")) == NULL)
@@ -3995,7 +4001,7 @@
g_warning ("param fstruct is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_struct);
+ gda_holder_set_value_str (param, NULL, field_struct, NULL);
/* ftyperef parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "ftyperef")) == NULL)
@@ -4003,7 +4009,7 @@
g_warning ("param ftyperef is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_typeref);
+ gda_holder_set_value_str (param, NULL, field_typeref, NULL);
/* fenum parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "fenum")) == NULL)
@@ -4011,7 +4017,7 @@
g_warning ("param fenum is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_enum);
+ gda_holder_set_value_str (param, NULL, field_enum, NULL);
/* funion parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "funion")) == NULL)
@@ -4019,7 +4025,7 @@
g_warning ("param funion is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_union);
+ gda_holder_set_value_str (param, NULL, field_union, NULL);
/* fclass parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "fclass")) == NULL)
@@ -4027,7 +4033,7 @@
g_warning ("param fclass is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_class);
+ gda_holder_set_value_str (param, NULL, field_class, NULL);
/* fnamespace parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "fnamespace")) == NULL)
@@ -4035,7 +4041,7 @@
g_warning ("param fnamespace is NULL from pquery!");
return -1;
}
- gda_holder_set_value_str (param, NULL, field_namespace);
+ gda_holder_set_value_str (param, NULL, field_namespace, NULL);
/* execute the query with parametes just set */
if (gda_connection_statement_execute_non_select (priv->db_connection,
@@ -4152,8 +4158,8 @@
/* if we reach this point we should have a good scope_id.
* Go on with symbol updating.
*/
- value_id2 = gda_data_model_get_value_at_col_name (data, "symbol_referer_id",
- data_row);
+ value_id2 = gda_data_model_get_value_at_column (data, "symbol_referer_id",
+ data_row, NULL);
symbol_referer_id = g_value_get_int (value_id2);
if ((stmt = sdb_engine_get_statement_by_query_id (dbe,
@@ -4179,7 +4185,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, scope_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* symbolid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "symbolid")) == NULL)
@@ -4192,7 +4198,7 @@
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, symbol_referer_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parametes just set */
@@ -4234,6 +4240,7 @@
priv = dbe->priv;
DEBUG_PRINT ("sdb_engine_second_pass_update_scope()");
+
/* temporary unlock. This function may take a while to be completed
* so let other db-task to be executed, so that main thread
* isn't locked up.
@@ -4250,27 +4257,27 @@
GValue *value;
if ((value =
- (GValue *) gda_data_model_get_value_at_col_name (data,
+ (GValue *) gda_data_model_get_value_at_column (data,
"field_class",
- i)) != NULL)
+ i, NULL)) != NULL)
{
sdb_engine_second_pass_update_scope_1 (dbe, data, i, "class",
value);
}
if ((value =
- (GValue *) gda_data_model_get_value_at_col_name (data,
+ (GValue *) gda_data_model_get_value_at_column (data,
"field_struct",
- i)) != NULL)
+ i, NULL)) != NULL)
{
sdb_engine_second_pass_update_scope_1 (dbe, data, i, "struct",
value);
}
if ((value =
- (GValue *) gda_data_model_get_value_at_col_name (data,
+ (GValue *) gda_data_model_get_value_at_column (data,
"field_typeref",
- i)) != NULL)
+ i, NULL)) != NULL)
{
/* this is a "typedef", not a "typeref". */
sdb_engine_second_pass_update_scope_1 (dbe, data, i, "typedef",
@@ -4278,26 +4285,26 @@
}
if ((value =
- (GValue *) gda_data_model_get_value_at_col_name (data,
+ (GValue *) gda_data_model_get_value_at_column (data,
"field_enum",
- i)) != NULL)
+ i, NULL)) != NULL)
{
sdb_engine_second_pass_update_scope_1 (dbe, data, i, "enum", value);
}
if ((value =
- (GValue *) gda_data_model_get_value_at_col_name (data,
+ (GValue *) gda_data_model_get_value_at_column (data,
"field_union",
- i)) != NULL)
+ i, NULL)) != NULL)
{
sdb_engine_second_pass_update_scope_1 (dbe, data, i, "union",
value);
}
if ((value =
- (GValue *) gda_data_model_get_value_at_col_name (data,
+ (GValue *) gda_data_model_get_value_at_column (data,
"field_namespace",
- i)) != NULL)
+ i, NULL)) != NULL)
{
sdb_engine_second_pass_update_scope_1 (dbe, data, i, "namespace",
value);
@@ -4338,8 +4345,8 @@
gchar **inherits_list;
gint j;
- value = gda_data_model_get_value_at_col_name (data,
- "field_inherits", i);
+ value = gda_data_model_get_value_at_column (data,
+ "field_inherits", i, NULL);
inherits = g_value_get_string (value);
/* there can be multiple inheritance. Check that. */
@@ -4390,8 +4397,8 @@
gint tmp_namespace_length;
namespace_value =
- gda_data_model_get_value_at_col_name (data,
- "field_namespace", i);
+ gda_data_model_get_value_at_column (data,
+ "field_namespace", i, NULL);
tmp_namespace = g_value_get_string (namespace_value);
if (tmp_namespace != NULL)
{
@@ -4421,7 +4428,7 @@
* symbol_referer_id field into __tmp_heritage_scope table
*/
if ((value = (GValue *) gda_data_model_get_value_at (data,
- 1, i)) != NULL)
+ 1, i, NULL)) != NULL)
{
derived_klass_id = g_value_get_int (value);
}
@@ -4798,7 +4805,7 @@
}
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, file_defined_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* name parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "name")) == NULL)
@@ -4807,7 +4814,7 @@
gda_value_free (value);
return -1;
}
- gda_holder_set_value_str (param, NULL, name);
+ gda_holder_set_value_str (param, NULL, name, NULL);
/* typeid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "typeid")) == NULL)
@@ -4818,7 +4825,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, type_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
}
else
{
@@ -4845,7 +4852,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, symbol_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
}
/* common params */
@@ -4859,7 +4866,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, file_position);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* isfilescope parameter */
@@ -4871,7 +4878,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, is_file_scope);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* signature parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "signature")) == NULL)
@@ -4880,7 +4887,7 @@
gda_value_free (value);
return -1;
}
- gda_holder_set_value_str (param, NULL, signature);
+ gda_holder_set_value_str (param, NULL, signature, NULL);
/* scopedefinitionid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "scopedefinitionid")) == NULL)
@@ -4891,7 +4898,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, scope_definition_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* scopeid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "scopeid")) == NULL)
@@ -4902,7 +4909,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, scope_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* kindid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "kindid")) == NULL)
@@ -4913,7 +4920,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, kind_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* accesskindid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "accesskindid")) == NULL)
@@ -4924,7 +4931,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, access_kind_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* implementationkindid parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "implementationkindid")) == NULL)
@@ -4935,7 +4942,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, implementation_kind_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* updateflag parameter */
if ((param = gda_set_get_holder ((GdaSet*)plist, "updateflag")) == NULL)
@@ -4946,7 +4953,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, update_flag);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parametes just set */
@@ -5051,7 +5058,7 @@
{
const GValue *val;
gint tmp;
- val = gda_data_model_get_value_at (data_model, 0, i);
+ val = gda_data_model_get_value_at (data_model, 0, i, NULL);
tmp = g_value_get_int (val);
DEBUG_PRINT ("EMITTING symbol-removed");
@@ -5118,7 +5125,7 @@
g_warning ("param filepath is NULL from pquery!");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, file_on_db);
+ gda_holder_set_value_str (param, NULL, file_on_db, NULL);
gda_connection_statement_execute_non_select (priv->db_connection, (GdaStatement*)stmt1,
(GdaSet*)plist1, NULL, NULL);
@@ -5141,7 +5148,7 @@
g_warning ("param filepath is NULL from pquery!");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, file_on_db);
+ gda_holder_set_value_str (param, NULL, file_on_db, NULL);
gda_connection_statement_execute_non_select (priv->db_connection, (GdaStatement*)stmt2,
@@ -5165,7 +5172,7 @@
g_warning ("param filepath is NULL from pquery!");
return FALSE;
}
- gda_holder_set_value_str (param, NULL, file_on_db);
+ gda_holder_set_value_str (param, NULL, file_on_db, NULL);
gda_connection_statement_execute_non_select (priv->db_connection, (GdaStatement*)stmt3,
(GdaSet*)plist3, NULL, NULL);
@@ -5250,7 +5257,7 @@
g_warning ("param prjname is NULL from pquery!");
return;
}
- gda_holder_set_value_str (param, NULL, update_data->project);
+ gda_holder_set_value_str (param, NULL, update_data->project, NULL);
gda_connection_statement_execute_non_select (priv->db_connection,
(GdaStatement*)stmt,
@@ -5486,7 +5493,7 @@
}
gda_value_reset_with_type (value, G_TYPE_INT);
g_value_set_int (value, project_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
/* execute the query with parametes just set */
data_model = gda_connection_statement_execute_select (priv->db_connection,
@@ -5520,8 +5527,8 @@
GnomeVFSHandle *handle;
if ((value =
- gda_data_model_get_value_at_col_name (data_model,
- "file_path", i)) == NULL)
+ gda_data_model_get_value_at_column (data_model,
+ "db_file_path", i, NULL)) == NULL)
{
continue;
}
@@ -5572,8 +5579,8 @@
}
if ((value1 =
- gda_data_model_get_value_at_col_name (data_model,
- "analyse_time", i)) == NULL)
+ gda_data_model_get_value_at_column (data_model,
+ "analyse_time", i, NULL)) == NULL)
{
continue;
}
@@ -5632,7 +5639,7 @@
}
-/* Remove a file, together with its symbols, from a project. */
+/** Remove a file, together with its symbols, from a project. */
gboolean
symbol_db_engine_remove_file (SymbolDBEngine * dbe, const gchar * project,
const gchar * file)
@@ -5641,6 +5648,8 @@
SymbolDBEnginePriv *priv;
g_return_val_if_fail (dbe != NULL, FALSE);
+ g_return_val_if_fail (project != NULL, FALSE);
+ g_return_val_if_fail (file != NULL, FALSE);
priv = dbe->priv;
if (strlen (file) < strlen (priv->project_directory))
@@ -5663,6 +5672,24 @@
return TRUE;
}
+void
+symbol_db_engine_remove_files (SymbolDBEngine * dbe, const gchar * project,
+ const GPtrArray * files)
+{
+ SymbolDBEnginePriv *priv;
+ gint i;
+
+ g_return_if_fail (dbe != NULL);
+ g_return_if_fail (project != NULL);
+ g_return_if_fail (files != NULL);
+ priv = dbe->priv;
+
+ for (i = 0; i < files->len; i++)
+ {
+ symbol_db_engine_remove_file (dbe, project, g_ptr_array_index (files, i));
+ }
+}
+
static void
on_scan_update_buffer_end (SymbolDBEngine * dbe, gpointer data)
@@ -5925,14 +5952,14 @@
return -1;
}
gda_holder_set_value_str (param, NULL,
- (gchar*)g_ptr_array_index (scope_path, i));
+ (gchar*)g_ptr_array_index (scope_path, i), NULL);
if ((param = gda_set_get_holder ((GdaSet*)plist, "scopename")) == NULL)
{
return -1;
}
gda_holder_set_value_str (param, NULL,
- (gchar*)g_ptr_array_index (scope_path, i + 1));
+ (gchar*)g_ptr_array_index (scope_path, i + 1), NULL);
if ((param = gda_set_get_holder ((GdaSet*)plist, "scopeid")) == NULL)
@@ -5941,7 +5968,7 @@
}
value_scope = gda_value_new (G_TYPE_INT);
g_value_set_int (value_scope, final_definition_id);
- gda_holder_set_value (param, value_scope);
+ gda_holder_set_value (param, value_scope, NULL);
gda_value_free (value_scope);
data = gda_connection_statement_execute_select (priv->db_connection,
@@ -5956,7 +5983,7 @@
return -1;
}
- value = gda_data_model_get_value_at (data, 0, 0);
+ value = gda_data_model_get_value_at (data, 0, 0, NULL);
if (G_VALUE_HOLDS (value, G_TYPE_INT))
{
final_definition_id = g_value_get_int (value);
@@ -6032,8 +6059,8 @@
gchar *file_abs_path = NULL;
if ((value =
- gda_data_model_get_value_at_col_name (data_model,
- "file_path", i)) == NULL)
+ gda_data_model_get_value_at_column (data_model,
+ "db_file_path", i, NULL)) == NULL)
{
continue;
}
@@ -6053,6 +6080,59 @@
}
static inline void
+sdb_engine_prepare_file_info_sql (SymbolDBEngine *dbe, GString *info_data,
+ GString *join_data, SymExtraInfo sym_info)
+{
+ if (sym_info & SYMINFO_FILE_PATH ||
+ sym_info & SYMINFO_LANGUAGE ||
+ sym_info & SYMINFO_PROJECT_NAME ||
+ sym_info & SYMINFO_FILE_IGNORE ||
+ sym_info & SYMINFO_FILE_INCLUDE)
+ {
+ info_data = g_string_append (info_data, ",file.file_path AS db_file_path ");
+ join_data = g_string_append (join_data, "LEFT JOIN file ON "
+ "symbol.file_defined_id = file.file_id ");
+ }
+
+ if (sym_info & SYMINFO_LANGUAGE)
+ {
+ info_data = g_string_append (info_data, ",language.language_name "
+ "AS language_name ");
+ join_data = g_string_append (join_data, "LEFT JOIN language ON "
+ "file.lang_id = language.language_id ");
+ }
+
+ if (sym_info & SYMINFO_PROJECT_NAME ||
+ sym_info & SYMINFO_FILE_IGNORE ||
+ sym_info & SYMINFO_FILE_INCLUDE)
+ {
+ info_data = g_string_append (info_data, ",project.project_name AS project_name ");
+ join_data = g_string_append (join_data, "LEFT JOIN project ON "
+ "file.prj_id = project.project_id ");
+ }
+
+ if (sym_info & SYMINFO_FILE_IGNORE)
+ {
+ info_data = g_string_append (info_data, ",file_ignore.file_ignore_type "
+ "AS ignore_type ");
+ join_data = g_string_append (join_data, "LEFT JOIN ext_ignore ON "
+ "ext_ignore.prj_id = project.project_id "
+ "LEFT JOIN file_ignore ON "
+ "ext_ignore.file_ign_id = file_ignore.file_ignore_id ");
+ }
+
+ if (sym_info & SYMINFO_FILE_INCLUDE)
+ {
+ info_data = g_string_append (info_data, ",file_include.file_include_type "
+ "AS file_include_type ");
+ join_data = g_string_append (join_data, "LEFT JOIN ext_include ON "
+ "ext_include.prj_id = project.project_id "
+ "LEFT JOIN file_include ON "
+ "ext_include.file_incl_id = file_include.file_include_id ");
+ }
+}
+
+static inline void
sdb_engine_prepare_symbol_info_sql (SymbolDBEngine *dbe, GString *info_data,
GString *join_data, SymExtraInfo sym_info)
{
@@ -6216,7 +6296,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, child_klass_symbol_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
@@ -6354,7 +6434,7 @@
g_mutex_unlock (priv->mutex);
return NULL;
}
- gda_holder_set_value_str (param, NULL, klass_name);
+ gda_holder_set_value_str (param, NULL, klass_name, NULL);
if (final_definition_id > 0)
{
@@ -6369,7 +6449,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, final_definition_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -6613,7 +6693,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_limit);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -6629,7 +6709,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_offset);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -6642,16 +6722,19 @@
{
gchar *curr_str = g_strdup_printf ("filter%d", i);
param = gda_set_get_holder ((GdaSet*)dyn_node->plist, curr_str);
- gda_holder_set_value_str (param, NULL, g_ptr_array_index (filter_kinds, i));
+ gda_holder_set_value_str (param, NULL, g_ptr_array_index (filter_kinds, i), NULL);
g_free (curr_str);
}
}
+ /*DEBUG_PRINT ("symbol_db_engine_get_global_members_filtered () query_str is %s",
+ dyn_node->query_str);*/
+
/* execute the query with parametes just set */
data = gda_connection_statement_execute_select (priv->db_connection,
(GdaStatement*)dyn_node->stmt,
(GdaSet*)dyn_node->plist, NULL);
-
+
if (!GDA_IS_DATA_MODEL (data) ||
gda_data_model_get_n_rows (GDA_DATA_MODEL (data)) <= 0)
{
@@ -6862,7 +6945,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_limit);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -6878,7 +6961,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_offset);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -6892,7 +6975,7 @@
{
gchar *curr_str = g_strdup_printf ("filter%d", i);
param = gda_set_get_holder ((GdaSet*)dyn_node->plist, curr_str);
- gda_holder_set_value_str (param, NULL, g_ptr_array_index (filter_kinds, i));
+ gda_holder_set_value_str (param, NULL, g_ptr_array_index (filter_kinds, i), NULL);
g_free (curr_str);
}
}
@@ -6907,7 +6990,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, scope_parent_symbol_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parametes just set */
@@ -7060,7 +7143,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_limit);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -7076,7 +7159,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_offset);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -7090,7 +7173,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, scope_parent_symbol_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/*DEBUG_PRINT ("symbol_db_engine_get_scope_members_by_symbol_id (): %s",
@@ -7223,7 +7306,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, final_definition_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
@@ -7338,7 +7421,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, line);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
@@ -7350,7 +7433,7 @@
return NULL;
}
- gda_holder_set_value_str (param, NULL, db_relative_file);
+ gda_holder_set_value_str (param, NULL, db_relative_file, NULL);
/* execute the query with parametes just set */
data = gda_connection_statement_execute_select (priv->db_connection,
@@ -7452,7 +7535,7 @@
return NULL;
}
-/* DEBUG_PRINT ("query for symbol_db_engine_get_file_symbols is %s [filepath: %s]",
+ /*DEBUG_PRINT ("query for symbol_db_engine_get_file_symbols is %s [filepath: %s]",
dyn_node->query_str, file_path);*/
if ((param = gda_set_get_holder ((GdaSet*)dyn_node->plist, "filepath")) == NULL)
@@ -7470,7 +7553,7 @@
return NULL;
}
- gda_holder_set_value_str (param, NULL, relative_path);
+ gda_holder_set_value_str (param, NULL, relative_path, NULL);
g_free (relative_path);
/* execute the query with parametes just set */
@@ -7557,7 +7640,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, sym_id);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
/* execute the query with parametes just set */
@@ -7587,7 +7670,7 @@
/**
* Use this function to find symbols names by patterns like '%foo_func%'
* that will return a family of my_foo_func_1, your_foo_func_2 etc
- * @name must not be NULL.
+ * @pattern must not be NULL.
*/
SymbolDBEngineIterator *
symbol_db_engine_find_symbol_by_name_pattern (SymbolDBEngine *dbe,
@@ -7654,7 +7737,7 @@
return NULL;
}
- gda_holder_set_value_str (param, NULL, pattern);
+ gda_holder_set_value_str (param, NULL, pattern, NULL);
/* execute the query with parametes just set */
data = gda_connection_statement_execute_select (priv->db_connection,
@@ -7746,7 +7829,7 @@
g_mutex_unlock (priv->mutex);
return -1;
}
- gda_holder_set_value_str (param, NULL, db_file);
+ gda_holder_set_value_str (param, NULL, db_file, NULL);
}
/* scoped symbol id */
@@ -7759,7 +7842,7 @@
}
value_scoped = gda_value_new (G_TYPE_INT);
g_value_set_int (value_scoped, scoped_symbol_id);
- gda_holder_set_value (param, value_scoped);
+ gda_holder_set_value (param, value_scoped, NULL);
gda_value_free (value_scoped);
/* execute the query with parametes just set */
@@ -7817,7 +7900,7 @@
node = g_new0 (candidate_node, 1);
/* get the symbol_id from the former 'data' result set */
- tmp_value = gda_data_model_get_value_at (data, 0, i);
+ tmp_value = gda_data_model_get_value_at (data, 0, i, NULL);
node->symbol_id = tmp_value != NULL && G_VALUE_HOLDS_INT (tmp_value)
? g_value_get_int (tmp_value) : -1;
@@ -7831,7 +7914,7 @@
* +---- scoped_symbol_id
*
*/
- tmp_value1 = gda_data_model_get_value_at (data, 4, i);
+ tmp_value1 = gda_data_model_get_value_at (data, 4, i, NULL);
node->scope_id = tmp_value1 != NULL && G_VALUE_HOLDS_INT (tmp_value1)
? g_value_get_int (tmp_value1) : -1;
@@ -7844,7 +7927,7 @@
*/
if (node->scope_id <= 0)
{
- tmp_value1 = gda_data_model_get_value_at (data, 3, i);
+ tmp_value1 = gda_data_model_get_value_at (data, 3, i, NULL);
node->scope_id = tmp_value1 != NULL && G_VALUE_HOLDS_INT (tmp_value1)
? g_value_get_int (tmp_value1) : -1;
}
@@ -7875,7 +7958,7 @@
}
value_scoped = gda_value_new (G_TYPE_INT);
g_value_set_int (value_scoped, scoped_symbol_id);
- gda_holder_set_value (param, value_scoped);
+ gda_holder_set_value (param, value_scoped, NULL);
gda_value_free (value_scoped);
/* we should receive just ONE row. If it's > 1 than we have surely an
@@ -7907,7 +7990,7 @@
const GValue *tmp_value;
gint k;
- tmp_value = gda_data_model_get_value_at (detailed_data, 0, j);
+ tmp_value = gda_data_model_get_value_at (detailed_data, 0, j, NULL);
parent_scope_definition_id = tmp_value != NULL && G_VALUE_HOLDS_INT (tmp_value)
? g_value_get_int (tmp_value) : -1;
@@ -7941,7 +8024,7 @@
}
else
{
- value = gda_data_model_get_value_at (data, 0, 0);
+ value = gda_data_model_get_value_at (data, 0, 0, NULL);
res = value != NULL && G_VALUE_HOLDS_INT (value)
? g_value_get_int (value) : -1;
}
@@ -8274,7 +8357,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_limit);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -8290,7 +8373,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, results_offset);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
}
@@ -8303,7 +8386,7 @@
{
gchar *curr_str = g_strdup_printf ("filter%d", i);
param = gda_set_get_holder ((GdaSet*)dyn_node->plist, curr_str);
- gda_holder_set_value_str (param, NULL, g_ptr_array_index (filter_kinds, i));
+ gda_holder_set_value_str (param, NULL, g_ptr_array_index (filter_kinds, i), NULL);
g_free (curr_str);
}
}
@@ -8318,7 +8401,7 @@
{
gchar *curr_str = g_strdup_printf ("prj_filter%d", i);
param = gda_set_get_holder ((GdaSet*)dyn_node->plist, curr_str);
- gda_holder_set_value_str (param, NULL, item->data);
+ gda_holder_set_value_str (param, NULL, item->data, NULL);
g_free (curr_str);
item = item->next;
@@ -8335,7 +8418,7 @@
value = gda_value_new (G_TYPE_INT);
g_value_set_int (value, !global_symbols_search);
- gda_holder_set_value (param, value);
+ gda_holder_set_value (param, value, NULL);
gda_value_free (value);
@@ -8346,7 +8429,7 @@
return NULL;
}
- gda_holder_set_value_str (param, NULL, pattern);
+ gda_holder_set_value_str (param, NULL, pattern, NULL);
/*DEBUG_PRINT ("symbol_db_engine_find_symbol_by_name_pattern_filtered query: %s",
dyn_node->query_str);*/
@@ -8373,3 +8456,129 @@
priv->sym_type_conversion_hash);
}
+/**
+ * Gets the files of a project.
+ * @param project_name name of project you want to know the files of.
+ * It can be NULL. In that case all the files will be returned.
+ */
+#define DYN_GET_FILES_FOR_PROJECT_EXTRA_PAR_ALL 1
+#define DYN_GET_FILES_FOR_PROJECT_EXTRA_PAR_PROJECT 2
+
+SymbolDBEngineIterator *
+symbol_db_engine_get_files_for_project (SymbolDBEngine *dbe,
+ const gchar *project_name,
+ SymExtraInfo sym_info)
+{
+ SymbolDBEnginePriv *priv;
+ GdaDataModel *data;
+ GString *info_data;
+ GString *join_data;
+ gchar *query_str;
+ GdaHolder *param;
+ const DynChildQueryNode *dyn_node;
+ gint other_parameters;
+
+ g_return_val_if_fail (dbe != NULL, NULL);
+ priv = dbe->priv;
+
+ if (priv->mutex)
+ {
+ g_mutex_lock (priv->mutex);
+ }
+
+ sym_info = sym_info & ~SYMINFO_FILE_PATH;
+ sym_info = sym_info & ~SYMINFO_PROJECT_NAME;
+
+ /* initialize dynamic stuff */
+ other_parameters = 0;
+ dyn_node = NULL;
+
+ if (project_name == NULL)
+ {
+ other_parameters |= DYN_GET_FILES_FOR_PROJECT_EXTRA_PAR_ALL;
+ }
+ else
+ {
+ other_parameters |= DYN_GET_FILES_FOR_PROJECT_EXTRA_PAR_PROJECT;
+ }
+
+ /* info_data contains the stuff after SELECT and befor FROM */
+ info_data = g_string_new ("");
+
+ /* join_data contains the optionals joins to do to retrieve new data on other
+ * tables.
+ */
+ join_data = g_string_new ("");
+
+ /* fill info_data and join data with optional sql */
+ sdb_engine_prepare_file_info_sql (dbe, info_data, join_data, sym_info);
+
+ if ((dyn_node = sdb_engine_get_dyn_query_node_by_id (dbe,
+ DYN_PREP_QUERY_GET_FILES_FOR_PROJECT, sym_info,
+ other_parameters)) == NULL)
+ {
+ if (project_name == NULL)
+ {
+ query_str = g_strdup_printf ("SELECT file.file_path AS db_file_path "
+ "%s FROM file %s ",
+ info_data->str, join_data->str);
+ }
+ else
+ {
+ query_str = g_strdup_printf ("SELECT file.file_path AS db_file_path, "
+ "project.project_name AS project_name "
+ "%s FROM file JOIN project ON file.prj_id = project.project_id %s "
+ "WHERE project.project_name = ## /* name:'prj_name' type:gchararray */",
+ info_data->str, join_data->str);
+
+ }
+
+ dyn_node = sdb_engine_insert_dyn_query_node_by_id (dbe,
+ DYN_PREP_QUERY_GET_FILES_FOR_PROJECT,
+ sym_info, other_parameters,
+ query_str);
+ g_free (query_str);
+ }
+
+ g_string_free (info_data, TRUE);
+ g_string_free (join_data, TRUE);
+
+ /* last check */
+ if (other_parameters & DYN_GET_FILES_FOR_PROJECT_EXTRA_PAR_PROJECT)
+ {
+ if ((param = gda_set_get_holder ((GdaSet*)dyn_node->plist, "prj_name")) == NULL)
+ {
+ if (priv->mutex)
+ g_mutex_unlock (priv->mutex);
+ return NULL;
+ }
+
+ gda_holder_set_value_str (param, NULL, project_name, NULL);
+ }
+
+ /* execute the query with parametes just set */
+ data = gda_connection_statement_execute_select (priv->db_connection,
+ (GdaStatement*)dyn_node->stmt,
+ (GdaSet*)dyn_node->plist, NULL);
+
+ DEBUG_PRINT ("symbol_db_engine_get_files_for_project (): query_str is %s",
+ dyn_node->query_str);
+ DEBUG_PRINT ("symbol_db_engine_get_files_for_project (): data dump \n");
+ gda_data_model_dump (data, stdout);
+
+ if (!GDA_IS_DATA_MODEL (data) ||
+ gda_data_model_get_n_rows (GDA_DATA_MODEL (data)) <= 0)
+ {
+ if (data != NULL)
+ g_object_unref (data);
+
+ if (priv->mutex)
+ g_mutex_unlock (priv->mutex);
+ return NULL;
+ }
+
+ if (priv->mutex)
+ g_mutex_unlock (priv->mutex);
+ return (SymbolDBEngineIterator *)symbol_db_engine_iterator_new (data,
+ priv->sym_type_conversion_hash);
+}
Modified: trunk/plugins/symbol-db/symbol-db-engine.h
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-engine.h (original)
+++ trunk/plugins/symbol-db/symbol-db-engine.h Sun Sep 14 21:07:54 2008
@@ -196,7 +196,7 @@
* Update symbols of the whole project. It scans all file symbols etc.
* If force is true then update forcely all the files.
*/
-gboolean
+gboolean
symbol_db_engine_update_project_symbols (SymbolDBEngine *dbe, const gchar *project);
@@ -205,6 +205,10 @@
symbol_db_engine_remove_file (SymbolDBEngine *dbe, const gchar* project,
const gchar* file);
+void
+symbol_db_engine_remove_files (SymbolDBEngine * dbe, const gchar * project,
+ const GPtrArray * files);
+
/**
* Update symbols of saved files.
* WARNING: files_path and it's contents will be freed on callback.
@@ -420,6 +424,16 @@
gint sym_id,
SymExtraInfo sym_info);
+/**
+ * Gets the files of a project.
+ * @param project_name name of project you want to know the files of.
+ * It can be NULL. In that case all the files will be returned.
+ */
+SymbolDBEngineIterator *
+symbol_db_engine_get_files_for_project (SymbolDBEngine *dbe,
+ const gchar *project_name,
+ SymExtraInfo sym_info);
+
G_END_DECLS
#endif /* _SYMBOL_DB_ENGINE_H_ */
Modified: trunk/plugins/symbol-db/symbol-db-prefs.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-prefs.c (original)
+++ trunk/plugins/symbol-db/symbol-db-prefs.c Sun Sep 14 21:07:54 2008
@@ -89,24 +89,26 @@
G_DEFINE_TYPE (SymbolDBPrefs, sdb_prefs, G_TYPE_OBJECT);
static void
-on_prefs_executable_changed (GtkFileChooser *chooser,
+on_prefs_executable_changed (/*GtkFileChooser *chooser,*/ GtkComboBox *chooser,
gpointer user_data)
{
- gchar *new_file;
+ const gchar *new_file;
SymbolDBPrefs *sdbp;
SymbolDBPrefsPriv *priv;
sdbp = SYMBOL_DB_PREFS (user_data);
priv = sdbp->priv;
- new_file = gtk_file_chooser_get_filename (chooser);
+/* new_file = gtk_file_chooser_get_filename (chooser);*/
+ new_file = gtk_entry_get_text (GTK_ENTRY (chooser));
+
DEBUG_PRINT ("on_prefs_executable_changed (): new executable selected %s",
new_file);
if (new_file != NULL)
{
GtkWidget *fchooser;
fchooser = glade_xml_get_widget (priv->prefs_gxml, CTAGS_PREFS_KEY);
- gtk_widget_set_sensitive (fchooser, TRUE);
+ /*gtk_widget_set_sensitive (fchooser, TRUE);*/
anjuta_preferences_set (priv->prefs, CTAGS_PREFS_KEY,
new_file);
@@ -115,8 +117,6 @@
symbol_db_engine_set_ctags_path (priv->sdbe_project, new_file);
symbol_db_engine_set_ctags_path (priv->sdbe_globals, new_file);
}
-
- g_free (new_file);
}
static void
@@ -418,7 +418,7 @@
fchooser = glade_xml_get_widget (priv->prefs_gxml, CTAGS_PREFS_KEY);
/* we will reactivate it after the listall has been finished */
- gtk_widget_set_sensitive (fchooser, FALSE);
+ /*gtk_widget_set_sensitive (fchooser, FALSE);*/
anjuta_preferences_add_page (priv->prefs,
priv->prefs_gxml,
@@ -434,12 +434,25 @@
}
DEBUG_PRINT ("select ->%s<-", ctags_value);
+
+ /*
+ * GtkFileChooser support disabled here because it was too slow.
+ * Bug #551384 has been filed. Let's see what happens...
+ *
+ */
+
+#if 0
/* FIXME: wtf?! */
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fchooser), ctags_value);
gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (fchooser), ctags_value);
g_signal_connect (G_OBJECT (fchooser), "selection-changed",
G_CALLBACK (on_prefs_executable_changed), sdbp);
+#endif
+
+ g_signal_connect (G_OBJECT (fchooser), "changed",
+ G_CALLBACK (on_prefs_executable_changed), sdbp);
+
priv->prefs_notify_id = anjuta_preferences_notify_add (priv->prefs,
CTAGS_PREFS_KEY,
@@ -492,7 +505,7 @@
/* Create the preferences page */
priv->prefs_gxml = glade_xml_new (GLADE_FILE, GLADE_ROOT, NULL);
}
-
+
/* init GtkListStore */
if (priv->prefs_list_store == NULL)
{
Modified: trunk/plugins/symbol-db/symbol-db-prefs.h
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-prefs.h (original)
+++ trunk/plugins/symbol-db/symbol-db-prefs.h Sun Sep 14 21:07:54 2008
@@ -40,7 +40,7 @@
#include "symbol-db-system.h"
-#define CTAGS_PREFS_KEY "preferences_file:text:/usr/bin/ctags:0:symboldb.ctags"
+#define CTAGS_PREFS_KEY "preferences_entry:text:/usr/bin/ctags:0:symboldb.ctags"
#define PROJECT_AUTOSCAN "preferences_toggle:bool:1:1:symboldb.scan_prj_pkgs"
#define PARALLEL_SCAN "preferences_toggle:bool:1:1:symboldb.parallel_scan"
#define BUFFER_AUTOSCAN "preferences_toggle:bool:1:1:symboldb.buffer_update"
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 Sun Sep 14 21:07:54 2008
@@ -1443,11 +1443,12 @@
/* Removes all rows from tree_store */
gtk_tree_store_clear (store);
+
iterator = symbol_db_engine_get_file_symbols (dbe, filepath,
SYMINFO_SIMPLE |
SYMINFO_ACCESS |
SYMINFO_KIND);
-
+
if (iterator != NULL)
{
do {
Modified: trunk/plugins/symbol-db/symbol-db-view.c
==============================================================================
--- trunk/plugins/symbol-db/symbol-db-view.c (original)
+++ trunk/plugins/symbol-db/symbol-db-view.c Sun Sep 14 21:07:54 2008
@@ -1581,6 +1581,9 @@
sdb_view_load_symbol_pixbufs ();
}
+ /*DEBUG_PRINT ("symbol_db_view_get_pixbuf: node_type %s node_access %s",
+ node_type, node_access);*/
+
g_return_val_if_fail (node_type != NULL, NULL);
/* is there a better/quicker method to retrieve pixbufs? */
@@ -1710,7 +1713,7 @@
iter_node = SYMBOL_DB_ENGINE_ITERATOR_NODE (iterator);
curr_symbol_id = symbol_db_engine_iterator_node_get_symbol_id (iter_node);
-
+
pixbuf = symbol_db_view_get_pixbuf (
symbol_db_engine_iterator_node_get_symbol_extra_string (
iter_node, SYMINFO_KIND),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]