@@ -88,7 +88,6 @@ typedef enum {
8888
8989typedef struct {
9090 GIOSchedulerJob * io_job ;
91- GTimer * time ;
9291 GtkWindow * parent_window ;
9392 int monitor_num ;
9493 int inhibit_cookie ;
@@ -1149,7 +1148,6 @@ init_common (gsize job_size,
11491148 }
11501149 common -> progress = nemo_progress_info_new ();
11511150 common -> cancellable = nemo_progress_info_get_cancellable (common -> progress );
1152- common -> time = g_timer_new ();
11531151 common -> inhibit_cookie = -1 ;
11541152 common -> monitor_num = 0 ;
11551153 if (parent_window ) {
@@ -1169,7 +1167,6 @@ finalize_common (CommonJob *common)
11691167 }
11701168
11711169 common -> inhibit_cookie = -1 ;
1172- g_timer_destroy (common -> time );
11731170
11741171 if (common -> parent_window ) {
11751172 g_object_remove_weak_pointer (G_OBJECT (common -> parent_window ),
@@ -1355,7 +1352,7 @@ run_simple_dialog_va (CommonJob *job,
13551352 const char * button_title ;
13561353 GPtrArray * ptr_array ;
13571354
1358- g_timer_stop (job -> time );
1355+ nemo_progress_info_pause (job -> progress );
13591356
13601357 data = g_new0 (RunSimpleDialogData , 1 );
13611358 data -> parent_window = & job -> parent_window ;
@@ -1373,18 +1370,16 @@ run_simple_dialog_va (CommonJob *job,
13731370 g_ptr_array_add (ptr_array , NULL );
13741371 data -> button_titles = (const char * * )g_ptr_array_free (ptr_array , FALSE);
13751372
1376- nemo_progress_info_pause (job -> progress );
13771373 g_io_scheduler_job_send_to_mainloop (job -> io_job ,
13781374 do_run_simple_dialog ,
13791375 data ,
13801376 NULL );
1381- nemo_progress_info_resume (job -> progress );
13821377 res = data -> result ;
13831378
13841379 g_free (data -> button_titles );
13851380 g_free (data );
13861381
1387- g_timer_continue (job -> time );
1382+ nemo_progress_info_resume (job -> progress );
13881383
13891384 g_free (primary_text );
13901385 g_free (secondary_text );
@@ -1709,23 +1704,30 @@ report_delete_progress (CommonJob *job,
17091704 nemo_progress_info_take_status (job -> progress ,
17101705 f (_ ("Deleting files" )));
17111706
1712- elapsed = g_timer_elapsed (job -> time , NULL );
1707+ elapsed = nemo_progress_info_get_elapsed_time (job -> progress );
17131708 if (elapsed < SECONDS_NEEDED_FOR_RELIABLE_TRANSFER_RATE ) {
1714-
1715- nemo_progress_info_set_details (job -> progress , files_left_s );
1709+ if (nemo_progress_info_get_is_paused (job -> progress )) {
1710+ nemo_progress_info_set_details (job -> progress , _ ("Paused" ));
1711+ } else {
1712+ nemo_progress_info_set_details (job -> progress , files_left_s );
1713+ }
17161714 } else {
1717- char * details , * time_left_s ;
1718- transfer_rate = transfer_info -> num_files / elapsed ;
1719- remaining_time = files_left / transfer_rate ;
1720-
1721- /* To translators: %T will expand to a time like "2 minutes".
1722- * The singular/plural form will be used depending on the remaining time (i.e. the %T argument).
1723- */
1724- time_left_s = f (ngettext ("%T left" ,
1725- "%T left" ,
1726- seconds_count_format_time_units (remaining_time )),
1727- remaining_time );
1715+ char * details , * time_left_s ;
17281716
1717+ if (nemo_progress_info_get_is_paused (job -> progress )) {
1718+ time_left_s = g_strdup (_ ("Paused" ));
1719+ } else {
1720+ transfer_rate = transfer_info -> num_files / elapsed ;
1721+ remaining_time = files_left / transfer_rate ;
1722+
1723+ /* To translators: %T will expand to a time like "2 minutes".
1724+ * The singular/plural form will be used depending on the remaining time (i.e. the %T argument).
1725+ */
1726+ time_left_s = f (ngettext ("%T left" ,
1727+ "%T left" ,
1728+ seconds_count_format_time_units (remaining_time )),
1729+ remaining_time );
1730+ }
17291731 details = g_strconcat (files_left_s , "\xE2\x80\x94" , time_left_s , NULL );
17301732 nemo_progress_info_take_details (job -> progress , details );
17311733
@@ -2004,7 +2006,7 @@ delete_files (CommonJob *job, GList *files, guint *files_skipped)
20042006 return ;
20052007 }
20062008
2007- g_timer_start (job -> time );
2009+ nemo_progress_info_start (job -> progress );
20082010
20092011 memset (& transfer_info , 0 , sizeof (transfer_info ));
20102012 report_delete_progress (job , & source_info , & transfer_info );
@@ -2762,7 +2764,7 @@ static void
27622764report_count_progress (CommonJob * job ,
27632765 SourceInfo * source_info )
27642766{
2765- char * s ;
2767+ char * s , * details ;
27662768
27672769 switch (source_info -> op ) {
27682770
@@ -2799,7 +2801,14 @@ report_count_progress (CommonJob *job,
27992801 break ;
28002802 }
28012803
2802- nemo_progress_info_take_details (job -> progress , s );
2804+ if (nemo_progress_info_get_is_paused (job -> progress )) {
2805+ details = g_strconcat (s , "\xE2\x80\x94" , _ ("Paused" ), NULL );
2806+ g_free (s );
2807+ } else {
2808+ details = s ;
2809+ }
2810+
2811+ nemo_progress_info_take_details (job -> progress , details );
28032812 nemo_progress_info_pulse_progress (job -> progress );
28042813}
28052814
@@ -3329,7 +3338,7 @@ report_copy_progress (CopyMoveJob *copy_job,
33293338
33303339 total_size = MAX (source_info -> num_bytes , transfer_info -> num_bytes );
33313340
3332- elapsed = g_timer_elapsed (job -> time , NULL );
3341+ elapsed = nemo_progress_info_get_elapsed_time (job -> progress );
33333342 transfer_rate = 0 ;
33343343 if (elapsed > 0 ) {
33353344 transfer_rate = transfer_info -> num_bytes / elapsed ;
@@ -3338,26 +3347,36 @@ report_copy_progress (CopyMoveJob *copy_job,
33383347 if (elapsed < SECONDS_NEEDED_FOR_RELIABLE_TRANSFER_RATE &&
33393348 transfer_rate > 0 ) {
33403349 char * s ;
3341- /* To translators: %S will expand to a size like "2 bytes" or "3 MB", so something like "4 kb of 4 MB" */
3342- s = f (_ ("%S of %S" ), transfer_info -> num_bytes , total_size );
3343- nemo_progress_info_take_details (job -> progress , s );
3344- } else {
3345- char * s ;
3346- remaining_time = (total_size - transfer_info -> num_bytes ) / transfer_rate ;
33473350
3348- /* To translators: %S will expand to a size like "2 bytes" or "3 MB", %T to a time duration like
3349- * "2 minutes". So the whole thing will be something like "2 kb of 4 MB -- 2 hours left (4kb/sec)"
3350- *
3351- * The singular/plural form will be used depending on the remaining time (i.e. the %T argument).
3352- */
3353- s = f (ngettext ("%S of %S \xE2\x80\x94 %T left (%S/sec)" ,
3354- "%S of %S \xE2\x80\x94 %T left (%S/sec)" ,
3355- seconds_count_format_time_units (remaining_time )),
3356- transfer_info -> num_bytes , total_size ,
3357- remaining_time ,
3358- (goffset )transfer_rate );
3359- nemo_progress_info_take_details (job -> progress , s );
3360- }
3351+ if (nemo_progress_info_get_is_paused (job -> progress )) {
3352+ s = g_strdup (_ ("Paused" ));
3353+ } else {
3354+ /* To translators: %S will expand to a size like "2 bytes" or "3 MB", so something like "4 kb of 4 MB" */
3355+ s = f (_ ("%S of %S" ), transfer_info -> num_bytes , total_size );
3356+ }
3357+
3358+ nemo_progress_info_take_details (job -> progress , s );
3359+ } else {
3360+ if (nemo_progress_info_get_is_paused (job -> progress )) {
3361+ nemo_progress_info_take_details (job -> progress , g_strdup (_ ("Paused" )));
3362+ } else {
3363+ char * s ;
3364+ remaining_time = (total_size - transfer_info -> num_bytes ) / transfer_rate ;
3365+
3366+ /* To translators: %S will expand to a size like "2 bytes" or "3 MB", %T to a time duration like
3367+ * "2 minutes". So the whole thing will be something like "2 kb of 4 MB -- 2 hours left (4kb/sec)"
3368+ *
3369+ * The singular/plural form will be used depending on the remaining time (i.e. the %T argument).
3370+ */
3371+ s = f (ngettext ("%S of %S \xE2\x80\x94 %T left (%S/sec)" ,
3372+ "%S of %S \xE2\x80\x94 %T left (%S/sec)" ,
3373+ seconds_count_format_time_units (remaining_time )),
3374+ transfer_info -> num_bytes , total_size ,
3375+ remaining_time ,
3376+ (goffset )transfer_rate );
3377+ nemo_progress_info_take_details (job -> progress , s );
3378+ }
3379+ }
33613380
33623381 nemo_progress_info_set_progress (job -> progress , transfer_info -> num_bytes , total_size );
33633382}
@@ -4326,7 +4345,7 @@ run_conflict_dialog (CommonJob *job,
43264345 ConflictDialogData * data ;
43274346 ConflictResponseData * resp_data ;
43284347
4329- g_timer_stop (job -> time );
4348+ nemo_progress_info_pause (job -> progress );
43304349
43314350 data = g_new0 (ConflictDialogData , 1 );
43324351 data -> parent = job -> parent_window ;
@@ -4338,16 +4357,14 @@ run_conflict_dialog (CommonJob *job,
43384357 resp_data -> new_name = NULL ;
43394358 data -> resp_data = resp_data ;
43404359
4341- nemo_progress_info_pause (job -> progress );
43424360 g_io_scheduler_job_send_to_mainloop (job -> io_job ,
43434361 do_run_conflict_dialog ,
43444362 data ,
43454363 NULL );
4346- nemo_progress_info_resume (job -> progress );
43474364
43484365 g_free (data );
43494366
4350- g_timer_continue (job -> time );
4367+ nemo_progress_info_resume (job -> progress );
43514368
43524369 return resp_data ;
43534370}
@@ -4978,7 +4995,7 @@ copy_job (GIOSchedulerJob *io_job,
49784995 goto aborted ;
49794996 }
49804997
4981- g_timer_start ( job -> common . time );
4998+ nemo_progress_info_start ( common -> progress );
49824999
49835000 memset (& transfer_info , 0 , sizeof (transfer_info ));
49845001 copy_files (job ,
@@ -5086,10 +5103,14 @@ report_move_progress (CopyMoveJob *move_job, int total, int left)
50865103 f (_ ("Preparing to Move to \"%B\"" ),
50875104 move_job -> destination ));
50885105
5089- nemo_progress_info_take_details (job -> progress ,
5090- f (ngettext ("Preparing to move %'d file" ,
5091- "Preparing to move %'d files" ,
5092- left ), left ));
5106+ if (nemo_progress_info_get_is_paused (job -> progress )) {
5107+ nemo_progress_info_set_details (job -> progress , _ ("Paused" ));
5108+ } else {
5109+ nemo_progress_info_take_details (job -> progress ,
5110+ f (ngettext ("Preparing to move %'d file" ,
5111+ "Preparing to move %'d files" ,
5112+ left ), left ));
5113+ }
50935114
50945115 nemo_progress_info_pulse_progress (job -> progress );
50955116}
0 commit comments