[Xfce4-commits] <thunar:nick/new-shortcuts-pane-model> Drop the default bookmark crap.

Nick Schermer noreply at xfce.org
Sat Oct 6 12:44:02 CEST 2012


Updating branch refs/heads/nick/new-shortcuts-pane-model
         to 22b7a8f9c59a4e493d5bae711738cd224db636ed (commit)
       from e8c56637127d5e42ff9ba32555b0ca2fbeaaeddd (commit)

commit 22b7a8f9c59a4e493d5bae711738cd224db636ed
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Oct 6 12:19:29 2012 +0200

    Drop the default bookmark crap.

 thunar/thunar-private.h         |    3 -
 thunar/thunar-shortcuts-model.c |  113 ---------------------------------------
 thunar/thunar-window.c          |   42 +++++++++++++-
 3 files changed, 39 insertions(+), 119 deletions(-)

diff --git a/thunar/thunar-private.h b/thunar/thunar-private.h
index a6f8f7b..b6c58e2 100644
--- a/thunar/thunar-private.h
+++ b/thunar/thunar-private.h
@@ -88,9 +88,6 @@ typedef GUserDirectory ThunarUserDirectory;
 #define THUNAR_USER_DIRECTORY_VIDEOS       G_USER_DIRECTORY_VIDEOS
 #define THUNAR_USER_N_DIRECTORIES          (8)
 
-gchar *_thunar_get_xdg_user_dirs_locale (void);
-extern const gchar *_thunar_user_directory_names[THUNAR_USER_N_DIRECTORIES+1];
-
 G_END_DECLS;
 
 #endif /* !__THUNAR_PRIVATE_H__ */
diff --git a/thunar/thunar-shortcuts-model.c b/thunar/thunar-shortcuts-model.c
index 700a17e..dbbfd3f 100644
--- a/thunar/thunar-shortcuts-model.c
+++ b/thunar/thunar-shortcuts-model.c
@@ -47,13 +47,6 @@
 #define THUNAR_SHORTCUT(obj) ((ThunarShortcut *) (obj))
 
 
-/* I don't particularly like this here, but it's shared across a few
- * files. */
-const gchar *_thunar_user_directory_names[9] = {
-  "Desktop", "Documents", "Download", "Music", "Pictures", "Public",
-  "Templates", "Videos", NULL,
-};
-
 
 typedef struct _ThunarShortcut ThunarShortcut;
 
@@ -924,40 +917,12 @@ thunar_shortcuts_model_remove_shortcut (ThunarShortcutsModel *model,
     }
 }
 
-/* Reads the current xdg user dirs locale from ~/.config/xdg-user-dirs.locale
- * Notice that the result shall be freed by using g_free (). */
-gchar *
-_thunar_get_xdg_user_dirs_locale (void)
-{
-  gchar *file    = NULL;
-  gchar *content = NULL;
-  gchar *locale  = NULL;
-
-  /* get the file pathname */
-  file = g_build_filename (g_get_user_config_dir (), LOCALE_FILE_NAME, NULL);
-
-  /* grab the contents and get ride of the surrounding spaces */
-  if (g_file_get_contents (file, &content, NULL, NULL))
-    locale = g_strdup (g_strstrip (content));
 
-  g_free (content);
-  g_free (file);
-
-  /* if we got nothing, let's set the default locale as C */
-  if (exo_str_is_equal (locale, ""))
-    {
-      g_free (locale);
-      locale = g_strdup ("C");
-    }
-
-  return locale;
-}
 
 static void
 thunar_shortcuts_model_load (ThunarShortcutsModel *model)
 {
   ThunarShortcut *shortcut;
-  const gchar     *user_special_dir = NULL;
   ThunarFile      *file;
   GFile           *file_path;
   GFile           *home;
@@ -965,7 +930,6 @@ thunar_shortcuts_model_load (ThunarShortcutsModel *model)
   gchar            line[2048];
   gchar           *name;
   FILE            *fp;
-  gint             i;
   gint             sort_id;
 
   home = thunar_g_file_new_for_home ();
@@ -1045,83 +1009,6 @@ thunar_shortcuts_model_load (ThunarShortcutsModel *model)
       /* clean up */
       fclose (fp);
     }
-  else
-    {
-      /* ~/.gtk-bookmarks wasn't there or it was unreadable.
-       * here we recreate it with some useful xdg user special dirs */
-      gchar *old_locale = NULL;
-      gchar *locale          = NULL;
-
-      bindtextdomain (XDG_USER_DIRS_PACKAGE, PACKAGE_LOCALE_DIR);
-#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
-      bind_textdomain_codeset (XDG_USER_DIRS_PACKAGE, "UTF-8");
-#endif /* HAVE_BIND_TEXTDOMAIN_CODESET */
-
-      /* save the old locale */
-      old_locale = g_strdup(setlocale (LC_MESSAGES, NULL));
-
-      /* set the new locale */
-      locale = _thunar_get_xdg_user_dirs_locale ();
-      setlocale (LC_MESSAGES, locale);
-      g_free (locale);
-
-      for (i = G_USER_DIRECTORY_DESKTOP;
-           i < G_USER_N_DIRECTORIES && _thunar_user_directory_names[i] != NULL;
-           ++i)
-        {
-          /* let's ignore some directories we don't want in the side pane */
-          if (i == G_USER_DIRECTORY_DESKTOP
-              || i == G_USER_DIRECTORY_PUBLIC_SHARE
-              || i == G_USER_DIRECTORY_TEMPLATES)
-            {
-              continue;
-            }
-
-          user_special_dir = g_get_user_special_dir (i);
-
-          if (G_UNLIKELY (user_special_dir == NULL))
-            continue;
-
-          file_path = g_file_new_for_path (user_special_dir);
-          if (G_UNLIKELY (g_file_equal (file_path, home)))
-            {
-              g_object_unref (file_path);
-              continue;
-            }
-
-          /* try to open the file corresponding to the uri */
-          file = thunar_file_get (file_path, NULL);
-          g_object_unref (file_path);
-
-          /* TODO invisible item? */
-          if (G_UNLIKELY (file == NULL))
-            continue;
-
-          /* make sure the file refers to a directory */
-          if (G_UNLIKELY (!thunar_file_is_directory (file)))
-            {
-              g_object_unref (file);
-              continue;
-            }
-
-          /* create the shortcut entry */
-          shortcut = g_slice_new0 (ThunarShortcut);
-          shortcut->group = THUNAR_SHORTCUT_GROUP_BOOKMARKS;
-          shortcut->file = file;
-          shortcut->name = g_strdup (dgettext (XDG_USER_DIRS_PACKAGE,
-                                               (gchar *) _thunar_user_directory_names[i]));
-
-          /* append the shortcut to the list */
-          thunar_shortcuts_model_add_shortcut (model, shortcut);
-        }
-
-      /* restore the old locale */
-      setlocale (LC_MESSAGES, old_locale);
-      g_free(old_locale);
-
-      /* we try to save the obtained new model */
-      thunar_shortcuts_model_save (model);
-    }
 
   /* clean up */
   g_object_unref (home);
diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c
index e5b80b3..b4acb6c 100644
--- a/thunar/thunar-window.c
+++ b/thunar/thunar-window.c
@@ -347,6 +347,13 @@ static const GtkToggleActionEntry toggle_action_entries[] =
 
 
 
+static const gchar *thunar_user_directory_names[9] = {
+  "Desktop", "Documents", "Download", "Music", "Pictures", "Public",
+  "Templates", "Videos", NULL,
+};
+
+
+
 static guint window_signals[LAST_SIGNAL];
 
 
@@ -617,6 +624,35 @@ view_index2type (gint idx)
     }
 }
 
+/* Reads the current xdg user dirs locale from ~/.config/xdg-user-dirs.locale
+ * Notice that the result shall be freed by using g_free (). */
+static gchar *
+thunar_get_xdg_user_dirs_locale (void)
+{
+  gchar *file    = NULL;
+  gchar *content = NULL;
+  gchar *locale  = NULL;
+
+  /* get the file pathname */
+  file = g_build_filename (g_get_user_config_dir (), LOCALE_FILE_NAME, NULL);
+
+  /* grab the contents and get ride of the surrounding spaces */
+  if (g_file_get_contents (file, &content, NULL, NULL))
+    locale = g_strdup (g_strstrip (content));
+
+  g_free (content);
+  g_free (file);
+
+  /* if we got nothing, let's set the default locale as C */
+  if (exo_str_is_equal (locale, ""))
+    {
+      g_free (locale);
+      locale = g_strdup ("C");
+    }
+
+  return locale;
+}
+
 /* this function hides all the user directory menu entries in case of
  * glib <= 2.12. Otherwise it hide the menu entries only for the directories
  * that point to $HOME or to NULL. Then, it translates the labels. */
@@ -652,7 +688,7 @@ thunar_window_setup_user_dir_menu_entries (ThunarWindow *window)
   old_locale = g_strdup(setlocale (LC_MESSAGES, NULL));
 
   /* set the new locale */
-  locale = _thunar_get_xdg_user_dirs_locale ();
+  locale = thunar_get_xdg_user_dirs_locale ();
   setlocale (LC_MESSAGES, locale);
   g_free (locale);
 
@@ -665,7 +701,7 @@ thunar_window_setup_user_dir_menu_entries (ThunarWindow *window)
 
       /* special case: got NULL for the templates dir. Force it to ~/Templates */
       if (G_UNLIKELY (path == NULL && i == G_USER_DIRECTORY_TEMPLATES))
-        dir = g_file_resolve_relative_path (home_dir, _thunar_user_directory_names[i]);
+        dir = g_file_resolve_relative_path (home_dir, thunar_user_directory_names[i]);
       else if (path != NULL)
         dir = g_file_new_for_path (path);
       else
@@ -675,7 +711,7 @@ thunar_window_setup_user_dir_menu_entries (ThunarWindow *window)
       if (G_LIKELY (path != NULL && !g_file_equal (dir, home_dir)))
         {
           /* menu entry label translation */
-          translation = dgettext (XDG_USER_DIRS_PACKAGE, (gchar *) _thunar_user_directory_names[i]);
+          translation = dgettext (XDG_USER_DIRS_PACKAGE, (gchar *) thunar_user_directory_names[i]);
           g_object_set (action, "label", translation, NULL);
         }
       else


More information about the Xfce4-commits mailing list