[anjuta/sdb-core-trans] symbol-db: removed symbol-db-prefs.[c|h]. Moved code into plugin.c



commit f5da06d1ff8d370f5b6e3fe59297ed3c3e7125ad
Author: Massimo Corà <mcora src gnome org>
Date:   Sat Aug 14 18:22:29 2010 +0200

    symbol-db: removed symbol-db-prefs.[c|h]. Moved code into plugin.c

 plugins/symbol-db/Makefile.am         |    2 -
 plugins/symbol-db/anjuta-symbol-db.ui |  110 +-------------------
 plugins/symbol-db/plugin.c            |   78 +++++++++------
 plugins/symbol-db/plugin.h            |    7 +-
 plugins/symbol-db/symbol-db-prefs.c   |  183 ---------------------------------
 plugins/symbol-db/symbol-db-prefs.h   |   76 --------------
 6 files changed, 54 insertions(+), 402 deletions(-)
---
diff --git a/plugins/symbol-db/Makefile.am b/plugins/symbol-db/Makefile.am
index 13d429b..e7d9cfa 100644
--- a/plugins/symbol-db/Makefile.am
+++ b/plugins/symbol-db/Makefile.am
@@ -58,8 +58,6 @@ libanjuta_symbol_db_la_SOURCES = \
 	readtags.h \
 	symbol-db-system.h \
 	symbol-db-system.c \
-	symbol-db-prefs.h \
-	symbol-db-prefs.c \
 	symbol-db-engine-utils.c \
 	symbol-db-engine-utils.h \
 	symbol-db-engine-priv.h \
diff --git a/plugins/symbol-db/anjuta-symbol-db.ui b/plugins/symbol-db/anjuta-symbol-db.ui
index a63ee22..7c35e9d 100644
--- a/plugins/symbol-db/anjuta-symbol-db.ui
+++ b/plugins/symbol-db/anjuta-symbol-db.ui
@@ -23,30 +23,12 @@
                 <child>
                   <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
                     <child>
                       <placeholder/>
                     </child>
                     <child>
-                      <object class="GtkHBox" id="hbox2">
-                        <property name="visible">True</property>
-                        <child>
-                          <object class="GtkCheckButton" id="preferences_toggle:bool:1:1:symboldb.scan_prj_pkgs">
-                            <property name="label" translatable="yes">Automatically scan project's packages</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="has_tooltip">True</property>
-                            <property name="tooltip_text" translatable="yes">This option enables the default packages required by your opened project, e.g. Glib and GTK+ if you create a GTK+ project (may require more CPU work)</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="position">1</property>
-                      </packing>
+                      <placeholder/>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hbox4">
@@ -85,7 +67,8 @@
                             <property name="draw_indicator">True</property>
                           </object>
                           <packing>
-                            <property name="position">0</property>
+                            <property name="pack_type">end</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
@@ -114,91 +97,6 @@
             <property name="position">0</property>
           </packing>
         </child>
-        <child>
-          <object class="GtkFrame" id="frame2">
-            <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="label_xalign">0</property>
-            <property name="shadow_type">none</property>
-            <child>
-              <object 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>
-                  <object 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">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object 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>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child type="label">
-              <object class="GtkLabel" id="label3">
-                <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="label" translatable="yes">Available API tags</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkFrame" id="frame3">
-            <property name="visible">True</property>
-            <property name="label_xalign">0</property>
-            <property name="shadow_type">none</property>
-            <child>
-              <object class="GtkAlignment" id="alignment3">
-                <property name="visible">True</property>
-                <property name="left_padding">12</property>
-                <child>
-                  <object class="GtkHBox" id="hbox3">
-                    <property name="visible">True</property>
-                    <property name="homogeneous">True</property>
-                    <child>
-                      <object class="GtkProgressBar" id="prefs_progressbar">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="show_text">True</property>
-                        <property name="text" translatable="yes">Checking if package is parseableâ?¦</property>
-                        <property name="ellipsize">end</property>
-                      </object>
-                      <packing>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child type="label_item">
-              <placeholder/>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
       </object>
     </child>
   </object>
diff --git a/plugins/symbol-db/plugin.c b/plugins/symbol-db/plugin.c
index 1b359a7..664b8f1 100644
--- a/plugins/symbol-db/plugin.c
+++ b/plugins/symbol-db/plugin.c
@@ -43,12 +43,17 @@
 
 #include "plugin.h"
 #include "symbol-db-engine.h"
-#include "symbol-db-prefs.h"
 #include "symbol-db-views.h"
 
 #define ICON_FILE "anjuta-symbol-db-plugin-48.png"
 #define UI_FILE PACKAGE_DATA_DIR"/ui/anjuta-symbol-db-plugin.xml"
 
+#define BUILDER_FILE PACKAGE_DATA_DIR"/glade/anjuta-symbol-db.ui"
+#define BUILDER_ROOT "symbol_prefs"
+#define ICON_FILE "anjuta-symbol-db-plugin-48.png"
+#define PREFS_BUFFER_UPDATE "preferences_toggle:bool:1:1:symboldb.buffer_update"
+#define PREFS_PARALLEL_SCAN "preferences_toggle:bool:1:1:symboldb.parallel_scan"
+
 #define TIMEOUT_INTERVAL_SYMBOLS_UPDATE		10
 #define TIMEOUT_SECONDS_AFTER_LAST_TIP		5
 
@@ -503,7 +508,7 @@ on_editor_buffer_symbol_update_scan_end (SymbolDBEngine *dbe, gint process_id,
 		}	
 
 		/* add a default timeout to the updating of buffer symbols */	
-		tags_update = anjuta_preferences_get_bool (sdb_plugin->prefs, BUFFER_AUTOSCAN);
+		tags_update = anjuta_preferences_get_bool (sdb_plugin->prefs, PREFS_BUFFER_UPDATE);
 		
 		if (tags_update)
 		{
@@ -680,7 +685,7 @@ value_added_current_editor (AnjutaPlugin *plugin, const char *name,
 		g_object_set (sdb_plugin->file_model, "file-path", local_path, NULL);
 		
 		/* add a default timeout to the updating of buffer symbols */	
-		tags_update = anjuta_preferences_get_bool (sdb_plugin->prefs, BUFFER_AUTOSCAN);
+		tags_update = anjuta_preferences_get_bool (sdb_plugin->prefs, PREFS_BUFFER_UPDATE);
 				
 		if (tags_update)
 		{
@@ -1571,7 +1576,7 @@ on_session_load (AnjutaShell *shell, AnjutaSessionPhase phase,
 		
 		/* get preferences about the parallel scan */
 		gboolean parallel_scan = anjuta_preferences_get_bool (sdb_plugin->prefs, 
-															 PARALLEL_SCAN); 
+															 PREFS_PARALLEL_SCAN); 
 		
 		if (parallel_scan == TRUE && 
 			symbol_db_engine_is_connected (sdb_plugin->sdbe_globals) == TRUE)
@@ -1862,7 +1867,7 @@ on_scan_end_manager (SymbolDBEngine *dbe, gint process_id,
 			
 			/* get preferences about the parallel scan */
 			gboolean parallel_scan = anjuta_preferences_get_bool (sdb_plugin->prefs, 
-														 PARALLEL_SCAN); 
+														 PREFS_PARALLEL_SCAN); 
 			
 			/* check the system population has a parallel fashion or not. */			 
 			if (parallel_scan == FALSE)
@@ -2069,10 +2074,6 @@ symbol_db_activate (AnjutaPlugin *plugin)
 	
 	g_signal_connect (G_OBJECT (sdb_plugin->sdbe_project), "scan-end",
 				G_CALLBACK (on_isymbol_manager_prj_scan_end), sdb_plugin);
-
-	
-	/* sets preferences to NULL, it'll be instantiated when required. */
-	sdb_plugin->sdbp = NULL;
 	
 	/* Create widgets */
 	sdb_plugin->dbv_main = gtk_vbox_new(FALSE, 5);
@@ -2411,15 +2412,19 @@ symbol_db_class_init (GObjectClass *klass)
 }
 
 static void
-on_prefs_buffer_update_toggled (SymbolDBPrefs *sdbp, guint value, 
-							  gpointer user_data)
+on_prefs_buffer_update_toggled (GtkToggleButton* button,
+							  	gpointer user_data)
 {
 	SymbolDBPlugin *sdb_plugin;
-	DEBUG_PRINT ("on_prefs_buffer_update_toggled () %d", value);
+	gboolean sensitive;
 	
 	sdb_plugin = ANJUTA_PLUGIN_SYMBOL_DB (user_data);
 	
-	if (value == FALSE)
+	sensitive = gtk_toggle_button_get_active (button);
+
+	DEBUG_PRINT ("on_prefs_buffer_update_toggled () %d", sensitive);
+	
+	if (sensitive == FALSE)
 	{
 		if (sdb_plugin->buf_update_timeout_id)
 			g_source_remove (sdb_plugin->buf_update_timeout_id);
@@ -2431,8 +2436,7 @@ on_prefs_buffer_update_toggled (SymbolDBPrefs *sdbp, guint value,
 			sdb_plugin->buf_update_timeout_id = 
 				g_timeout_add_seconds (TIMEOUT_INTERVAL_SYMBOLS_UPDATE,
 									   on_editor_buffer_symbols_update_timeout,
-									   sdb_plugin);			
-		
+									   sdb_plugin);
 	}	
 }
 
@@ -2441,20 +2445,34 @@ ipreferences_merge(IAnjutaPreferences* ipref, AnjutaPreferences* prefs, GError**
 {
 	DEBUG_PRINT ("%s", "SymbolDB: ipreferences_merge");	
 	SymbolDBPlugin *sdb_plugin;
+	GtkWidget *buf_up_widget;
 	
 	sdb_plugin = ANJUTA_PLUGIN_SYMBOL_DB (ipref);
-	
-	if (sdb_plugin->sdbp == NULL)
+
+	if (sdb_plugin->prefs_bxml == NULL)
 	{
-		sdb_plugin->sdbp = symbol_db_prefs_new (sdb_plugin->sdbs, 
-												sdb_plugin->sdbe_project,
-												sdb_plugin->sdbe_globals,
-												prefs);
-		
-		g_signal_connect (G_OBJECT (sdb_plugin->sdbp), "buffer-update-toggled",
-						  G_CALLBACK (on_prefs_buffer_update_toggled),
-						  sdb_plugin);				
+		GError* error = NULL;
+		/* Create the preferences page */
+		sdb_plugin->prefs_bxml = gtk_builder_new ();
+		if (!gtk_builder_add_from_file (sdb_plugin->prefs_bxml, BUILDER_FILE, &error))
+		{
+			g_warning ("Couldn't load builder file: %s", error->message);
+			g_error_free(error);
+		}		
 	}
+
+	anjuta_preferences_add_from_builder (prefs,
+									 sdb_plugin->prefs_bxml, 
+									 BUILDER_ROOT, 
+									 _("Symbol Database"),  
+									 ICON_FILE);
+
+	buf_up_widget = GTK_WIDGET (gtk_builder_get_object (sdb_plugin->prefs_bxml, 
+	    PREFS_BUFFER_UPDATE));
+	
+	g_signal_connect (buf_up_widget, "toggled",
+					  G_CALLBACK (on_prefs_buffer_update_toggled),
+					  sdb_plugin);
 }
 
 static void
@@ -2463,12 +2481,10 @@ ipreferences_unmerge(IAnjutaPreferences* ipref, AnjutaPreferences* prefs, GError
 	SymbolDBPlugin *sdb_plugin;
 	
 	sdb_plugin = ANJUTA_PLUGIN_SYMBOL_DB (ipref);
-	
-	if (sdb_plugin->sdbp != NULL)
-	{
-		g_object_unref (sdb_plugin->sdbp);
-		sdb_plugin->sdbp = NULL;
-	}
+
+	anjuta_preferences_remove_page(prefs, _("Symbol Database"));
+	g_object_unref (sdb_plugin->prefs_bxml);
+	sdb_plugin->prefs_bxml = NULL;
 }
 
 static void
diff --git a/plugins/symbol-db/plugin.h b/plugins/symbol-db/plugin.h
index fe6aec8..4d1741a 100644
--- a/plugins/symbol-db/plugin.h
+++ b/plugins/symbol-db/plugin.h
@@ -46,7 +46,6 @@ typedef struct _SymbolDBPluginClass SymbolDBPluginClass;
 
 
 #include "symbol-db-system.h"
-#include "symbol-db-prefs.h"
 #include "symbol-db-query.h"
 
 /* default value for ctags executable. User must have it installed. This is a 
@@ -66,6 +65,9 @@ struct _SymbolDBPlugin {
 	GtkActionGroup *popup_action_group;
 	GtkActionGroup *menu_action_group;	
 	gint merge_id;
+
+	/* preferences */
+	GtkBuilder *prefs_bxml;
 	
 	/* editor monitor */
 	guint buf_update_timeout_id;
@@ -93,9 +95,6 @@ struct _SymbolDBPlugin {
 	/* system's population object */
 	SymbolDBSystem *sdbs;
 	
-	/* preferences object */
-	SymbolDBPrefs *sdbp;
-	
 	GtkWidget *dbv_main;					/* symbol main window [gtk_box] */
 	GtkWidget *dbv_notebook;          		/* main notebook */
 	GtkWidget *dbv_hbox;					/* hbox for notebook buttons */



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