@@ -246,7 +246,10 @@ def keyPressEvent(self, event):
246246 if event .key () == Qt .Key_B :
247247 self .slider_pressed = True
248248 new_index = int (self .ui .timeSlider .value ()) - 1
249- self .signal_provider .update_index (new_index )
249+ dataset_percentage = float (new_index ) / float (
250+ self .ui .timeSlider .maximum ()
251+ )
252+ self .signal_provider .set_dataset_percentage (dataset_percentage )
250253 self .ui .timeLabel .setText (f"{ self .signal_provider .current_time :.2f} " )
251254 self .text_logger .highlight_cell (
252255 self .find_text_log_index (self .get_text_log_item_path ())
@@ -255,11 +258,8 @@ def keyPressEvent(self, event):
255258 # for every video item we set the instant
256259 for video_item in self .video_items :
257260 if video_item .media_loaded :
258- video_percentage = float (new_index ) / float (
259- self .ui .timeSlider .maximum ()
260- )
261261 video_item .media_player .setPosition (
262- int (video_percentage * video_item .media_player .duration ())
262+ int (dataset_percentage * video_item .media_player .duration ())
263263 )
264264
265265 # update the time slider
@@ -268,7 +268,10 @@ def keyPressEvent(self, event):
268268 elif event .key () == Qt .Key_F :
269269 self .slider_pressed = True
270270 new_index = int (self .ui .timeSlider .value ()) + 1
271- self .signal_provider .update_index (new_index )
271+ dataset_percentage = float (new_index ) / float (
272+ self .ui .timeSlider .maximum ()
273+ )
274+ self .signal_provider .set_dataset_percentage (dataset_percentage )
272275 self .ui .timeLabel .setText (f"{ self .signal_provider .current_time :.2f} " )
273276 self .text_logger .highlight_cell (
274277 self .find_text_log_index (self .get_text_log_item_path ())
@@ -277,11 +280,8 @@ def keyPressEvent(self, event):
277280 # for every video item we set the instant
278281 for video_item in self .video_items :
279282 if video_item .media_loaded :
280- video_percentage = float (new_index ) / float (
281- self .ui .timeSlider .maximum ()
282- )
283283 video_item .media_player .setPosition (
284- int (video_percentage * video_item .media_player .duration ())
284+ int (dataset_percentage * video_item .media_player .duration ())
285285 )
286286
287287 self .ui .timeSlider .setValue (new_index )
@@ -303,31 +303,31 @@ def timeSlider_on_pressed(self):
303303
304304 def timeSlider_on_sliderMoved (self ):
305305 index = int (self .ui .timeSlider .value ())
306+ dataset_percentage = float (index ) / float (self .ui .timeSlider .maximum ())
306307
307308 for video_item in self .video_items :
308309 if video_item .media_loaded :
309- video_percentage = float (index ) / float (self .ui .timeSlider .maximum ())
310310 video_item .media_player .setPosition (
311- int (video_percentage * video_item .media_player .duration ())
311+ int (dataset_percentage * video_item .media_player .duration ())
312312 )
313313
314- self .signal_provider .update_index ( index )
314+ self .signal_provider .set_dataset_percentage ( dataset_percentage )
315315 self .ui .timeLabel .setText (f"{ self .signal_provider .current_time :.2f} " )
316316 self .text_logger .highlight_cell (
317317 self .find_text_log_index (self .get_text_log_item_path ())
318318 )
319319
320320 def timeSlider_on_release (self ):
321321 index = int (self .ui .timeSlider .value ())
322+ dataset_percentage = float (index ) / float (self .ui .timeSlider .maximum ())
322323
323324 for video_item in self .video_items :
324325 if video_item .media_loaded :
325- video_percentage = float (index ) / float (self .ui .timeSlider .maximum ())
326326 video_item .media_player .setPosition (
327- int (video_percentage * video_item .media_player .duration ())
327+ int (dataset_percentage * video_item .media_player .duration ())
328328 )
329329
330- self .signal_provider .update_index ( index )
330+ self .signal_provider .set_dataset_percentage ( dataset_percentage )
331331 self .ui .timeLabel .setText (f"{ self .signal_provider .current_time :.2f} " )
332332 self .text_logger .highlight_cell (
333333 self .find_text_log_index (self .get_text_log_item_path ())
@@ -475,22 +475,24 @@ def plotTabBar_currentChanged(self, index):
475475
476476 @pyqtSlot ()
477477 def update_index (self ):
478- if not self .slider_pressed :
479- self .ui .timeSlider .setValue (self .signal_provider .index )
480- self .ui .timeLabel .setText (f"{ self .signal_provider .current_time :.2f} " )
481- self .text_logger .highlight_cell (
482- self .find_text_log_index (self .get_text_log_item_path ())
483- )
478+ if self .slider_pressed :
479+ return
484480
485- # TODO: this is a hack to update the video player and it should be done only for the activated videos
486- for video_item in self .video_items :
487- if video_item .media_loaded :
488- video_percentage = float (self .ui .timeSlider .value ()) / float (
489- self .ui .timeSlider .maximum ()
490- )
491- video_item .media_player .setPosition (
492- int (video_percentage * video_item .media_player .duration ())
493- )
481+ self .ui .timeSlider .setValue (self .signal_provider .index )
482+ self .ui .timeLabel .setText (f"{ self .signal_provider .current_time :.2f} " )
483+ self .text_logger .highlight_cell (
484+ self .find_text_log_index (self .get_text_log_item_path ())
485+ )
486+
487+ # TODO: this is a hack to update the video player and it should be done only for the activated videos
488+ for video_item in self .video_items :
489+ if video_item .media_loaded :
490+ video_percentage = float (self .ui .timeSlider .value ()) / float (
491+ self .ui .timeSlider .maximum ()
492+ )
493+ video_item .media_player .setPosition (
494+ int (video_percentage * video_item .media_player .duration ())
495+ )
494496
495497 def closeEvent (self , event ):
496498 # close the window
0 commit comments