@@ -556,7 +556,17 @@ impl Tab {
556556 imp. stack . add_child ( & page) ;
557557 imp. stack . set_visible_child ( & page) ;
558558
559+ let downloaded_file_url = format ! ( "file://{}" , d_path. as_os_str( ) . to_str( ) . unwrap( ) ) ;
560+ info ! ( "Downloading to {}" , downloaded_file_url) ;
561+ page. imp ( ) . open_btn . connect_clicked ( move |_| {
562+ gtk:: show_uri ( None :: < & gtk:: Window > , & downloaded_file_url, 0 ) ;
563+ } ) ;
564+
559565
566+ let ext = file_name. split ( "." ) . last ( ) ;
567+ if let Some ( true ) = ext. map ( |ext| crate :: common:: STREAMABLE_EXTS . contains ( & ext) ) {
568+ page. imp ( ) . open_btn . set_opacity ( 1.0 ) ;
569+ }
560570
561571 let mut buffer = Vec :: with_capacity ( 8192 ) ;
562572 buffer. extend_from_slice ( & [ 0 ; 8192 ] ) ;
@@ -576,7 +586,7 @@ impl Tab {
576586 let t = glib:: real_time ( ) ;
577587 if t - last_update_time > THROTTLE_TIME {
578588 page. imp ( ) . progress_bar . pulse ( ) ;
579- page. imp ( ) . label_downloaded . set_text ( & format ! ( "{}KB" , read / 1000 ) ) ;
589+ page. imp ( ) . label_downloaded . set_text ( & format ! ( "{:.2 }KB" , read as f64 / 1000.0 ) ) ;
580590 last_update_time = t;
581591 }
582592 }
@@ -586,14 +596,11 @@ impl Tab {
586596 Err ( e) => return Err ( e. into ( ) ) ,
587597 }
588598 }
589- page. imp ( ) . label_downloaded . set_text ( & format ! ( "{}KB" , read / 1000 ) ) ;
599+ page. imp ( ) . label_downloaded . set_text ( & format ! ( "{:.2 }KB" , read as f64 / 1000.0 ) ) ;
590600 page. imp ( ) . progress_bar . set_fraction ( 1.0 ) ;
591601 page. imp ( ) . open_btn . set_opacity ( 1.0 ) ;
592-
593- let downloaded_file_url = format ! ( "file://{}" , d_path. as_os_str( ) . to_str( ) . unwrap( ) ) ;
594- page. imp ( ) . open_btn . connect_clicked ( move |_| {
595- gtk:: show_uri ( None :: < & gtk:: Window > , & downloaded_file_url, 0 ) ;
596- } ) ;
602+ page. imp ( ) . open_btn . set_label ( "Open" ) ;
603+ page. imp ( ) . open_btn . add_css_class ( "suggested-action" ) ;
597604
598605 Ok ( ( ) )
599606 }
0 commit comments