Revision: 1240
http://geeqie.svn.sourceforge.net/geeqie/?rev=1240&view=rev
Author: zas_
Date: 2008-11-15 17:30:45 +0000 (Sat, 15 Nov 2008)
Log Message:
-----------
Use functions to return directories instead of constants.
Following functions were added:
get_collections_dir()
get_metadata_cache_dir()
get_rc_dir()
get_thumbnails_cache_dir()
get_trash_dir()
They return the full directory path.
Modified Paths:
--------------
trunk/src/bar_sort.c
trunk/src/cache.c
trunk/src/cache.h
trunk/src/cache_maint.c
trunk/src/collect-dlg.c
trunk/src/collect-io.c
trunk/src/main.c
trunk/src/main.h
trunk/src/options.c
trunk/src/remote.c
trunk/src/search.c
trunk/src/ui_fileops.c
trunk/src/ui_fileops.h
Modified: trunk/src/bar_sort.c
===================================================================
--- trunk/src/bar_sort.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/bar_sort.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -89,7 +89,6 @@
static void bar_sort_collection_list_build(GtkWidget *bookmarks)
{
- gchar *collect_path;
FileData *dir_fd;
GList *list;
GList *work;
@@ -97,11 +96,9 @@
history_list_free_key(SORT_KEY_COLLECTIONS);
bookmark_list_set_key(bookmarks, SORT_KEY_COLLECTIONS);
- collect_path = g_build_filename(homedir(), GQ_RC_DIR_COLLECTIONS, NULL);
- dir_fd = file_data_new_simple(collect_path);
+ dir_fd = file_data_new_simple(get_collections_dir());
filelist_read(dir_fd, &list, NULL);
file_data_unref(dir_fd);
- g_free(collect_path);
list = filelist_sort_path(list);
@@ -436,7 +433,7 @@
name = tmp;
}
- path = g_build_filename(homedir(), GQ_RC_DIR_COLLECTIONS, name,
NULL);
+ path = g_build_filename(get_collections_dir(), name, NULL);
if (isfile(path))
{
gchar *text = g_strdup_printf(_("The
collection:\n%s\nalready exists."), name);
Modified: trunk/src/cache.c
===================================================================
--- trunk/src/cache.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/cache.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -623,17 +623,17 @@
switch (type)
{
case CACHE_TYPE_THUMB:
- *cache_rc = GQ_CACHE_RC_THUMB;
+ *cache_rc = get_thumbnails_cache_dir();
*cache_local = GQ_CACHE_LOCAL_THUMB;
*cache_ext = GQ_CACHE_EXT_THUMB;
break;
case CACHE_TYPE_SIM:
- *cache_rc = GQ_CACHE_RC_THUMB;
+ *cache_rc = get_thumbnails_cache_dir();
*cache_local = GQ_CACHE_LOCAL_THUMB;
*cache_ext = GQ_CACHE_EXT_SIM;
break;
case CACHE_TYPE_METADATA:
- *cache_rc = GQ_CACHE_RC_METADATA;
+ *cache_rc = get_metadata_cache_dir();
*cache_local = GQ_CACHE_LOCAL_METADATA;
*cache_ext = GQ_CACHE_EXT_METADATA;
break;
@@ -669,7 +669,7 @@
if (!path)
{
- path = g_build_filename(homedir(), cache_rc, base, name, NULL);
+ path = g_build_filename(cache_rc, base, name, NULL);
if (mode) *mode = 0755;
}
@@ -695,7 +695,7 @@
{
gchar *path;
gchar *name = g_strconcat(source, cache_ext, NULL);
- path = g_build_filename(homedir(), cache_rc, name, NULL);
+ path = g_build_filename(cache_rc, name, NULL);
g_free(name);
return path;
@@ -794,4 +794,25 @@
return ret;
}
+
+const gchar *get_thumbnails_cache_dir(void)
+{
+ static gchar *thumbnails_cache_dir = NULL;
+
+ if (thumbnails_cache_dir) return thumbnails_cache_dir;
+
+ thumbnails_cache_dir = g_build_filename(get_rc_dir(), GQ_CACHE_THUMB,
NULL);
+ return thumbnails_cache_dir;
+}
+
+const gchar *get_metadata_cache_dir(void)
+{
+ static gchar *metadata_cache_dir = NULL;
+
+ if (metadata_cache_dir) return metadata_cache_dir;
+
+ metadata_cache_dir = g_build_filename(get_rc_dir(), GQ_CACHE_METADATA,
NULL);
+ return metadata_cache_dir;
+}
+
/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
Modified: trunk/src/cache.h
===================================================================
--- trunk/src/cache.h 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/cache.h 2008-11-15 17:30:45 UTC (rev 1240)
@@ -18,8 +18,8 @@
#include "similar.h"
-#define GQ_CACHE_RC_THUMB GQ_RC_DIR G_DIR_SEPARATOR_S "thumbnails"
-#define GQ_CACHE_RC_METADATA GQ_RC_DIR G_DIR_SEPARATOR_S "metadata"
+#define GQ_CACHE_THUMB "thumbnails"
+#define GQ_CACHE_METADATA "metadata"
#define GQ_CACHE_LOCAL_THUMB ".thumbnails"
#define GQ_CACHE_LOCAL_METADATA ".metadata"
@@ -74,6 +74,8 @@
gchar *cache_get_location(CacheType type, const gchar *source, gint
include_name, mode_t *mode);
gchar *cache_find_location(CacheType type, const gchar *source);
+const gchar *get_thumbnails_cache_dir(void);
+const gchar *get_metadata_cache_dir(void);
#endif
/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
Modified: trunk/src/cache_maint.c
===================================================================
--- trunk/src/cache_maint.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/cache_maint.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -143,20 +143,17 @@
gboolean still_have_a_file = TRUE;
gsize base_length;
const gchar *cache_folder;
- gchar *base;
if (cm->metadata)
{
- cache_folder = GQ_CACHE_RC_METADATA;
+ cache_folder = get_metadata_cache_dir();
}
else
{
- cache_folder = GQ_CACHE_RC_THUMB;
+ cache_folder = get_thumbnails_cache_dir();
}
- base = g_build_filename(homedir(), cache_folder, NULL);
- base_length = strlen(base);
- g_free(base);
+ base_length = strlen(cache_folder);
if (!cm->list)
{
@@ -276,7 +273,6 @@
{
CMData *cm;
GList *dlist;
- gchar *base;
FileData *dir_fd;
const gchar *msg;
const gchar *cache_folder;
@@ -284,24 +280,21 @@
if (metadata)
{
- cache_folder = GQ_CACHE_RC_METADATA;
+ cache_folder = get_metadata_cache_dir();
}
else
{
- cache_folder = GQ_CACHE_RC_THUMB;
+ cache_folder = get_thumbnails_cache_dir();
}
- base = g_build_filename(homedir(), cache_folder, NULL);
- dir_fd = file_data_new_simple(base);
+ dir_fd = file_data_new_simple(cache_folder);
if (!filelist_read(dir_fd, NULL, &dlist))
{
- g_free(base);
file_data_unref(dir_fd);
return;
}
dlist = g_list_append(dlist, dir_fd);
- g_free(base);
cm = g_new0(CMData, 1);
cm->list = dlist;
@@ -1246,7 +1239,7 @@
group = pref_group_new(gd->vbox, FALSE, _("Thumbnail cache"),
GTK_ORIENTATION_VERTICAL);
- cache_manager_location_label(group, GQ_CACHE_RC_THUMB);
+ cache_manager_location_label(group, get_thumbnails_cache_dir());
table = pref_table_new(group, 2, 2, FALSE, FALSE);
@@ -1288,7 +1281,7 @@
group = pref_group_new(gd->vbox, FALSE, _("Metadata"),
GTK_ORIENTATION_VERTICAL);
- cache_manager_location_label(group, GQ_CACHE_RC_METADATA);
+ cache_manager_location_label(group, get_metadata_cache_dir());
table = pref_table_new(group, 2, 1, FALSE, FALSE);
Modified: trunk/src/collect-dlg.c
===================================================================
--- trunk/src/collect-dlg.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/collect-dlg.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -162,7 +162,6 @@
const gchar *title;
const gchar *btntext;
gpointer btnfunc;
- gchar *base;
const gchar *stock_id;
if (type == DIALOG_SAVE || type == DIALOG_SAVE_CLOSE)
@@ -200,10 +199,8 @@
generic_dialog_add_message(GENERIC_DIALOG(fd), NULL, title, NULL);
file_dialog_add_button(fd, stock_id, btntext, btnfunc, TRUE);
- base = g_build_filename(homedir(), GQ_RC_DIR_COLLECTIONS, NULL);
- file_dialog_add_path_widgets(fd, base, path,
+ file_dialog_add_path_widgets(fd, get_collections_dir(), path,
"collection_load_save", GQ_COLLECTION_EXT,
_("Collection Files"));
- g_free(base);
fd->type = type;
Modified: trunk/src/collect-io.c
===================================================================
--- trunk/src/collect-io.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/collect-io.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -668,14 +668,11 @@
{
GList *list;
GList *work;
- gchar *base;
FileData *dir_fd;
- base = g_build_filename(homedir(), GQ_RC_DIR_COLLECTIONS, NULL);
- dir_fd = file_data_new_simple(base);
+ dir_fd = file_data_new_simple(get_collections_dir());
filelist_read(dir_fd, &list, NULL);
file_data_unref(dir_fd);
- g_free(base);
work = collection_manager_entry_list;
while (work && list)
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/main.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -430,7 +430,7 @@
{
gchar *path;
- path = g_build_filename(homedir(), GQ_RC_DIR, RC_HISTORY_NAME, NULL);
+ path = g_build_filename(get_rc_dir(), RC_HISTORY_NAME, NULL);
history_list_load(path);
g_free(path);
}
@@ -439,26 +439,21 @@
{
gchar *path;
- path = g_build_filename(homedir(), GQ_RC_DIR, RC_HISTORY_NAME, NULL);
+ path = g_build_filename(get_rc_dir(), RC_HISTORY_NAME, NULL);
history_list_save(path);
g_free(path);
}
-static void check_for_home_path(gchar *path)
+static void check_for_home_path(const gchar *path)
{
- gchar *buf;
+ if (isdir(path)) return;
- buf = g_build_filename(homedir(), path, NULL);
- if (!isdir(buf))
- {
- log_printf(_("Creating %s dir:%s\n"), GQ_APPNAME, buf);
+ log_printf(_("Creating %s dir:%s\n"), GQ_APPNAME, path);
- if (!mkdir_utf8(buf, 0755))
- {
- log_printf(_("Could not create dir:%s\n"), buf);
- }
+ if (!mkdir_utf8(path, 0755))
+ {
+ log_printf(_("Could not create dir:%s\n"), path);
}
- g_free(buf);
}
@@ -538,7 +533,7 @@
static gchar *accep_map_filename(void)
{
- return g_build_filename(homedir(), GQ_RC_DIR, "accels", NULL);
+ return g_build_filename(get_rc_dir(), "accels", NULL);
}
static void accel_map_save(void)
@@ -569,7 +564,7 @@
/* If a gtkrc file exists in the rc directory, add it to the
* list of files to be parsed at the end of gtk_init() */
- path = g_build_filename(homedir(), GQ_RC_DIR, "gtkrc", NULL);
+ path = g_build_filename(get_rc_dir(), "gtkrc", NULL);
pathl = path_from_utf8(path);
if (access(pathl, R_OK) == 0)
gtk_rc_add_default_file(pathl);
@@ -722,10 +717,10 @@
log_printf("!!! %s may quit unexpectedly with a relocation
error.\n", GQ_APPNAME);
}
- check_for_home_path(GQ_RC_DIR);
- check_for_home_path(GQ_RC_DIR_COLLECTIONS);
- check_for_home_path(GQ_CACHE_RC_THUMB);
- check_for_home_path(GQ_CACHE_RC_METADATA);
+ check_for_home_path(get_rc_dir());
+ check_for_home_path(get_collections_dir());
+ check_for_home_path(get_thumbnails_cache_dir());
+ check_for_home_path(get_metadata_cache_dir());
keys_load();
filter_add_defaults();
@@ -856,7 +851,7 @@
if (startup_full_screen) layout_image_full_screen_start(lw);
if (startup_in_slideshow) layout_image_slideshow_start(lw);
- buf = g_build_filename(homedir(), GQ_RC_DIR, ".command", NULL);
+ buf = g_build_filename(get_rc_dir(), ".command", NULL);
remote_connection = remote_server_init(buf, cd);
g_free(buf);
Modified: trunk/src/main.h
===================================================================
--- trunk/src/main.h 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/main.h 2008-11-15 17:30:45 UTC (rev 1240)
@@ -71,9 +71,9 @@
#define GQ_WMCLASS GQ_APPNAME_LC
-#define GQ_RC_DIR "." GQ_APPNAME_LC
-#define GQ_RC_DIR_COLLECTIONS GQ_RC_DIR G_DIR_SEPARATOR_S "collections"
-#define GQ_RC_DIR_TRASH GQ_RC_DIR G_DIR_SEPARATOR_S "trash"
+#define GQ_RC_DIR "." GQ_APPNAME_LC
+#define GQ_COLLECTIONS_DIR "collections"
+#define GQ_TRASH_DIR "trash"
#define GQ_SYSTEM_WIDE_DIR "/etc/" GQ_APPNAME_LC
Modified: trunk/src/options.c
===================================================================
--- trunk/src/options.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/options.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -183,12 +183,10 @@
path = g_build_filename(homedir(), "Desktop", NULL);
bookmark_add_default(_("Desktop"), path);
g_free(path);
- path = g_build_filename(homedir(), GQ_RC_DIR_COLLECTIONS, NULL);
- bookmark_add_default(_("Collections"), path);
- g_free(path);
+ bookmark_add_default(_("Collections"), get_collections_dir());
g_free(options->file_ops.safe_delete_path);
- options->file_ops.safe_delete_path = g_build_filename(homedir(),
GQ_RC_DIR_TRASH, NULL);
+ options->file_ops.safe_delete_path = g_strdup(get_trash_dir());
for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
{
@@ -260,7 +258,7 @@
sync_options_with_current_state(options);
- rc_path = g_build_filename(homedir(), GQ_RC_DIR, RC_FILE_NAME, NULL);
+ rc_path = g_build_filename(get_rc_dir(), RC_FILE_NAME, NULL);
save_options_to(rc_path, options);
g_free(rc_path);
}
@@ -278,7 +276,7 @@
g_free(rc_path);
}
- rc_path = g_build_filename(homedir(), GQ_RC_DIR, RC_FILE_NAME, NULL);
+ rc_path = g_build_filename(get_rc_dir(), RC_FILE_NAME, NULL);
success = load_options_from(rc_path, options);
DEBUG_1("Loading options from %s ... %s", rc_path, success ? "done" :
"failed");
g_free(rc_path);
Modified: trunk/src/remote.c
===================================================================
--- trunk/src/remote.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/remote.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -701,7 +701,7 @@
gint started = FALSE;
gchar *buf;
- buf = g_build_filename(homedir(), GQ_RC_DIR, ".command", NULL);
+ buf = g_build_filename(get_rc_dir(), ".command", NULL);
rc = remote_client_open(buf);
if (!rc)
{
Modified: trunk/src/search.c
===================================================================
--- trunk/src/search.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/search.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -2219,12 +2219,8 @@
else if (sd->search_type == SEARCH_MATCH_ALL)
{
/* search metadata */
- path = g_build_filename(homedir(), GQ_CACHE_RC_METADATA, NULL);
-
file_data_unref(sd->search_dir_fd);
- sd->search_dir_fd = file_data_new_simple(path);
- g_free(path);
-
+ sd->search_dir_fd =
file_data_new_simple(get_metadata_cache_dir());
search_start(sd);
}
else if (sd->search_type == SEARCH_MATCH_CONTAINS)
Modified: trunk/src/ui_fileops.c
===================================================================
--- trunk/src/ui_fileops.c 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/ui_fileops.c 2008-11-15 17:30:45 UTC (rev 1240)
@@ -186,6 +186,39 @@
return home;
}
+const gchar *get_rc_dir(void)
+{
+ static gchar *rc_dir = NULL;
+
+ if (rc_dir) return rc_dir;
+
+ rc_dir = g_build_filename(homedir(), GQ_RC_DIR, NULL);
+
+ return rc_dir;
+}
+
+const gchar *get_collections_dir(void)
+{
+ static gchar *collections_dir = NULL;
+
+ if (collections_dir) return collections_dir;
+
+ collections_dir = g_build_filename(get_rc_dir(), GQ_COLLECTIONS_DIR,
NULL);
+
+ return collections_dir;
+}
+
+const gchar *get_trash_dir(void)
+{
+ static gchar *trash_dir = NULL;
+
+ if (trash_dir) return trash_dir;
+
+ trash_dir = g_build_filename(get_rc_dir(), GQ_TRASH_DIR, NULL);
+
+ return trash_dir;
+}
+
gint stat_utf8(const gchar *s, struct stat *st)
{
gchar *sl;
Modified: trunk/src/ui_fileops.h
===================================================================
--- trunk/src/ui_fileops.h 2008-11-15 10:35:43 UTC (rev 1239)
+++ trunk/src/ui_fileops.h 2008-11-15 17:30:45 UTC (rev 1240)
@@ -35,6 +35,10 @@
gchar *path_from_utf8(const gchar *path);
const gchar *homedir(void);
+const gchar *get_rc_dir(void);
+const gchar *get_collections_dir(void);
+const gchar *get_trash_dir(void);
+
gint stat_utf8(const gchar *s, struct stat *st);
gint lstat_utf8(const gchar *s, struct stat *st);
gint isname(const gchar *s);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn