Move config file to XDG_CONFIG_DIR and cover art and db to XDG_CACHE_DIR.
authorQball Cow <qball@sarine.nl>
Sat, 31 Oct 2009 16:15:14 +0000 (17:15 +0100)
committerQball Cow <qball@sarine.nl>
Sat, 31 Oct 2009 16:15:14 +0000 (17:15 +0100)
src/gmpc-profiles.gob
src/main.c
src/metadata-cache.c
src/metadata.c
src/metadata.h
src/misc.c

index cc9cebb..bef89bc 100644 (file)
@@ -140,31 +140,27 @@ class Gmpc:Profiles from G:Object
    * */
   init(self)
   {
-    /**
-     * Get Profile
-     */
-    gchar *url = cfg_get_single_value_as_string(config, "connection", "profile-file");
-    if(!url)
-    {
-         url = gmpc_get_user_path("profiles.cfg");
-      cfg_set_single_value_as_string(config, "connection", "profile-file",url);
-    }
-    self->_priv->profiles = cfg_open(url);
-    if(self->_priv->profiles == NULL)
-    {
+      gchar *url;
       /**
-       * Show gtk error message and quit 
+       * Get Profile
        */
-      debug_printf(DEBUG_ERROR,"Failed to save/load Profile file:\n%s\n",url);
-      abort();
-    }
-    g_free(url);
-    self_load_from_config(self);
-    if(self->_priv->num_profiles == 0)
-    {
-      self_add_default(self);
+      url = gmpc_get_user_path("profiles.cfg");
+      self->_priv->profiles = cfg_open(url);
+      if(self->_priv->profiles == NULL)
+      {
+          /**
+           * Show gtk error message and quit 
+           */
+          debug_printf(DEBUG_ERROR,"Failed to save/load Profile file:\n%s\n",url);
+          abort();
+      }
+      g_free(url);
       self_load_from_config(self);
-    }
+      if(self->_priv->num_profiles == 0)
+      {
+          self_add_default(self);
+          self_load_from_config(self);
+      }
   }
   /**
    * Add default values
index 2d545f1..3c13495 100644 (file)
 #include "browsers/playlist3-tag2-browser.h"
 #include "browsers/playlist3-current-playlist-browser.h"
 
-/* vala */
-/*#include "vala/gmpc-easy-command.h"
-#include "vala/gmpc-test-plugin.h"
-#include "vala/gmpc-metadata-browser2.h"
-#include "vala/gmpc-metadata-prefetcher.h"
-#include "vala/gmpc-database-update-tracker.h"
-#include "vala/gmpc-paned-size-group.h"
-#include "vala/gmpc-nowplaying2.h"
-*/
 #include "gmpc-mpddata-model-playlist.h"
 #include "metadata-cache.h"
 #include "bug-information.h"
@@ -155,6 +146,7 @@ void send_password(void);
  * Set paths
  */
 static void create_gmpc_paths(void);
+static void move_old_gmpc_data(void);
 
 void print_version(void);
 
@@ -457,6 +449,7 @@ int main(int argc, char **argv)
      * Call create_gmpc_paths();
      * This function checks if the path needed path are available, if not, create them
      */
+       move_old_gmpc_data();
        create_gmpc_paths();
        TEC("Check version and create paths");
 
@@ -1347,15 +1340,53 @@ void show_error_message(const gchar * string, const int block)
        }
 }
 
-static void create_gmpc_paths(void)
+
+static void move_old_gmpc_data(void)
 {
-       /**
-        * Create needed directories for mpd.
-        */
+       gchar *url;
+       gchar *old = g_get_home_dir();
+       gchar *path;
 
-       /** create path */
-       gchar *url = gmpc_get_user_path(NULL);
+       url =  gmpc_get_user_path(NULL);
+       if (!g_file_test(url, G_FILE_TEST_EXISTS)) {
+               path = g_build_filename(old, ".gmpc", NULL);
+               if(g_file_test(path, G_FILE_TEST_IS_DIR)) {
+                       GDir *dir;
+                       gchar *iter;
+                       /* Create the directory */
+                       create_gmpc_paths();
+                       dir = g_dir_open(path, 0, NULL);
+                       if(dir){
+                               while((iter = g_dir_read_name(dir)) != NULL)
+                               {
+                                       gchar *dest_path = g_build_filename(url, iter, NULL);
+                                       gchar *src_path = g_build_filename(path, iter, NULL);
+                                       printf("move %s %s\n", src_path, dest_path);
+                                       g_rename(src_path, dest_path);
+                                       g_free(src_path); g_free(dest_path);
+                               }
+                               g_dir_close(dir);
+                       }
+               }
+               g_free(path);
+       }
+       g_free(url);
 
+       url =  gmpc_get_covers_path("covers.sql");
+       if (!g_file_test(url, G_FILE_TEST_EXISTS)) {
+               path = g_build_filename(old, ".covers","covers.sql", NULL);
+               if(g_file_test(path, G_FILE_TEST_EXISTS)) {
+                       /* Create the directory */
+                       create_gmpc_paths();
+                       printf("move %s %s\n",path,url);
+                       g_rename(path,url);
+               }
+               g_free(path);
+       }
+}
+
+static void create_directory(gchar *url)
+{
        /**
         * Check if ~/.gmpc/ exists
         * If not try to create it.
@@ -1376,6 +1407,21 @@ static void create_gmpc_paths(void)
        } else {
                g_log(LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s exist and is directory", url);
        }
+}
+
+static void create_gmpc_paths(void)
+{
+       /**
+        * Create needed directories for mpd.
+        */
+
+       /** create path */
+       gchar *url = gmpc_get_user_path(NULL);
+       create_directory(url);
+       q_free(url);
+
+       url = gmpc_get_covers_path(NULL);
+       create_directory(url);
        /* Free the path */
        q_free(url);
 }
index 8356962..8f0405c 100644 (file)
@@ -581,15 +581,7 @@ void metadata_cache_init(void)
        int ret;
        unsigned i;
        gboolean database_valid = FALSE;
-       gchar *url = gmpc_get_covers_path(NULL);
-       if(!g_file_test(url,G_FILE_TEST_IS_DIR)){
-               if(g_mkdir(url, 0700)<0){
-                       g_log(MDC_LOG_DOMAIN, G_LOG_LEVEL_ERROR, "Cannot create directory %s\n", url);
-               }
-       }
-       q_free(url);
-
-       url = gmpc_get_covers_path("covers.sql");
+       gchar *url = gmpc_get_covers_path("covers.sql");
        do{
                ret = sqlite3_open(url, &metadata_db);
                if (ret != SQLITE_OK)
index 53e0260..61c1d26 100644 (file)
@@ -942,9 +942,10 @@ gchar * gmpc_get_metadata_filename(MetaDataType  type, mpd_Song *song, char *ext
 {
        gchar *retv= NULL;
        /* home dir */
-       const gchar *homedir = g_get_home_dir();
-       g_assert(song->artist != NULL);
+       gchar *homedir = NULL;  g_assert(song->artist != NULL);
        g_assert(type < META_QUERY_DATA_TYPES); 
+       homedir = g_get_user_cache_dir();
+
        {
                GError *error = NULL;
                gchar *filename = NULL, *dirname = NULL;
@@ -980,7 +981,7 @@ gchar * gmpc_get_metadata_filename(MetaDataType  type, mpd_Song *song, char *ext
                        dirname = g_strdup("invalid");
                }
                dirname = strip_invalid_chars(dirname);
-               retv = g_build_path(G_DIR_SEPARATOR_S, homedir,METADATA_DIR, dirname,NULL);
+               retv = g_build_path(G_DIR_SEPARATOR_S, homedir,"gmpc","metadata", dirname,NULL);
                if(g_file_test(retv, G_FILE_TEST_EXISTS) == FALSE) {
                        if(g_mkdir_with_parents(retv, 0755) < 0) {
                                g_error("Failed to create: %s\n", retv);
@@ -1016,10 +1017,11 @@ gchar * gmpc_get_metadata_filename(MetaDataType  type, mpd_Song *song, char *ext
                        g_free(temp);
                }
                filename = strip_invalid_chars(filename);
-               retv = g_build_path(G_DIR_SEPARATOR_S, homedir,METADATA_DIR, dirname,filename,NULL);
+               retv = g_build_path(G_DIR_SEPARATOR_S, homedir,"gmpc", "metadata", dirname,filename,NULL);
                if(filename) g_free(filename);
                if(dirname) g_free(dirname);
        }
+       g_free(homedir);
        return retv;
 }
 static void metadata_pref_priority_changed(GtkCellRenderer *renderer, char *path, char *new_text, GtkListStore *store)
index b9dab85..6b97964 100644 (file)
@@ -140,7 +140,6 @@ void meta_data_destroy(void);
 MetaDataResult meta_data_get_path(mpd_Song *tsong, MetaDataType type, MetaData **met,MetaDataCallback callback, gpointer data);
 
 
-#define METADATA_DIR ".covers"
 gchar * gmpc_get_metadata_filename(MetaDataType  type, mpd_Song *song, char *extention);
 
 
index 525a16f..0c18ddd 100644 (file)
@@ -163,15 +163,11 @@ void screenshot_add_border (GdkPixbuf **src)
  */
 gchar * gmpc_get_user_path(const gchar *filename)
 {
-       const gchar *homedir = g_get_home_dir();
+       const gchar *homedir = g_get_user_config_dir(); 
        gchar *ret = NULL;
 
        /* Build the path */
-#ifdef USE_CONFIG_DIR
-       ret = g_build_path(G_DIR_SEPARATOR_S, homedir,".config", "gmpc", filename,NULL);
-#else
-       ret = g_build_path(G_DIR_SEPARATOR_S, homedir, ".gmpc", filename,NULL);
-#endif
+       ret = g_build_path(G_DIR_SEPARATOR_S, homedir, "gmpc", filename,NULL);
 
        return ret;
 }
@@ -185,15 +181,11 @@ gchar * gmpc_get_user_path(const gchar *filename)
  */
 gchar * gmpc_get_covers_path(const gchar *filename)
 {
-       const gchar *homedir = g_get_home_dir();
+       const gchar *homedir = g_get_user_cache_dir(); 
        gchar *ret = NULL;
 
        /* Build the path */
-#ifdef USE_CONFIG_DIR
-       ret = g_build_path(G_DIR_SEPARATOR_S, homedir,".config", "covers", filename,NULL);
-#else
-       ret = g_build_path(G_DIR_SEPARATOR_S, homedir, ".covers", filename,NULL);
-#endif
+       ret = g_build_path(G_DIR_SEPARATOR_S, homedir, "gmpc", "metadata", filename,NULL);
        return ret;
 }