diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2005-10-30 05:38:41 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2005-10-30 05:38:41 +0800 |
commit | bc541864b12e85185251765c99a103718b92b994 (patch) | |
tree | 698d93b981692c29cfad5f113e0795ad6fca01b4 /lib/ephy-file-helpers.c | |
parent | cd07b3ec041e14b8ed23d0457cc8741eaaa1a00d (diff) | |
download | gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.tar gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.tar.gz gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.tar.bz2 gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.tar.lz gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.tar.xz gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.tar.zst gsoc2013-epiphany-bc541864b12e85185251765c99a103718b92b994.zip |
Add ephy_file_get_downloads_dir() to get the actual downloads directory,
2005-10-29 Christian Persch <chpe@cvs.gnome.org>
* embed/mozilla/MozDownload.cpp:
* lib/ephy-file-chooser.c: (ephy_file_chooser_constructor):
* lib/ephy-file-helpers.c: (ephy_file_get_downloads_dir):
* lib/ephy-file-helpers.h:
* src/prefs-dialog.c: (download_path_changed_cb),
(create_download_path_button):
Add ephy_file_get_downloads_dir() to get the actual downloads
directory, and use it in the prefs dialogue, the filechooser, and
the backend.
Diffstat (limited to 'lib/ephy-file-helpers.c')
-rw-r--r-- | lib/ephy-file-helpers.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/ephy-file-helpers.c b/lib/ephy-file-helpers.c index 45278b31a..db8950f20 100644 --- a/lib/ephy-file-helpers.c +++ b/lib/ephy-file-helpers.c @@ -108,6 +108,47 @@ ephy_file_downloads_dir (void) } char * +ephy_file_get_downloads_dir (void) +{ + char *path = NULL, *download_dir, *home_dir, *expanded; + + download_dir = eel_gconf_get_string (CONF_STATE_DOWNLOAD_DIR); + + if (download_dir && strcmp (download_dir, "Downloads") == 0) + { + g_free (download_dir); + download_dir = ephy_file_downloads_dir (); + } + else if (download_dir && strcmp (download_dir, "Desktop") == 0) + { + g_free (download_dir); + download_dir = ephy_file_desktop_dir (); + } + else if (download_dir) + { + char *converted_dp; + + converted_dp = g_filename_from_utf8 (download_dir, -1, NULL, NULL, NULL); + g_free (download_dir); + download_dir = converted_dp; + } + + /* Emergency download destination */ + if (download_dir == NULL) + { + home_dir = g_get_home_dir (); + download_dir = g_strdup (home_dir != NULL ? home_dir : "/"); + } + + g_return_val_if_fail (download_dir != NULL, NULL); + + expanded = gnome_vfs_expand_initial_tilde (download_dir); + g_free (download_dir); + + return expanded; +} + +char * ephy_file_desktop_dir (void) { char *downloads_dir; |