gtranslator r3526 - in trunk: . src



Author: icq
Date: Tue Mar 25 09:48:54 2008
New Revision: 3526
URL: http://svn.gnome.org/viewvc/gtranslator?rev=3526&view=rev

Log:
2008-03-25  Ignacio Casal Quinteiro  <nacho resa gmail com>

        * src/utils.ch:
        * src/prefs-manager-app.c:
        * src/application.c:
        * src/window.c:
        Added config folder to store all config files.
        (Fixed bug #523898).

        * configure.ac:
        Switched to gettext 0.17.



Modified:
   trunk/ChangeLog
   trunk/configure.ac
   trunk/src/application.c
   trunk/src/prefs-manager-app.c
   trunk/src/utils.c
   trunk/src/utils.h
   trunk/src/window.c

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	(original)
+++ trunk/configure.ac	Tue Mar 25 09:48:54 2008
@@ -133,13 +133,13 @@
 AC_SUBST(SC_STATEDIR)
 
 dnl -------------------------------------------------------------------
-dnl Check for gettext >= 0.16.0 - uses it's parser/writer functions
+dnl Check for gettext >= 0.17.0 - uses it's parser/writer functions
 dnl -------------------------------------------------------------------
 AC_CHECK_HEADER([gettext-po.h])
-AC_CHECK_LIB([gettextpo], [po_message_create], [
+AC_CHECK_LIB([gettextpo], [po_message_is_format], [
 	LDFLAGS="$LDFLAGS -lgettextpo"
 ],[
-	AC_MSG_ERROR(Missing or inadequate gettext library. Need at least version 0.14.2)
+	AC_MSG_ERROR(Missing or inadequate gettext library. Need at least version 0.17.0)
 ])
 
 dnl -------------------------------------------------------------------

Modified: trunk/src/application.c
==============================================================================
--- trunk/src/application.c	(original)
+++ trunk/src/application.c	Tue Mar 25 09:48:54 2008
@@ -21,11 +21,13 @@
 #endif
 
 #include "application.h"
+#include "utils.h"
 #include "window.h"
 #include "egg-toolbars-model.h"
 
 #include <glib.h>
 #include <glib-object.h>
+#include <gio/gio.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
@@ -50,16 +52,16 @@
 static gchar *
 get_accel_file (void)
 {
-	const gchar *home;
+	gchar *config;
 
-	home = g_get_home_dir();
+	config = gtranslator_utils_get_user_config_dir ();
 
-	if (home != NULL)
+	if (config != NULL)
 	{
-		return g_build_filename (home,
-					 ".config",
+		return g_build_filename (config,
 					 "gtranslator-accels",
 					 NULL);
+		g_free (config);
 	}
 
 	return NULL;
@@ -112,26 +114,78 @@
 static void
 gtranslator_application_init (GtranslatorApplication *application)
 {
+	gchar *gtranslator_folder;
+	gchar *filename;
+
 	GtranslatorApplicationPrivate * priv;
 	
 	application->priv = GTR_APPLICATION_GET_PRIVATE (application);
 	priv = application->priv;
 	
 	priv->windows = NULL;
+	
+	/*
+	 * Creating config folder
+	 */
+	gtranslator_folder = gtranslator_utils_get_user_config_dir ();
+
+	if (!g_file_test (gtranslator_folder, G_FILE_TEST_IS_DIR))
+	{
+		GFile *file;
+		GError *error = NULL;
+		
+		file = g_file_new_for_path (gtranslator_folder);
+		
+		if (g_file_test (gtranslator_folder, G_FILE_TEST_IS_REGULAR))
+		{
+			if (!g_file_delete (file, NULL, &error))
+			{
+				g_warning ("There was an error deleting the "
+					   "old gtranslator file: %s", error->message);
+				g_error_free (error);
+				g_object_unref (file);
+				gtranslator_application_shutdown (application);
+			}
+		}
+		
+		if (!g_file_make_directory (file, NULL, &error))
+		{
+			g_warning ("There was an error making the gtranslator config directory: %s",
+				   error->message);
+					   
+			g_error_free (error);
+			g_object_unref (file);
+			gtranslator_application_shutdown (application);
+		}
+		
+		g_object_unref (file);
+	}
 
 	priv->toolbars_model = egg_toolbars_model_new ();
+				     
+	priv->toolbars_file = g_build_filename (gtranslator_folder,
+						"gtr-toolbar.xml",
+						NULL);
+						
+	g_warning (priv->toolbars_file);
+
+	filename = g_build_filename (DATADIR,
+				     "gtr-toolbar.xml",
+				     NULL);
 
-	priv->toolbars_file = g_strdup_printf(
-				     "%s/.gtranslator/gtr-toolbar.xml", g_get_home_dir());
+	g_free (gtranslator_folder);
 	
 	egg_toolbars_model_load_names (priv->toolbars_model,
-				       DATADIR"/gtr-toolbar.xml");
+				       filename);
 
 	if (!egg_toolbars_model_load_toolbars (priv->toolbars_model,
-					       priv->toolbars_file)) {
+					       priv->toolbars_file)) 
+	{
 		egg_toolbars_model_load_toolbars (priv->toolbars_model,
-						  DATADIR"/gtr-toolbar.xml");
+						  filename);
 	}
+	
+	g_free (filename);
 
 	egg_toolbars_model_set_flags (priv->toolbars_model, 0,
 				      EGG_TB_MODEL_NOT_REMOVABLE);	
@@ -316,7 +370,9 @@
 	GtkIconSource *	icon_source = gtk_icon_source_new ();
 	gchar *path;
 	
-	path = g_strconcat (PIXMAPSDIR, "/", icon, NULL);
+	path = g_build_filename (PIXMAPSDIR,
+				 icon,
+				 NULL);
 	
 	GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file (path, NULL);
 	if (pixbuf)

Modified: trunk/src/prefs-manager-app.c
==============================================================================
--- trunk/src/prefs-manager-app.c	(original)
+++ trunk/src/prefs-manager-app.c	Tue Mar 25 09:48:54 2008
@@ -34,6 +34,7 @@
 #include "prefs-manager-private.h"
 #include "prefs-manager-app.h"
 #include "application.h"
+#include "utils.h"
 #include "view.h"
 #include "window.h"
 
@@ -71,7 +72,7 @@
 #define GTR_STATE_DEFAULT_CONTENT_PANE_POS	325
 #define GTR_STATE_DEFAULT_COMMENT_PANE_POS	525
 
-#define GTR_STATE_FILE_LOCATION ".config/gtranslator"
+#define GTR_STATE_FILE_NAME "gtranslator.config"
 
 #define GTR_STATE_WINDOW_GROUP "window"
 #define GTR_STATE_WINDOW_STATE "state"
@@ -93,22 +94,17 @@
 
 	if (state_file == NULL)
 	{
-		const gchar *home;
+		gchar *config_folder;
 		gchar *path;
 		GError *err = NULL;
 
 		state_file = g_key_file_new ();
 
-		home = g_get_home_dir ();
-		if (home == NULL)
-		{
-			g_warning ("Could not get HOME directory\n");
-			goto out;
-		}
-
-		path = g_build_filename (home,
-					 GTR_STATE_FILE_LOCATION,
+		config_folder = gtranslator_utils_get_user_config_dir ();
+		path = g_build_filename (config_folder,
+					 GTR_STATE_FILE_NAME,
 					 NULL);
+		g_free (config_folder);
 
 		if (!g_key_file_load_from_file (state_file,
 						path,
@@ -126,7 +122,6 @@
 		g_free (path);
 	}
 
- out:
 	g_return_val_if_fail (state_file != NULL, NULL);
 	return state_file;
 }
@@ -188,7 +183,7 @@
 gtranslator_state_file_sync ()
 {
 	GKeyFile *state_file;
-	const gchar *home;
+	gchar *config_folder;
 	gchar *path;
 	gchar *content;
 	gsize length;
@@ -198,16 +193,11 @@
 	state_file = get_gtranslator_state_file ();
 	g_return_val_if_fail (state_file != NULL, FALSE);
 
-	home = g_get_home_dir ();
-	if (home == NULL)
-	{
-		g_warning ("Could not get HOME directory\n");
-		return ret;
-	}
-
-	path = g_build_filename (home,
-				 GTR_STATE_FILE_LOCATION,
+	config_folder = gtranslator_utils_get_user_config_dir ();
+	path = g_build_filename (config_folder,
+				 GTR_STATE_FILE_NAME,
 				 NULL);
+	g_free (config_folder);
 
 	content = g_key_file_to_data (state_file,
 				      &length,

Modified: trunk/src/utils.c
==============================================================================
--- trunk/src/utils.c	(original)
+++ trunk/src/utils.c	Tue Mar 25 09:48:54 2008
@@ -593,3 +593,11 @@
 	}
 	g_free (command);
 }
+
+gchar *
+gtranslator_utils_get_user_config_dir (void)
+{
+	return g_build_filename (g_get_user_config_dir (),
+				 "gtranslator",
+				 NULL);
+}

Modified: trunk/src/utils.h
==============================================================================
--- trunk/src/utils.h	(original)
+++ trunk/src/utils.h	Tue Mar 25 09:48:54 2008
@@ -64,5 +64,7 @@
 void           gtranslator_utils_help_display         (GtkWindow   *parent,
 						       const gchar *doc_id,
 						       const gchar *file_name);
+						       
+gchar         *gtranslator_utils_get_user_config_dir  (void);
 
 #endif

Modified: trunk/src/window.c
==============================================================================
--- trunk/src/window.c	(original)
+++ trunk/src/window.c	Tue Mar 25 09:48:54 2008
@@ -1331,6 +1331,7 @@
 	gint active_page;
 	GtkWidget *view_menu;
 	gchar *filename;
+	gchar *config_folder;
 	
 	window->priv = GTR_WINDOW_GET_PRIVATE (window);
 	
@@ -1397,12 +1398,16 @@
 	/*
 	 * Loading dock layout
 	 */
-	filename = g_strdup_printf ("%s/.config/gtranslator-layout.xml",
-				    g_get_home_dir());
+	config_folder = gtranslator_utils_get_user_config_dir ();
+	filename = g_build_filename (config_folder,
+				     "gtranslator-layout.xml",
+				     NULL);
+				    
 	gtranslator_window_layout_load (window,
 					filename,
 					NULL);
 	g_free (filename);
+	g_free (config_folder);
 }
 
 static void
@@ -1435,6 +1440,7 @@
 save_panes_state(GtranslatorWindow *window)
 {
 	gchar *filename;
+	gchar *config_folder;
 
         if (gtranslator_prefs_manager_window_size_can_set ())
         	gtranslator_prefs_manager_set_window_size (window->priv->width,
@@ -1443,10 +1449,15 @@
         if (gtranslator_prefs_manager_window_state_can_set ())
 		gtranslator_prefs_manager_set_window_state (window->priv->window_state);
 
-	filename = g_strdup_printf ("%s/.config/gtranslator-layout.xml",
-				    g_get_home_dir());
+	config_folder = gtranslator_utils_get_user_config_dir ();
+	filename = g_build_filename (config_folder,
+				     "gtranslator-layout.xml",
+				     NULL);
         gtranslator_window_layout_save (window,
 					filename, NULL);
+					
+	g_free (filename);
+	g_free (config_folder);
 }
 
 static void



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