Changeset 5765 for trunk/gtk/makemeta-ui.c
- Timestamp:
- May 7, 2008, 4:06:07 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/makemeta-ui.c
r5636 r5765 25 25 #define UPDATE_INTERVAL_MSEC 200 26 26 27 #define BUILDER_KEY "builder" 28 #define UI_KEY "ui" 29 27 30 typedef struct 28 31 { … … 46 49 { 47 50 MakeMetaUI * ui = p; 48 tr_metaInfoBuilderFree( ui->builder );49 51 memset( ui, ~0, sizeof(MakeMetaUI) ); 50 52 g_free( ui ); … … 80 82 char buf[1024]; 81 83 double fraction; 82 MakeMetaUI * ui = (MakeMetaUI *)user_data;84 MakeMetaUI * ui = user_data; 83 85 GtkProgressBar * p = GTK_PROGRESS_BAR( ui->progressbar ); 84 86 … … 140 142 response_cb( GtkDialog* d, int response, gpointer user_data ) 141 143 { 142 MakeMetaUI * ui = (MakeMetaUI*)user_data;144 MakeMetaUI * ui = user_data; 143 145 char *tmp; 144 146 char buf[1024]; … … 191 193 192 194 static void 193 onSelectionChanged( GtkFileChooser *chooser, gpointer user_data ) 194 { 195 MakeMetaUI * ui = (MakeMetaUI *) user_data; 196 char * filename; 195 refreshFromBuilder( MakeMetaUI * ui ) 196 { 197 197 char sizeStr[128]; 198 198 char buf[MAX_PATH_LENGTH]; 199 uint64_t totalSize=0; 200 int fileCount=0, pieceCount=0, pieceSize=0; 201 202 if( ui->builder ) { 203 tr_metaInfoBuilderFree( ui->builder ); 204 ui->builder = NULL; 205 } 206 207 filename = gtk_file_chooser_get_filename( chooser ); 199 tr_metainfo_builder * builder = ui->builder; 200 const char * filename = builder ? builder->top : NULL; 201 208 202 if( !filename ) 209 203 g_snprintf( buf, sizeof( buf ), _( "No files selected" ) ); 210 else { 211 ui->builder = tr_metaInfoBuilderCreate( ui->handle, filename ); 204 else 212 205 g_snprintf( buf, sizeof(buf), "%s.torrent (%d%%)", filename, 0 ); 213 g_free( filename );214 fileCount = ui->builder->fileCount;215 totalSize = ui->builder->totalSize;216 pieceCount = ui->builder->pieceCount;217 pieceSize = ui->builder->pieceSize;218 }219 206 gtk_progress_bar_set_text( GTK_PROGRESS_BAR( ui->progressbar ), buf ); 220 207 refreshButtons( ui ); … … 223 210 g_snprintf( buf, sizeof( buf ), _( "<i>No files selected</i>" ) ); 224 211 else { 225 tr_strlsize( sizeStr, totalSize, sizeof(sizeStr) );212 tr_strlsize( sizeStr, builder->totalSize, sizeof(sizeStr) ); 226 213 g_snprintf( buf, sizeof( buf ), 227 214 /* %1$s is the torrent size 228 215 %2$'d is its number of files */ 229 216 ngettext( "<i>%1$s; %2$'d File</i>", 230 "<i>%1$s; %2$'d Files</i>", fileCount ),231 sizeStr, fileCount );217 "<i>%1$s; %2$'d Files</i>", builder->fileCount ), 218 sizeStr, builder->fileCount ); 232 219 } 233 220 gtk_label_set_markup ( GTK_LABEL(ui->size_lb), buf ); … … 236 223 *buf = '\0'; 237 224 else { 238 tr_strlsize( sizeStr, pieceSize, sizeof(sizeStr) );225 tr_strlsize( sizeStr, builder->pieceSize, sizeof(sizeStr) ); 239 226 g_snprintf( buf, sizeof( buf ), 240 227 /* %1$'s is number of pieces; … … 242 229 ngettext( "<i>%1$'d Piece @ %2$s</i>", 243 230 "<i>%1$'d Pieces @ %2$s</i>", 244 pieceCount ),245 pieceCount, sizeStr );231 builder->pieceCount ), 232 builder->pieceCount, sizeStr ); 246 233 } 247 234 gtk_label_set_markup ( GTK_LABEL(ui->pieces_lb), buf ); 235 } 236 237 static void 238 onSelectionChanged( GtkFileChooser * chooser, gpointer gui ) 239 { 240 MakeMetaUI * ui = gui; 241 char * filename = gtk_file_chooser_get_filename( chooser ); 242 tr_metainfo_builder * builder = tr_metaInfoBuilderCreate( ui->handle, filename ); 243 244 g_object_set_data_full( G_OBJECT( chooser ), 245 BUILDER_KEY, 246 builder, 247 (GDestroyNotify)tr_metaInfoBuilderFree ); 248 ui->builder = builder; 249 250 refreshFromBuilder( ui ); 251 252 g_free( filename ); 248 253 } 249 254 … … 254 259 gtk_widget_set_sensitive( w, active ); 255 260 if( active ) 256 g_signal_emit_by_name( w, "selection-changed", NULL ); 261 { 262 MakeMetaUI * ui = g_object_get_data( G_OBJECT( w ), UI_KEY ); 263 ui->builder = g_object_get_data( G_OBJECT( w ), BUILDER_KEY ); 264 refreshFromBuilder( ui ); 265 } 257 266 } 258 267 … … 285 294 l = gtk_radio_button_new_with_mnemonic( NULL, _( "_Single File:" ) ); 286 295 w = gtk_file_chooser_button_new( NULL, GTK_FILE_CHOOSER_ACTION_OPEN ); 296 g_object_set_data( G_OBJECT( w ), UI_KEY, ui ); 287 297 hig_workarea_add_row_w( t, &row, l, w, NULL ); 288 298 group = gtk_radio_button_get_group( GTK_RADIO_BUTTON( l ) ); … … 292 302 l = gtk_radio_button_new_with_mnemonic( group, _( "_Folder:" ) ); 293 303 w = gtk_file_chooser_button_new( NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ); 304 g_object_set_data( G_OBJECT( w ), UI_KEY, ui ); 294 305 hig_workarea_add_row_w( t, &row, l, w, NULL ); 295 306 g_signal_connect( l, "toggled", G_CALLBACK(onFileModeToggled), w );
Note: See TracChangeset
for help on using the changeset viewer.