diff -ru transmission-1.75-original/gtk/add-dialog.c transmission-1.75/gtk/add-dialog.c --- transmission-1.75-original/gtk/add-dialog.c 2009-10-03 14:03:28.000000000 -0300 +++ transmission-1.75/gtk/add-dialog.c 2009-10-03 19:30:59.000000000 -0300 @@ -17,6 +17,7 @@ #include "file-list.h" #include "hig.h" #include "tr-prefs.h" +#include "libtransmission/utils.h" /**** ***** @@ -285,8 +286,12 @@ GTK_RESPONSE_CANCEL, -1 ); - if( tr_ctorGetDownloadDir( ctor, TR_FORCE, &str ) ) - g_assert_not_reached( ); + if ( pref_flag_get( PREF_KEY_DOWNLOAD_SAME_DIR ) ) { + str = tr_dirname( tr_strdup( tr_ctorGetSourceFile( ctor ) ) ); + } else { + if( tr_ctorGetDownloadDir( ctor, TR_FORCE, &str ) ) + g_assert_not_reached( ); + } g_assert( str ); data = g_new0( struct AddData, 1 ); diff -ru transmission-1.75-original/gtk/conf.c transmission-1.75/gtk/conf.c --- transmission-1.75-original/gtk/conf.c 2009-10-03 14:03:28.000000000 -0300 +++ transmission-1.75/gtk/conf.c 2009-10-03 14:20:54.000000000 -0300 @@ -192,6 +192,7 @@ #endif if( !str ) str = tr_getDefaultDownloadDir( ); tr_bencDictAddStr( d, TR_PREFS_KEY_DOWNLOAD_DIR, str ); + tr_bencDictAddBool( d, PREF_KEY_DOWNLOAD_SAME_DIR, FALSE ); tr_bencDictAddBool( d, PREF_KEY_ASKQUIT, TRUE ); diff -ru transmission-1.75-original/gtk/tr-prefs.c transmission-1.75/gtk/tr-prefs.c --- transmission-1.75-original/gtk/tr-prefs.c 2009-10-03 14:03:28.000000000 -0300 +++ transmission-1.75/gtk/tr-prefs.c 2009-10-03 15:08:09.000000000 -0300 @@ -305,6 +305,10 @@ w = new_path_chooser_button( TR_PREFS_KEY_DOWNLOAD_DIR, core ); hig_workarea_add_row( t, &row, _( "Save to _Location:" ), w, NULL ); + s = _( "Save to the same directory as torrent file" ); + w = new_check_button( s, PREF_KEY_DOWNLOAD_SAME_DIR, core ); + hig_workarea_add_wide_control( t, &row, w ); + hig_workarea_add_section_divider( t, &row ); hig_workarea_add_section_title( t, &row, _( "Limits" ) ); diff -ru transmission-1.75-original/gtk/tr-prefs.h transmission-1.75/gtk/tr-prefs.h --- transmission-1.75-original/gtk/tr-prefs.h 2009-10-03 14:03:28.000000000 -0300 +++ transmission-1.75/gtk/tr-prefs.h 2009-10-03 14:38:55.000000000 -0300 @@ -26,6 +26,7 @@ #define PREF_KEY_INHIBIT_HIBERNATION "inhibit-desktop-hibernation" #define PREF_KEY_DIR_WATCH "watch-dir" #define PREF_KEY_DIR_WATCH_ENABLED "watch-dir-enabled" +#define PREF_KEY_DOWNLOAD_SAME_DIR "download-same-dir" #define PREF_KEY_SHOW_TRAY_ICON "show-notification-area-icon" #define PREF_KEY_SHOW_DESKTOP_NOTIFICATION "show-desktop-notification" #define PREF_KEY_START "start-added-torrents"