@@ -234,6 +234,17 @@ static ShellMode() { }
234234
235235 #endregion
236236
237+ #region Static
238+
239+ private static readonly TimeSpan TimeoutTimeSpan = TimeSpan . FromSeconds ( 1.5 ) ;
240+
241+ [ SupportedOSPlatform ( Compat . OS ) ]
242+ private static readonly SoundPlayer Player = new ( R2 . hint ) ;
243+
244+ private static readonly ILogger Logger = LogUtil . Factory . CreateLogger ( nameof ( ShellMode ) ) ;
245+
246+ #endregion
247+
237248 #region Fields/properties
238249
239250 private object m_cbCallbackTok ;
@@ -247,6 +258,7 @@ static ShellMode() { }
247258 private readonly ConcurrentBag < SearchResult > m_results ;
248259
249260 private CancellationTokenSource m_token ;
261+ private CancellationTokenSource m_tokenu ;
250262
251263 private bool m_useclipboard ;
252264
@@ -271,17 +283,6 @@ public bool UseClipboard
271283
272284 private readonly ConcurrentQueue < ustring > m_queue ;
273285
274- #region Static
275-
276- private static readonly TimeSpan TimeoutTimeSpan = TimeSpan . FromSeconds ( 1.5 ) ;
277-
278- [ SupportedOSPlatform ( Compat . OS ) ]
279- private static readonly SoundPlayer Player = new ( R2 . hint ) ;
280-
281- private static readonly ILogger Logger = LogUtil . Factory . CreateLogger ( nameof ( ShellMode ) ) ;
282-
283- #endregion
284-
285286 #region
286287
287288 public SearchQuery Query { get ; internal set ; }
@@ -308,6 +309,7 @@ public ShellMode(string[] args)
308309 {
309310 Args = args ;
310311 m_token = new ( ) ;
312+ m_tokenu = new ( ) ;
311313 Query = SearchQuery . Null ;
312314 Client = new SearchClient ( new SearchConfig ( ) ) ;
313315 IsReady = new ManualResetEvent ( false ) ;
@@ -633,17 +635,27 @@ private async Task<bool> SetQuery(ustring text)
633635 if ( sq is { } && sq != SearchQuery . Null ) {
634636 try {
635637
638+ /*Btn_Cancel.Enabled = true;
639+
640+ Btn_Cancel.Clicked += () =>
641+ {
642+ m_tokenu.Cancel();
643+
644+ };*/
645+
636646 using CancellationTokenSource cts = new ( ) ;
637647 Lbl_Status2 . Text = $ "Uploading...";
638648
639649 UI . QueueProgress ( cts , Pbr_Status ) ;
640650
641- var u = await sq . UploadAsync ( ) ;
651+ var u = await sq . UploadAsync ( ct : m_tokenu . Token ) ;
642652
643653 cts . Cancel ( ) ;
644654
645- Lbl_QueryUpload . Text = u . ToString ( ) ;
646- Lbl_Status2 . Text = ustring . Empty ;
655+ Lbl_QueryUpload . Text = u . ToString ( ) ;
656+ Lbl_Status2 . Text = ustring . Empty ;
657+
658+ // Btn_Cancel.Clicked += Cancel_Clicked;
647659
648660 }
649661 catch ( Exception e ) {
@@ -707,7 +719,7 @@ private async Task<bool> SetQuery(ustring text)
707719
708720 private bool ClipboardCallback ( MainLoop c )
709721 {
710- Debug . WriteLine ( $ "executing timeout { nameof ( ClipboardCallback ) } { c } { UseClipboard } { c . EventsPending ( false ) } ") ;
722+ Debug . WriteLine ( $ "executing timeout { nameof ( ClipboardCallback ) } { c } { UseClipboard } ") ;
711723
712724 try {
713725 /*
@@ -721,8 +733,10 @@ private bool ClipboardCallback(MainLoop c)
721733 var s = Tf_Input . Text . ToString ( ) ;
722734 s = s . CleanString ( ) ;
723735
724- if ( ! SearchQuery . IsValidSourceType ( s )
725- && Integration . ReadClipboard ( out var str )
736+ var rc = Integration . ReadClipboard ( out var str ) ;
737+
738+ if ( /*!SearchQuery.IsValidSourceType(s)
739+ &&*/ rc
726740 && ! m_clipboard . Contains ( str )
727741 /*&& (m_prevSeq != sequenceNumber)*/ ) {
728742 /*bool vl = SearchQuery.IsValidSourceType(str);
@@ -735,7 +749,7 @@ private bool ClipboardCallback(MainLoop c)
735749 }
736750
737751 Debug.WriteLine($"{str}");*/
738-
752+
739753 SetInputText ( str ) ;
740754 // Lbl_InputOk.Text = UI.Clp;
741755 Lbl_InputInfo . Text = R2 . Inf_Clipboard ;
@@ -758,16 +772,17 @@ private bool ClipboardCallback(MainLoop c)
758772
759773 finally { }
760774
761- Debug . WriteLine ( $ "{ UseClipboard } ") ;
762- // return true;
763- return UseClipboard ;
775+ // Debug.WriteLine($"{UseClipboard}");
776+ return true ;
777+ // return UseClipboard;
764778 }
765779
766780 public void Dispose ( )
767781 {
768782 Client . Dispose ( ) ;
769783 Query . Dispose ( ) ;
770784 m_token . Dispose ( ) ;
785+ m_tokenu . Dispose ( ) ;
771786 m_queue . Clear ( ) ;
772787 m_results . Clear ( ) ;
773788 }
0 commit comments