9
9
# Copyright (c) 2021 dmh23
10
10
#
11
11
12
- from PyQt6 .QtWidgets import QDialog , QDialogButtonBox , QLabel , QMainWindow , QGridLayout
12
+ from PyQt6 .QtCore import Qt
13
+ from PyQt6 .QtWidgets import QDialog , QDialogButtonBox , QLabel , QMainWindow , QGridLayout , QVBoxLayout , QPushButton
13
14
14
15
from src .log .log_utils import get_model_info_for_open_model_dialog , OpenFileInfo
15
16
from src .ui .please_wait import PleaseWait
@@ -55,25 +56,20 @@ def __init__(self, parent: QMainWindow, please_wait: PleaseWait, current_track:
55
56
best_best_times = None
56
57
best_average_times = None
57
58
58
- self .layout = QGridLayout ( )
59
+ self .setWindowTitle ( "Open Log File" )
59
60
60
- # self._place_in_grid(0, 3, tk.Label(master, text="Episodes", justify=tk.CENTER))
61
- # self._place_in_grid(0, 4, tk.Label(master, text="Average\nProgress", justify=tk.CENTER))
62
- # self._place_in_grid(0, 5, tk.Label(master, text="Full\nLaps", justify=tk.CENTER))
61
+ log_layout = QGridLayout ()
62
+ log_layout .setHorizontalSpacing (15 )
63
63
64
- self . layout . addWidget (QLabel ("Episodes" ), 0 , 3 )
65
- self . layout . addWidget (QLabel ("Average\n Progress" ), 0 , 4 )
66
- self . layout . addWidget (QLabel ("Full\n Laps" ), 0 , 5 )
64
+ log_layout . addWidget (_make_centred_label ("Episodes" ), 0 , 3 )
65
+ log_layout . addWidget (_make_centred_label ("Average\n Progress" ), 0 , 4 )
66
+ log_layout . addWidget (_make_centred_label ("Full\n Laps" ), 0 , 5 )
67
67
68
68
if show_laps :
69
- # self._place_in_grid(0, 6, tk.Label(master, text="Best\nLap", justify=tk.CENTER))
70
- # self._place_in_grid(0, 7, tk.Label(master, text="Average\nLap", justify=tk.CENTER))
71
-
72
- self .layout .addWidget (QLabel ("Best\n Lap" ), 0 , 6 )
73
- self .layout .addWidget (QLabel ("Average\n Lap" ), 0 , 7 )
69
+ log_layout .addWidget (_make_centred_label ("Best\n Lap" ), 0 , 6 )
70
+ log_layout .addWidget (_make_centred_label ("Average\n Lap" ), 0 , 7 )
74
71
75
72
row = 1
76
-
77
73
for log in log_info :
78
74
if len (log .source_files ) == 1 :
79
75
file_names = log .source_files [0 ]
@@ -88,51 +84,33 @@ def __init__(self, parent: QMainWindow, please_wait: PleaseWait, current_track:
88
84
progress_percent = self ._get_progress_percent (log_meta )
89
85
success_percent = self ._get_success_percent (log_meta )
90
86
91
- self .layout .addWidget (QLabel (log .display_name ), row , 0 )
92
- self .layout .addWidget (QLabel (log_meta .race_type .get ().name ), row , 1 )
93
- self .layout .addWidget (QLabel (log_meta .job_type .get ().name ), row , 2 )
94
-
95
- self .layout .addWidget (self ._make_large_integer_label (log_meta .episode_count .get ()), row , 3 )
96
- self .layout .addWidget (self ._make_percent_label (progress_percent , best_progress_percent ), row , 4 )
97
- self .layout .addWidget (self ._make_percent_label (success_percent , best_success_percent ), row , 5 )
98
-
99
-
100
87
# self._place_in_grid(row, 0, tk.Button(master, text=log.display_name, command=callback), "E")
101
- # self._place_in_grid(row, 1, tk.Label(master, text=log_meta.race_type.get().name), "E")
102
- # self._place_in_grid(row, 2, tk.Label(master, text=log_meta.job_type.get().name), "E")
103
- # self._place_in_grid(row, 3, self._make_large_integer_label(master, log_meta.episode_count.get()))
104
- # self._place_in_grid(row, 4, self._make_percent_label(master, progress_percent, best_progress_percent))
105
- # self._place_in_grid(row, 5, self._make_percent_label(master, success_percent, best_success_percent))
88
+ log_layout .addWidget (QPushButton (log .display_name ), row , 0 )
106
89
107
- if show_laps :
108
- self .layout .addWidget (self ._make_lap_time_label (log_meta .best_time .get (), best_best_times ), row , 6 )
109
- self .layout .addWidget (self ._make_lap_time_label (log_meta .average_time .get (), best_average_times ), row , 7 )
90
+ log_layout .addWidget (_make_centred_label (log_meta .race_type .get ().name ), row , 1 )
91
+ log_layout .addWidget (_make_centred_label (log_meta .job_type .get ().name ), row , 2 )
92
+ log_layout .addWidget (self ._make_large_integer_label (log_meta .episode_count .get ()), row , 3 )
93
+ log_layout .addWidget (self ._make_percent_label (progress_percent , best_progress_percent ), row , 4 )
94
+ log_layout .addWidget (self ._make_percent_label (success_percent , best_success_percent ), row , 5 )
110
95
111
- # self._place_in_grid(row, 6, self._make_lap_time_label(master,
112
- # log_meta.best_time.get(),
113
- # best_best_times))
114
- # self._place_in_grid(row, 7, self._make_lap_time_label(master,
115
- # log_meta.average_time.get(),
116
- # best_average_times))
96
+ if show_laps :
97
+ log_layout .addWidget (self ._make_lap_time_label (log_meta .best_time .get (), best_best_times ), row , 6 )
98
+ log_layout .addWidget (self ._make_lap_time_label (log_meta .average_time .get (), best_average_times ), row , 7 )
117
99
118
100
row += 1
119
101
120
102
121
103
# SAMPLE CODE
122
104
105
+ button_box = QDialogButtonBox (QDialogButtonBox .StandardButton .Cancel )
106
+ button_box .rejected .connect (self .reject )
123
107
124
- self .setWindowTitle ("HELLO!" )
125
-
126
- QBtn = QDialogButtonBox .StandardButton .Ok | QDialogButtonBox .StandardButton .Cancel
108
+ layout = QVBoxLayout ()
109
+ layout .addLayout (log_layout )
110
+ layout .addSpacing (10 )
111
+ layout .addWidget (button_box , alignment = Qt .AlignmentFlag .AlignCenter )
127
112
128
- self .buttonBox = QDialogButtonBox (QBtn )
129
- self .buttonBox .accepted .connect (self .accept )
130
- self .buttonBox .rejected .connect (self .reject )
131
-
132
-
133
-
134
- self .layout .addWidget (self .buttonBox , row , 4 )
135
- self .setLayout (self .layout )
113
+ self .setLayout (layout )
136
114
137
115
@staticmethod
138
116
def _get_progress_percent (log_meta ):
@@ -146,19 +124,20 @@ def _get_success_percent(log_meta):
146
124
def _make_percent_label (value , best_value ):
147
125
formatted_text = get_pretty_whole_percentage (value )
148
126
if value >= 0.99 * best_value and value > 0.0 :
149
- return QLabel (formatted_text )
127
+ return _make_centred_label (formatted_text , "palegreen" )
150
128
# return tk.Label(master, text=formatted_text, background="palegreen", justify=tk.CENTER)
151
129
elif value >= 0.97 * best_value and value > 0.0 :
152
- return QLabel (formatted_text )
130
+ return _make_centred_label (formatted_text , "lightskyblue" )
153
131
# return tk.Label(master, text=formatted_text, background="lightblue1", justify=tk.CENTER)
154
132
else :
155
- return QLabel (formatted_text )
133
+ return _make_centred_label (formatted_text )
156
134
# return tk.Label(master, text=formatted_text, justify=tk.CENTER)
157
135
158
136
@staticmethod
159
137
def _make_large_integer_label (value ):
160
- # return tk.Label(master, text=get_pretty_large_integer(value), justify=tk.CENTER)
161
- return QLabel (get_pretty_large_integer (value ))
138
+ label = QLabel (get_pretty_large_integer (value ))
139
+ label .setAlignment (Qt .AlignmentFlag .AlignCenter )
140
+ return label
162
141
163
142
@staticmethod
164
143
def _make_lap_time_label (seconds , best_seconds ):
@@ -169,11 +148,16 @@ def _make_lap_time_label(seconds, best_seconds):
169
148
formatted_text = "---"
170
149
171
150
if best_seconds >= 0.99 * seconds and seconds > 0.0 :
172
- return QLabel (formatted_text )
173
- # return tk.Label(master, text=formatted_text, background="palegreen", justify=tk.CENTER)
151
+ return _make_centred_label (formatted_text , "palegreen" )
174
152
elif best_seconds >= 0.97 * seconds and seconds > 0.0 :
175
- return QLabel (formatted_text )
176
- # return tk.Label(master, text=formatted_text, background="lightblue1", justify=tk.CENTER)
153
+ return _make_centred_label (formatted_text , "lightskyblue" )
177
154
else :
178
- return QLabel (formatted_text )
179
- # return tk.Label(master, text=formatted_text, justify=tk.CENTER)
155
+ return _make_centred_label (formatted_text )
156
+
157
+
158
+ def _make_centred_label (display_value : str , colour : str = None ):
159
+ label = QLabel (display_value )
160
+ label .setAlignment (Qt .AlignmentFlag .AlignCenter )
161
+ if colour is not None :
162
+ label .setStyleSheet ("background-color: " + colour )
163
+ return label
0 commit comments