mirror of
				https://github.com/johrpan/musicus.git
				synced 2025-10-26 11:47:25 +01:00 
			
		
		
		
	Reintroduce seeking functionality
This commit is contained in:
		
							parent
							
								
									a5af4d8c9d
								
							
						
					
					
						commit
						5c7c63a928
					
				
					 1 changed files with 28 additions and 17 deletions
				
			
		|  | @ -67,8 +67,8 @@ impl Screen<(), ()> for PlayerScreen { | ||||||
|         let list = List::new(); |         let list = List::new(); | ||||||
|         frame.set_child(Some(&list.widget)); |         frame.set_child(Some(&list.widget)); | ||||||
| 
 | 
 | ||||||
|         let position_controller = gtk::GestureClick::new(); |         let event_controller = gtk::EventControllerLegacy::new(); | ||||||
|         position_scale.add_controller(&position_controller); |         position_scale.add_controller(&event_controller); | ||||||
| 
 | 
 | ||||||
|         let this = Rc::new(Self { |         let this = Rc::new(Self { | ||||||
|             handle, |             handle, | ||||||
|  | @ -173,24 +173,35 @@ impl Screen<(), ()> for PlayerScreen { | ||||||
|             this.handle.backend.pl().clear(); |             this.handle.backend.pl().clear(); | ||||||
|         })); |         })); | ||||||
| 
 | 
 | ||||||
|         // position_controller.connect_pressed(clone!(@weak this => move |_, _, _, _| {
 |         event_controller.connect_event(clone!(@weak this => move |_, event| { | ||||||
|         //     this.seeking.replace(true);
 |             if let Some(event) = event.downcast_ref::<gdk::ButtonEvent>() { | ||||||
|         // }));
 |                 if event.get_button() == gdk::BUTTON_PRIMARY { | ||||||
|  |                     match event.get_event_type() { | ||||||
|  |                         gdk::EventType::ButtonPress => { | ||||||
|  |                             this.seeking.replace(true); | ||||||
|  |                         } | ||||||
|  |                         gdk::EventType::ButtonRelease => { | ||||||
|  |                             this.handle.backend.pl().seek(this.position.get_value() as u64); | ||||||
|  |                             this.seeking.replace(false); | ||||||
|  |                         } | ||||||
|  |                         _ => (), | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|         // position_controller.connect_unpaired_release(clone!(@weak this => move |_, _, _, _, _| {
 |             } | ||||||
|         //     this.handle.backend.pl().seek(this.position.get_value() as u64);
 |  | ||||||
|         //     this.seeking.replace(false);
 |  | ||||||
|         // }));
 |  | ||||||
| 
 | 
 | ||||||
|         // position_scale.connect_value_changed(clone!(@weak this => move |_| {
 |             glib::signal::Inhibit(false) | ||||||
|         //     if this.seeking.get() {
 |         })); | ||||||
|         //         let ms = this.position.get_value() as u64;
 |  | ||||||
|         //         let min = ms / 60000;
 |  | ||||||
|         //         let sec = (ms % 60000) / 1000;
 |  | ||||||
| 
 | 
 | ||||||
|         //         this.position_label.set_text(&format!("{}:{:02}", min, sec));
 |         position_scale.connect_value_changed(clone!(@weak this => move |_| { | ||||||
|         //     }
 |             if this.seeking.get() { | ||||||
|         // }));
 |                 let ms = this.position.get_value() as u64; | ||||||
|  |                 let min = ms / 60000; | ||||||
|  |                 let sec = (ms % 60000) / 1000; | ||||||
|  | 
 | ||||||
|  |                 this.position_label.set_text(&format!("{}:{:02}", min, sec)); | ||||||
|  |             } | ||||||
|  |         })); | ||||||
| 
 | 
 | ||||||
|         this.list.set_make_widget_cb(clone!(@weak this => move |index| { |         this.list.set_make_widget_cb(clone!(@weak this => move |index| { | ||||||
|             let widget = match this.items.borrow()[index] { |             let widget = match this.items.borrow()[index] { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Elias Projahn
						Elias Projahn