anjuta r4072 - in trunk: . libanjuta plugins/symbol-db scripts



Author: jhs
Date: Wed Jul  9 13:14:49 2008
New Revision: 4072
URL: http://svn.gnome.org/viewvc/anjuta?rev=4072&view=rev

Log:
2008-07-09  Johannes Schmid  <jhs gnome org>

	* libanjuta/anjuta-preferences.c (get_property_value_as_string):
	Get the file path from the file-chooser instead of the ui
	
	* plugins/symbol-db/anjuta-symbol-db.glade:
	* plugins/symbol-db/plugin.c (symbol_db_activate):
	* plugins/symbol-db/symbol-db-engine.c (sdb_engine_scan_files_1),
	(symbol_db_engine_new):
	* plugins/symbol-db/symbol-db-engine.h:
	Fixed symbol-db prefs
	
	* scripts/glade2schema.pl:
	Support for \"folder\" and \"file\" preferences
	
	* configure.in: Require latest libgda-4.0

Modified:
   trunk/ChangeLog
   trunk/configure.in
   trunk/libanjuta/anjuta-preferences.c
   trunk/plugins/symbol-db/anjuta-symbol-db.glade
   trunk/plugins/symbol-db/plugin.c
   trunk/plugins/symbol-db/symbol-db-engine.c
   trunk/plugins/symbol-db/symbol-db-engine.h
   trunk/scripts/glade2schema.pl

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Wed Jul  9 13:14:49 2008
@@ -51,7 +51,7 @@
 GTKSOURCEVIEW_GTK_REQUIRED=2.10
 BINUTILS_REQUIRED=2.15.92
 LIBWNCK_REQUIRED=2.12
-GDA_REQUIRED=3.99.1
+GDA_REQUIRED=3.99.3
 
 dnl LIBGTODO_REQUIRED=0.15
 

Modified: trunk/libanjuta/anjuta-preferences.c
==============================================================================
--- trunk/libanjuta/anjuta-preferences.c	(original)
+++ trunk/libanjuta/anjuta-preferences.c	Wed Jul  9 13:14:49 2008
@@ -621,10 +621,7 @@
 		}
 		break;
 	case ANJUTA_PROPERTY_OBJECT_TYPE_FOLDER:
-		uri = gtk_file_chooser_get_uri (
- 				GTK_FILE_CHOOSER (prop->object));
-		text_value = gnome_vfs_get_local_path_from_uri (uri);
-		g_free (uri);
+		text_value = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (prop->object));
 		break;
 	case ANJUTA_PROPERTY_OBJECT_TYPE_FILE:
 		text_value = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (prop->object));

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	Wed Jul  9 13:14:49 2008
@@ -1,7 +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 Mon Jul  7 23:02:54 2008 -->
+<?xml version="1.0"?>
 <glade-interface>
+  <requires-version lib="gtk+" version="2.12"/>
   <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>
     <child>
@@ -37,12 +36,12 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkFileChooserButton" id="preferences_folder:text:/:0:symboldb.root">
+                      <widget class="GtkFileChooserButton" id="preferences_file:text:/usr/bin/ctags:0:symboldb.ctags">
                         <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="preview_widget_active">False</property>
+                        <property name="title" translatable="yes">Choose ctags executable</property>
                       </widget>
                       <packing>
                         <property name="padding">5</property>
@@ -81,73 +80,23 @@
               <widget class="GtkAlignment" id="alignment2">
                 <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="top_padding">2</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkHBox" id="hbox2">
+                  <widget class="GtkScrolledWindow" id="scrolledwindow1">
                     <property name="visible">True</property>
+                    <property name="can_focus">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="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
                     <child>
-                      <widget class="GtkScrolledWindow" id="scrolledwindow1">
+                      <widget class="GtkTreeView" id="tags_treeview">
                         <property name="visible">True</property>
                         <property name="can_focus">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="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property name="shadow_type">GTK_SHADOW_IN</property>
-                        <child>
-                          <widget class="GtkTreeView" id="tags_treeview">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
-                          </widget>
-                        </child>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
                       </widget>
                     </child>
-                    <child>
-                      <widget class="GtkVButtonBox" id="vbuttonbox1">
-                        <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>
-                        <child>
-                          <widget class="GtkButton" id="button1">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">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="label" translatable="yes">button</property>
-                            <property name="response_id">0</property>
-                          </widget>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="button2">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">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="label" translatable="yes">button</property>
-                            <property name="response_id">0</property>
-                          </widget>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkButton" id="button3">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">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="label" translatable="yes">button</property>
-                            <property name="response_id">0</property>
-                          </widget>
-                          <packing>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
                   </widget>
                 </child>
               </widget>

Modified: trunk/plugins/symbol-db/plugin.c
==============================================================================
--- trunk/plugins/symbol-db/plugin.c	(original)
+++ trunk/plugins/symbol-db/plugin.c	Wed Jul  9 13:14:49 2008
@@ -53,8 +53,6 @@
 #define TIMEOUT_INTERVAL_SYMBOLS_UPDATE		10000
 #define TIMEOUT_SECONDS_AFTER_LAST_TIP		5
 
-#define CTAGS_PREFS_KEY		"ctags.executable"
-#define CTAGS_PATH			"/usr/bin/ctags"
 #define CHOOSER_WIDGET		"preferences_folder:text:/:0:symboldb.root"
 
 #define PROJECT_GLOBALS		"/"
@@ -1233,10 +1231,10 @@
 /*	symbol_db->engine_mutex = g_mutex_new ();*/
 	
 	/* create SymbolDBEngine(s) */
-	symbol_db->sdbe_project = symbol_db_engine_new ();
+	symbol_db->sdbe_project = symbol_db_engine_new (plugin);
 	
 	/* the globals one too */
-	symbol_db->sdbe_globals = symbol_db_engine_new ();
+	symbol_db->sdbe_globals = symbol_db_engine_new (plugin);
 	/* open it */
 	anjuta_cache_path = anjuta_util_get_user_cache_file_path (".");
 	symbol_db_engine_open_db (symbol_db->sdbe_globals, 
@@ -1377,10 +1375,7 @@
 	/* Determine session state */
 	g_signal_connect (plugin->shell, "load_session", 
 					  G_CALLBACK (on_session_load), plugin);
-	
-	/* FIXME: get path from preferences */
-	anjuta_util_prog_is_installed ("ctags", TRUE);
-	
+		
 	return TRUE;
 }
 

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	Wed Jul  9 13:14:49 2008
@@ -130,15 +130,14 @@
 
 #define SHARED_MEMORY_PREFIX		"/dev/shm"
 
-// FIXME: detect it by prefs
-#define CTAGS_PATH		"/usr/bin/ctags"
-
 #define THREADS_MONITOR_TIMEOUT			10
 #define THREADS_MAX_CONCURRENT			15
 #define TRIGGER_SIGNALS_DELAY			100
 #define	TRIGGER_MAX_CLOSURE_RETRIES		50
 #define	THREAD_MAX_CLOSURE_RETRIES		20
 
+#define CTAGS_PREFS_KEY		"symboldb.ctags"
+
 enum {
 	DO_UPDATE_SYMS = 1,
 	DO_UPDATE_SYMS_AND_EXIT,
@@ -274,6 +273,8 @@
 
 struct _SymbolDBEnginePriv
 {
+	AnjutaPlugin* plugin;
+	
 	GdaConnection *db_connection;
 	GdaSqlParser *sql_parser;
 	gchar *db_directory;
@@ -1494,6 +1495,8 @@
 {
 	SymbolDBEnginePriv *priv;
 	gint i;
+	gchar* ctags_path;
+	AnjutaPreferences* prefs;
 	
 	g_return_val_if_fail (dbe != NULL, FALSE);
 	g_return_val_if_fail (files_list != NULL, FALSE);
@@ -1502,8 +1505,14 @@
 		return FALSE;
 	
 	/* Check if ctags is really installed */
-	if (!anjuta_util_prog_is_installed (CTAGS_PATH, TRUE))
+	prefs = anjuta_shell_get_preferences (dbe->priv->plugin->shell,
+										  NULL);
+	ctags_path = anjuta_preferences_get (prefs, CTAGS_PREFS_KEY); 
+	if (!anjuta_util_prog_is_installed (ctags_path, TRUE))
+	{
+		g_free (ctags_path);
 		return FALSE;
+	}
 	
 	/* start process in server mode */
 	priv = dbe->priv;
@@ -1511,6 +1520,7 @@
 	if (real_files_list != NULL && (files_list->len != real_files_list->len)) 
 	{
 		g_warning ("no matched size between real_files_list and files_list");
+		g_free (ctags_path);
 		return FALSE;
 	}
 	
@@ -1530,13 +1540,14 @@
 
 		exe_string = g_strdup_printf ("%s --fields=afmiKlnsStz --c++-kinds=+p "
 								  "--filter=yes --filter-terminator='"CTAGS_MARKER"'",
-								  CTAGS_PATH);
+								  ctags_path);
 		
 		anjuta_launcher_execute (priv->ctags_launcher,
 								 exe_string, sdb_engine_ctags_output_callback_1, 
 								 dbe);
 		g_free (exe_string);
 	}
+	g_free (ctags_path);
 	
 	/* what about the scan_queue? is it initialized? It will contain mainly 
 	 * ints that refers to the force_update status.
@@ -2257,7 +2268,7 @@
 }
 
 SymbolDBEngine *
-symbol_db_engine_new (void)
+symbol_db_engine_new (AnjutaPlugin* plugin)
 {
 	SymbolDBEngine *sdbe;
 	SymbolDBEnginePriv *priv;
@@ -2266,6 +2277,7 @@
 	
 	priv = sdbe->priv;
 	priv->mutex = g_mutex_new ();
+	priv->plugin = plugin;
 	return sdbe;
 }
 

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	Wed Jul  9 13:14:49 2008
@@ -28,6 +28,7 @@
 #include <glib-object.h>
 #include <glib.h>
 #include <libanjuta/interfaces/ianjuta-symbol.h>
+#include <libanjuta/anjuta-plugin.h>
 #include "symbol-db-engine-iterator.h"
 
 G_BEGIN_DECLS
@@ -82,7 +83,7 @@
 GType sdb_engine_get_type (void) G_GNUC_CONST;
 
 
-SymbolDBEngine* symbol_db_engine_new (void);
+SymbolDBEngine* symbol_db_engine_new (AnjutaPlugin* plugin);
 
 
 /**

Modified: trunk/scripts/glade2schema.pl
==============================================================================
--- trunk/scripts/glade2schema.pl	(original)
+++ trunk/scripts/glade2schema.pl	Wed Jul  9 13:14:49 2008
@@ -9,7 +9,9 @@
 	"text" => "string",
 	"float" => "float",
 	"color" => "string",
-	"font" => "string"
+	"font" => "string",
+	"folder" => "string",
+	"file" => "string"
 );
 
 %boolean = (
@@ -34,7 +36,7 @@
 	my $key = shift;
 	if ($key =~ /widget/) {
 		my $k = $_{"id"};
-		if ($k =~ /(preferences_color|entry|font|spin|text|toggle|menu):(.*):(.*):(\d):(.*)/) {	
+		if ($k =~ /(preferences_color|entry|font|spin|text|toggle|menu|folder|file):(.*):(.*):(\d):(.*)/) {	
 			
 			my $type = $2;
 			my $default = $3;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]