Updating branch refs/heads/master to c5ad669c42f554b4f0d1b7fbd00817cb8627b605 (commit) from 28f2d4297e70799ff745f7796c3c7a3feeaf4194 (commit)
commit c5ad669c42f554b4f0d1b7fbd00817cb8627b605 Author: Jérôme Guelfucci <jero...@xfce.org> Date: Sat Aug 8 19:38:28 2009 +0200 Use the XDG pictures directory as the default save location. If it does not exist, use the home directory as a fallback. ChangeLog | 6 ++++++ TODO | 2 -- lib/screenshooter-actions.c | 2 +- lib/screenshooter-utils.c | 22 +++++++++++++++++++--- lib/screenshooter-utils.h | 27 ++++++++++++++------------- src/main.c | 6 ------ 6 files changed, 40 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index db86861..f0aed25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2009-08-08 jeromeg +Use the XDG pictures directory as the default save location. + +If it does not exist, use the home directory as a fallback. + +2009-08-08 jeromeg + Remove the horodate checkbox and title entry. Try to set some sane defaults: always append the date and the time to diff --git a/TODO b/TODO index 86238ea..c0bffe2 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,5 @@ Before next release: -* Save captures in the XDG images directory by default, fallback to home -if it does not exist. * Port "select a region" to use cairo to have transparent rubber banding as in thunar and xfdesktop (only when the screen is composited). diff --git a/lib/screenshooter-actions.c b/lib/screenshooter-actions.c index 839cf70..ebf45bc 100644 --- a/lib/screenshooter-actions.c +++ b/lib/screenshooter-actions.c @@ -81,7 +81,7 @@ gboolean screenshooter_action_idle (ScreenshotData *sd) if (sd->action == SAVE) { if (sd->screenshot_dir == NULL) - sd->screenshot_dir = screenshooter_get_home_uri (); + sd->screenshot_dir = screenshooter_get_xdg_image_dir_uri (); screenshooter_save_screenshot (sd->screenshot, sd->screenshot_dir, diff --git a/lib/screenshooter-utils.c b/lib/screenshooter-utils.c index a1fc665..9596567 100644 --- a/lib/screenshooter-utils.c +++ b/lib/screenshooter-utils.c @@ -54,7 +54,7 @@ screenshooter_copy_to_clipboard (GdkPixbuf *screenshot) void screenshooter_read_rc_file (const gchar *file, ScreenshotData *sd) { - const gchar *home_uri = screenshooter_get_home_uri (); + const gchar *default_uri = screenshooter_get_xdg_image_dir_uri (); XfceRc *rc; gint delay = 0; @@ -62,7 +62,7 @@ screenshooter_read_rc_file (const gchar *file, ScreenshotData *sd) gint action = SAVE; gint show_mouse = 1; gboolean horodate = FALSE; - gchar *screenshot_dir = g_strdup (home_uri); + gchar *screenshot_dir = g_strdup (default_uri); gchar *title = g_strdup ("Screenshot"); gchar *app = g_strdup ("none"); gchar *last_user = g_strdup (""); @@ -91,7 +91,7 @@ screenshooter_read_rc_file (const gchar *file, ScreenshotData *sd) g_free (screenshot_dir); screenshot_dir = - g_strdup (xfce_rc_read_entry (rc, "screenshot_dir", home_uri)); + g_strdup (xfce_rc_read_entry (rc, "screenshot_dir", default_uri)); g_free (title); title = g_strdup (xfce_rc_read_entry (rc, "title", "Screenshot")); @@ -205,6 +205,22 @@ gchar *screenshooter_get_home_uri (void) +gchar *screenshooter_get_xdg_image_dir_uri (void) +{ + gchar *result, *tmp; + + tmp = g_strdup (g_get_user_special_dir (G_USER_DIRECTORY_PICTURES)); + + if (tmp == NULL) + return screenshooter_get_home_uri (); + + result = g_strconcat ("file://", tmp, NULL); + g_free (tmp); + + return result; +} + + gboolean screenshooter_is_remote_uri (const gchar *uri) { g_return_val_if_fail(uri != NULL, FALSE); diff --git a/lib/screenshooter-utils.h b/lib/screenshooter-utils.h index 2fd368f..d32933f 100644 --- a/lib/screenshooter-utils.h +++ b/lib/screenshooter-utils.h @@ -35,19 +35,20 @@ -void screenshooter_copy_to_clipboard (GdkPixbuf *screenshot) ; -void screenshooter_read_rc_file (const gchar *file, - ScreenshotData *sd); -void screenshooter_write_rc_file (const gchar *file, - ScreenshotData *sd); -void screenshooter_open_screenshot (const gchar *screenshot_path, - const gchar *application); -gchar *screenshooter_get_home_uri (); -gboolean screenshooter_is_remote_uri (const gchar *uri); -gchar *rot13 (gchar *string); -void screenshooter_error (const gchar *format, - ...); -gchar *screenshooter_get_date_hour (void); +void screenshooter_copy_to_clipboard (GdkPixbuf *screenshot); +void screenshooter_read_rc_file (const gchar *file, + ScreenshotData *sd); +void screenshooter_write_rc_file (const gchar *file, + ScreenshotData *sd); +void screenshooter_open_screenshot (const gchar *screenshot_path, + const gchar *application); +gchar *screenshooter_get_home_uri (void); +gchar *screenshooter_get_xdg_image_dir_uri (void); +gboolean screenshooter_is_remote_uri (const gchar *uri); +gchar *rot13 (gchar *string); +void screenshooter_error (const gchar *format, + ...); +gchar *screenshooter_get_date_hour (void); #endif diff --git a/src/main.c b/src/main.c index dbd8afe..6f829d5 100644 --- a/src/main.c +++ b/src/main.c @@ -290,12 +290,6 @@ int main (int argc, char **argv) g_object_unref (default_save_dir); g_free (screenshot_dir); } - /* Else we fallback to the home directory */ - else - { - g_free (sd->screenshot_dir); - sd->screenshot_dir = screenshooter_get_home_uri (); - } g_idle_add ((GSourceFunc) screenshooter_take_screenshot_idle, sd); }
_______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits