21
21
22
22
23
23
class OpenFileDialog (QDialog ):
24
- def __init__ (self , parent : QMainWindow , please_wait : PleaseWait , current_track : Track , log_directory : str ):
24
+ def __init__ (self , parent : QMainWindow , please_wait : PleaseWait , current_track : Track , log_directory : str , chosen_file_callback : callable ):
25
25
super ().__init__ (parent )
26
26
27
+ self ._chosen_file_callback = chosen_file_callback
28
+
27
29
log_info , hidden_log_count = get_model_info_for_open_model_dialog (current_track , log_directory , please_wait )
28
30
29
31
all_best_times = []
@@ -76,16 +78,15 @@ def __init__(self, parent: QMainWindow, please_wait: PleaseWait, current_track:
76
78
else :
77
79
file_names = log .source_files
78
80
79
- # TODO equivalent:
80
- # def callback(f=file_names): self._callback_open_file(f)
81
-
82
81
log_meta = log .log_meta
83
82
84
83
progress_percent = self ._get_progress_percent (log_meta )
85
84
success_percent = self ._get_success_percent (log_meta )
86
85
87
86
# self._place_in_grid(row, 0, tk.Button(master, text=log.display_name, command=callback), "E")
88
- log_layout .addWidget (QPushButton (log .display_name ), row , 0 )
87
+ button = QPushButton (log .display_name )
88
+ button .clicked .connect (lambda state , x = file_names : self ._callback_open_file (x )) # Magic ?!!?!?!
89
+ log_layout .addWidget (button , row , 0 )
89
90
90
91
log_layout .addWidget (_make_centred_label (log_meta .race_type .get ().name ), row , 1 )
91
92
log_layout .addWidget (_make_centred_label (log_meta .job_type .get ().name ), row , 2 )
@@ -112,6 +113,10 @@ def __init__(self, parent: QMainWindow, please_wait: PleaseWait, current_track:
112
113
113
114
self .setLayout (layout )
114
115
116
+ def _callback_open_file (self , file_names ):
117
+ self ._chosen_file_callback (file_names )
118
+ self .accept ()
119
+
115
120
@staticmethod
116
121
def _get_progress_percent (log_meta ):
117
122
return log_meta .average_percent_complete .get ()
0 commit comments