GtkWidget* gtr_torrent_open_from_file_dialog_new( GtkWindow * parent, TrCore * core ) { GtkWidget * w; GtkWidget * c; const char * folder; w = gtk_file_chooser_dialog_new( _( "Open a Torrent" ), parent, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL ); gtk_dialog_set_alternative_button_order( GTK_DIALOG( w ), GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1 ); gtk_file_chooser_set_select_multiple( GTK_FILE_CHOOSER( w ), TRUE ); addTorrentFilters( GTK_FILE_CHOOSER( w ) ); g_signal_connect( w, "response", G_CALLBACK( onOpenDialogResponse ), core ); if( ( folder = gtr_pref_string_get( PREF_KEY_OPEN_DIALOG_FOLDER ) ) ) gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER( w ), folder ); c = gtk_check_button_new_with_mnemonic( _( "Show _options dialog" ) ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( c ), gtr_pref_flag_get( PREF_KEY_OPTIONS_PROMPT ) ); gtk_file_chooser_set_extra_widget( GTK_FILE_CHOOSER( w ), c ); gtk_widget_show( c ); return w; }
GtkWidget* gtr_relocate_dialog_new( GtkWindow * parent, TrCore * core, GSList * torrent_ids ) { guint row; GtkWidget * w; GtkWidget * d; GtkWidget * t; struct relocate_dialog_data * data; d = gtk_dialog_new_with_buttons( _( "Set Torrent Location" ), parent, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, NULL ); gtk_dialog_set_default_response( GTK_DIALOG( d ), GTK_RESPONSE_CANCEL ); gtk_dialog_set_alternative_button_order( GTK_DIALOG( d ), GTK_RESPONSE_APPLY, GTK_RESPONSE_CANCEL, -1 ); g_signal_connect( d, "response", G_CALLBACK( onResponse ), NULL ); row = 0; t = hig_workarea_create( ); hig_workarea_add_section_title( t, &row, _( "Location" ) ); if( previousLocation == NULL ) previousLocation = g_strdup( gtr_pref_string_get( TR_PREFS_KEY_DOWNLOAD_DIR ) ); w = gtk_file_chooser_button_new( _( "Set Torrent Location" ), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ); gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER( w ), previousLocation ); g_object_set_data( G_OBJECT( d ), "chooser", w ); hig_workarea_add_row( t, &row, _( "Torrent _location:" ), w, NULL ); w = gtk_radio_button_new_with_mnemonic( NULL, _( "_Move from the current folder" ) ); g_object_set_data( G_OBJECT( d ), "move_rb", w ); hig_workarea_add_wide_control( t, &row, w ); w = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( w ), _( "Local data is _already there" ) ); hig_workarea_add_wide_control( t, &row, w ); hig_workarea_finish( t, &row ); gtr_dialog_set_content( GTK_DIALOG( d ), t ); data = g_new0( struct relocate_dialog_data, 1 ); data->core = core; data->torrent_ids = torrent_ids; data->chooser_dialog = d; g_object_set_data_full( G_OBJECT( d ), DATA_KEY, data, data_free ); return d; }
static GSList* get_recent_destinations( void ) { int i; GSList * list = NULL; for( i=0; i<N_RECENT; ++i ) { char key[64]; const char * val; g_snprintf( key, sizeof( key ), "recent-download-dir-%d", i+1 ); if(( val = gtr_pref_string_get( key ))) list = g_slist_append( list, (void*)val ); } return list; }
static void tr_core_apply_defaults( tr_ctor * ctor ) { if( tr_ctorGetPaused( ctor, TR_FORCE, NULL ) ) tr_ctorSetPaused( ctor, TR_FORCE, !gtr_pref_flag_get( TR_PREFS_KEY_START ) ); if( tr_ctorGetDeleteSource( ctor, NULL ) ) tr_ctorSetDeleteSource( ctor, gtr_pref_flag_get( TR_PREFS_KEY_TRASH_ORIGINAL ) ); if( tr_ctorGetPeerLimit( ctor, TR_FORCE, NULL ) ) tr_ctorSetPeerLimit( ctor, TR_FORCE, gtr_pref_int_get( TR_PREFS_KEY_PEER_LIMIT_TORRENT ) ); if( tr_ctorGetDownloadDir( ctor, TR_FORCE, NULL ) ) { const char * path = gtr_pref_string_get( TR_PREFS_KEY_DOWNLOAD_DIR ); tr_ctorSetDownloadDir( ctor, TR_FORCE, path ); } }