@@ -81,14 +81,21 @@ def init_ui(self, message, suggested_asset, initial_filter):
8181 self .asset_list = wx .ListCtrl (self , style = wx .LC_REPORT | wx .LC_SINGLE_SEL )
8282 self .asset_list .AppendColumn (_ ("Asset Name" ), width = 500 )
8383 self .asset_list .AppendColumn (_ ("Version" ), width = 100 )
84- self .asset_list .AppendColumn (_ ("Size" ), width = 120 )
84+ self .asset_list .AppendColumn (_ ("Release" ), width = 220 )
85+ self .asset_list .AppendColumn (_ ("Size" ), width = 100 )
8586
8687 main_sizer .Add (self .asset_list , 1 , wx .ALL | wx .EXPAND , 10 )
8788
8889 # Suggested text
8990 self .suggested_text = None
9091 if suggested_asset :
91- self .suggested_text = wx .StaticText (self , label = _ ("Suggested: %s" ) % suggested_asset ['name' ])
92+ release_info = suggested_asset .get ('release_tag' , '' )
93+ if suggested_asset .get ('release_date' ):
94+ release_info = f"{ suggested_asset ['release_tag' ]} ({ suggested_asset ['release_date' ]} )"
95+ suggested_label = f"{ suggested_asset ['name' ]} "
96+ if release_info :
97+ suggested_label += f" [{ release_info } ]"
98+ self .suggested_text = wx .StaticText (self , label = _ ("Suggested: %s" ) % suggested_label )
9299 self .suggested_text .SetFont (self .suggested_text .GetFont ().Bold ())
93100 main_sizer .Add (self .suggested_text , 0 , wx .LEFT | wx .RIGHT | wx .BOTTOM , 10 )
94101
@@ -112,7 +119,7 @@ def init_ui(self, message, suggested_asset, initial_filter):
112119 screen_size = display .GetGeometry ().GetSize ()
113120
114121 # Desired size
115- desired_width = 840
122+ desired_width = 1030
116123 desired_height = 950
117124
118125 # Leave some margin from screen edges
@@ -156,6 +163,7 @@ def apply_filter(self, filter_text):
156163 def populate_list (self , suggested_asset = None ):
157164 self .asset_list .DeleteAllItems ()
158165
166+ found_better_match = False
159167 for i , asset in enumerate (self .filtered_assets ):
160168 index = self .asset_list .InsertItem (i , asset ['name' ])
161169
@@ -164,6 +172,19 @@ def populate_list(self, suggested_asset=None):
164172 version = match .group (1 ) if match else _ ("Unknown" )
165173 self .asset_list .SetItem (index , 1 , version )
166174
175+ # Format release info
176+ release_tag = asset .get ('release_tag' , '' )
177+ release_date = asset .get ('release_date' , '' )
178+ if release_tag and release_date :
179+ release_info = f"{ release_tag } ({ release_date } )"
180+ elif release_tag :
181+ release_info = release_tag
182+ elif release_date :
183+ release_info = release_date
184+ else :
185+ release_info = _ ("Unknown" )
186+ self .asset_list .SetItem (index , 2 , release_info )
187+
167188 # Format size
168189 size_bytes = asset .get ('size' , 0 )
169190 if size_bytes > 1024 * 1024 :
@@ -172,12 +193,20 @@ def populate_list(self, suggested_asset=None):
172193 size_str = f"{ size_bytes / 1024 :.1f} KB"
173194 else :
174195 size_str = f"{ size_bytes } B"
175- self .asset_list .SetItem (index , 2 , size_str )
196+ self .asset_list .SetItem (index , 3 , size_str )
176197
177198 # Select suggested asset
178199 if suggested_asset and asset ['name' ] == suggested_asset ['name' ]:
179- self .asset_list .Select (index )
180- self .asset_list .Focus (index )
200+ if suggested_asset ['release_tag' ] == asset .get ('release_tag' , '' ):
201+ found_better_match = True
202+ self .asset_list .Select (index )
203+ self .asset_list .Focus (index )
204+ print (f"Suggested asset match: { suggested_asset ['name' ]} , release: { suggested_asset ['release_tag' ]} ({ suggested_asset ['release_date' ]} )" )
205+ wx .Yield ()
206+
207+ if not found_better_match :
208+ self .asset_list .Select (index )
209+ self .asset_list .Focus (index )
181210
182211 def on_filter_changed (self , event ):
183212 filter_text = self .filter_text .GetValue ()
@@ -186,13 +215,16 @@ def on_filter_changed(self, event):
186215 self .populate_list ()
187216
188217 def on_filter_cleared (self , event ):
218+ self .filter_text .SetValue ('' )
189219 self .filtered_assets = self .assets .copy ()
190220 self .populate_list ()
221+ event .Skip ()
191222
192223 def on_ok (self , event ):
193224 selected_index = self .asset_list .GetFirstSelected ()
194225 if selected_index != - 1 :
195226 self .selected_asset = self .filtered_assets [selected_index ]
227+ print (f"User selected asset: { self .selected_asset ['name' ]} , release: { self .selected_asset .get ('release_tag' , 'unknown' )} ({ self .selected_asset .get ('release_date' , '' )} )" )
196228 self .EndModal (wx .ID_OK )
197229 else :
198230 wx .MessageBox (_ ("Please select an asset." ), _ ("No Selection" ), wx .OK | wx .ICON_WARNING )
0 commit comments