33
44global using VBFS = Microsoft . VisualBasic . FileIO . FileSystem ;
55using System ;
6+ using System . Collections . ObjectModel ;
67using System . ComponentModel ;
78using System . Diagnostics ;
89using System . IO ;
@@ -134,10 +135,13 @@ private void Lb_Queue_PreviewDragOver(object sender, DragEventArgs e)
134135
135136 private void Lb_Queue_SelectionChanged ( object sender , SelectionChangedEventArgs e )
136137 {
138+ Debug . WriteLine ( $ "lqs: { sender } { e } ") ;
137139 if ( e . OriginalSource != sender ) {
138140 return ;
139141 }
140142
143+ CheckMedia ( ) ;
144+
141145 e . Handled = true ;
142146 }
143147
@@ -208,21 +212,33 @@ private void Btn_Run_Loaded(object sender, RoutedEventArgs e)
208212 private void Btn_Remove_Click ( object sender , RoutedEventArgs e )
209213 {
210214 // var q = MathHelper.Wrap(QueueSelectedIndex + 1, Queue.Count);
211-
215+
212216 var old = CurrentQueueItem ;
213- var i = Queue . IndexOf ( old ) ;
217+
218+ if ( old == null ) {
219+ goto ret ;
220+ }
221+ var i = Queue . IndexOf ( old ) ;
214222 Queue . Remove ( old ) ;
215223
216224 // TrySeekQueue(q);
217225 // AdvanceQueue(-1);
218226
219227 if ( m_queries . TryRemove ( old , out var sq ) ) {
220- foreach ( var r in m_resultMap [ sq ] ) {
228+ m_resultMap . TryRemove ( sq , out var result ) ;
229+
230+ foreach ( var r in result ) {
221231 r . Dispose ( ) ;
222232 }
223-
233+ result . Clear ( ) ;
234+ /*foreach (var r in m_resultMap[sq]) {
235+ r.Dispose();
236+ }*/
237+
224238 m_images . TryRemove ( sq , out var img ) ;
239+ img = null ;
225240 }
241+ // ClearQueryControls();
226242
227243 var i2 = i - 1 ;
228244
@@ -233,14 +249,16 @@ private void Btn_Remove_Click(object sender, RoutedEventArgs e)
233249 n = String . Empty ;
234250 else
235251 n = Queue [ i2 ] ;
236-
237- CurrentQueueItem = n ;
252+ CurrentQueueItem = n ;
253+ // Lb_Queue.ItemsSource. = n;
254+ // AdvanceQueue(i-1);
238255
239256 sq ? . Dispose ( ) ;
240257 GC . Collect ( ) ;
241258 GC . WaitForPendingFinalizers ( ) ;
242259 GC . Collect ( ) ;
243260 // AdvanceQueue();
261+ ret :
244262 e . Handled = true ;
245263 }
246264
@@ -250,7 +268,7 @@ private void Btn_Delete_Click(object sender, RoutedEventArgs e)
250268 ClearResults ( ) ;
251269 m_cbDispatch . Stop ( ) ;
252270 var old = CurrentQueueItem ;
253- m_clipboard . Remove ( old ) ;
271+ m_clipboardHistory . Remove ( old ) ;
254272 CurrentQueueItem = String . Empty ;
255273 m_queries . TryRemove ( old , out var q ) ;
256274 m_resultMap . TryRemove ( Query , out var x ) ;
@@ -303,14 +321,15 @@ private void Lv_Results_SelectionChanged(object sender, SelectionChangedEventArg
303321 UpdatePreview ( uri ) ;
304322 CheckMedia ( ) ;
305323 }
306- else if ( ri . Result . Root . Engine . EngineOption != SearchEngineOptions . TraceMoe ) {
324+ else if ( ri . Result . Root . Engine . EngineOption != SearchEngineOptions . TraceMoe ) {
307325 UpdatePreview ( ri ) ;
308326 CheckMedia ( ) ;
309327 }
310328 else {
311329 UpdatePreview ( ) ;
330+
312331 if ( ri . Result . Metadata is TraceMoeEngine . TraceMoeDoc doc ) {
313-
332+
314333 Me_Preview . ScrubbingEnabled = false ;
315334 Me_Preview . UnloadedBehavior = MediaState . Close ;
316335 Me_Preview . LoadedBehavior = MediaState . Manual ;
@@ -332,18 +351,17 @@ private void Lv_Results_SelectionChanged(object sender, SelectionChangedEventArg
332351 e . Handled = true ;
333352 return ;
334353
335- void CheckMedia ( )
336- {
337- if ( ShowMedia ) {
338- Me_Preview . Stop ( ) ;
339- Me_Preview . Close ( ) ;
340- Me_Preview . Source = null ;
341- ShowMedia = false ;
342- }
343- else {
354+ }
344355
345- }
356+ private void CheckMedia ( )
357+ {
358+ if ( ShowMedia ) {
359+ Me_Preview . Stop ( ) ;
360+ Me_Preview . Close ( ) ;
361+ Me_Preview . Source = null ;
362+ ShowMedia = false ;
346363 }
364+ else { }
347365 }
348366
349367 private void Lv_Results_KeyDown ( object sender , KeyEventArgs e )
@@ -379,7 +397,7 @@ private void Lv_Results_KeyDown(object sender, KeyEventArgs e)
379397 Dispatcher . InvokeAsync ( ( ) =>
380398 {
381399 var text = CurrentResultItem . Url ;
382- m_clipboard . Add ( text ) ;
400+ m_clipboardHistory . Add ( text ) ;
383401 Clipboard . SetText ( text ) ;
384402 } ) ;
385403 break ;
0 commit comments