Skip to content

Commit 5b0ddd2

Browse files
committed
*
1 parent a23ed0a commit 5b0ddd2

File tree

8 files changed

+198
-94
lines changed

8 files changed

+198
-94
lines changed

SmartImage.UI/MainWindow.Handlers.cs

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
using SmartImage.Lib.Engines.Impl.Upload;
3535
using SmartImage.Lib.Utilities;
3636
using SmartImage.UI.Model;
37+
using Unosquare.FFME.Common;
3738
using static System.Net.Mime.MediaTypeNames;
3839
using Application = System.Windows.Application;
3940
using FileSystem = Novus.OS.FileSystem;
@@ -222,7 +223,8 @@ private void Btn_Cancel_Click(object sender, RoutedEventArgs e)
222223
Lb_Queue.IsEnabled = true;
223224
Btn_Run.IsEnabled = true;
224225
Btn_Remove.IsEnabled = true;
225-
e.Handled = true;
226+
// m_us.Release();
227+
e.Handled = true;
226228
}
227229

228230
private void Btn_Run_Loaded(object sender, RoutedEventArgs e)
@@ -302,7 +304,7 @@ private void Btn_Delete_Click(object sender, RoutedEventArgs e)
302304
// m_resultMap.TryRemove(Query, out var x);
303305
// Query.Dispose();
304306
Queue.Remove(old);
305-
Img_Preview.Source = m_image = null;
307+
Img_Preview.Source = Image = null;
306308
// Query = SearchQuery.Null;
307309
bool ok;
308310

@@ -360,12 +362,23 @@ private void Lv_Results_SelectionChanged(object sender, SelectionChangedEventArg
360362
if (ri.Result.Metadata is TraceMoeEngine.TraceMoeDoc doc) {
361363
Dispatcher.InvokeAsync(async () =>
362364
{
363-
Me_Preview.ScrubbingEnabled = true;
365+
/*Me_Preview.ScrubbingEnabled = true;
366+
Me_Preview.UnloadedBehavior = MediaState.Close;
367+
Me_Preview.LoadedBehavior = MediaState.Manual;*/
368+
// Me_Preview.UnloadedBehavior = MediaState.Stop;
369+
// Me_Preview.LoadedBehavior = MediaState.Manual;
370+
// Me_Preview = new MediaElement();
371+
// Me_Preview.LoadedBehavior = MediaState.Play;
372+
// Me_Preview.UnloadedBehavior = MediaState.Manual;
364373
Me_Preview.UnloadedBehavior = MediaState.Close;
365374
Me_Preview.LoadedBehavior = MediaState.Manual;
375+
// Me_Preview.LoadedBehavior = MediaState.Manual;
366376
var uri = await CacheAsync(doc.video);
367-
Me_Preview.Source = new Uri(uri, UriKind.Absolute);
377+
378+
Me_Preview.Source = new Uri(uri);
379+
368380
Me_Preview.Play();
381+
369382
ShowMedia = true;
370383
Tb_Preview.Text = $"Preview: {ri.Name}";
371384
});
@@ -414,7 +427,7 @@ private void Lv_Results_KeyDown(object sender, KeyEventArgs e)
414427
// Results.Remove(CurrentResultItem);
415428

416429
CurrentQueueItem.Results.Remove(CurrentResultItem);
417-
Img_Preview.Source = m_image;
430+
Img_Preview.Source = Image;
418431
break;
419432
case Key.C when ctrl:
420433
Dispatcher.InvokeAsync(() =>
@@ -673,6 +686,7 @@ private void Me_Preview_MouseDown(object sender, MouseButtonEventArgs e)
673686
{
674687

675688
e.Handled = true;
689+
676690
}
677691

678692
private void Domain_UHException(object sender, UnhandledExceptionEventArgs e)
@@ -754,27 +768,14 @@ private void Tb_Search_TextChanged(object sender, TextChangedEventArgs e)
754768
e.Handled = true;
755769
}
756770

757-
private void Lb_Queue_OnTargetUpdated(object? sender, DataTransferEventArgs e)
758-
{
759-
Debug.WriteLine($"{sender} {e}");
760-
761-
e.Handled = true;
762-
}
763-
764-
private void Tb_Input_OnTargetUpdated(object? sender, DataTransferEventArgs e)
771+
private void Tb_Input_OnTextChanged(object sender, TextChangedEventArgs e)
765772
{
766-
// BindingExpression be = Tb_Input.GetBindingExpression(TextBox.TextProperty);
767-
// be?.UpdateSource();
768-
Debug.WriteLine($"target: {sender} {e}");
769-
770773
e.Handled = true;
771-
}
772774

773-
private void Tb_Input_OnSourceUpdated(object? sender, DataTransferEventArgs e)
774-
{
775-
Debug.WriteLine($"src: {sender} {e}");
776-
777-
e.Handled = true;
775+
/*if (SearchQuery.IsValidSourceType(CurrentQueueItem?.Value))
776+
{
777+
OnCurrentQueueItemChanged(sender, null);
778+
}*/
778779
}
779780
}
780781

SmartImage.UI/MainWindow.State.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
using Kantan.Monad;
1010
using System.Linq;
1111
using System;
12+
using System.Windows.Controls;
13+
using System.Windows.Media;
14+
using SmartImage.Lib;
1215

1316
namespace SmartImage.UI;
1417

@@ -46,7 +49,7 @@ private void OpenResultWindow(ResultItem ri)
4649
sw.Img_Preview.Source = ri.Image;
4750
}
4851
else {
49-
sw.Img_Preview.Source = m_image;
52+
sw.Img_Preview.Source = Image;
5053
}
5154

5255
sw.Show();
@@ -102,8 +105,10 @@ public void ClearQueue()
102105
{
103106
Lb_Queue.SelectedIndex = -1;
104107
Queue.Clear();
105-
Queue.Insert(0, new ResultModel());
106-
Lb_Queue.SelectedIndex = 0;
108+
var rm = new ResultModel();
109+
Queue.Add(rm);
110+
// Lb_Queue.SelectedIndex = 0;
111+
CurrentQueueItem = rm;
107112
});
108113

109114
// CurrentQueueItem = new ResultModel();
@@ -152,12 +157,15 @@ private void CheckMedia()
152157
if (ShowMedia)
153158
{
154159
Me_Preview.Stop();
160+
// Me_Preview.Position = TimeSpan.Zero;
155161
Me_Preview.Close();
156162
Me_Preview.Source = null;
163+
// Me_Preview.Dispose();
157164
ShowMedia = false;
158165
}
159166
else { }
160167
}
161168

162169
#endregion
170+
163171
}

SmartImage.UI/MainWindow.xaml

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,8 @@
166166
Width="437" Height="20"
167167
Drop="Tb_Input_Drop" DragOver="Tb_Input_DragOver"
168168
PreviewDragOver="Tb_Input_PreviewDragOver" IsReadOnly="False"
169-
TargetUpdated="Tb_Input_OnTargetUpdated"
170-
SourceUpdated="Tb_Input_OnSourceUpdated"
171-
Text="{Binding SelectedItem.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True,
172-
NotifyOnSourceUpdated=True, ElementName=Lb_Queue}" />
169+
TextChanged="Tb_Input_OnTextChanged"
170+
Text="{Binding CurrentQueueItem.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ElementName=Wnd_Main}" />
173171

174172
<Button x:Name="Btn_Run" Content="Run" HorizontalAlignment="Left" Margin="499,8,0,0"
175173
VerticalAlignment="Top" Click="Btn_Run_Click" Height="20" FontWeight="Bold"
@@ -245,7 +243,7 @@
245243
<Button x:Name="Btn_Remove" Content="Remove"
246244
HorizontalAlignment="Left" Margin="583,8,0,0" VerticalAlignment="Top"
247245
Click="Btn_Remove_Click" Height="20" Width="46"
248-
IsEnabled="{Binding Path=CurrentQueueItem.IsNonPrimitive, ElementName=Wnd_Main}">
246+
IsEnabled="{Binding Path=CurrentQueueItem.HasQuery, UpdateSourceTrigger=PropertyChanged, ElementName=Wnd_Main}">
249247

250248
<Button.Style>
251249
<Style TargetType="{x:Type Button}">
@@ -317,13 +315,36 @@
317315
DragOver="Lb_Queue_DragOver" PreviewDragOver="Lb_Queue_PreviewDragOver" AllowDrop="True"
318316
Background="{DynamicResource Black2}" Foreground="White"
319317
SelectionChanged="Lb_Queue_SelectionChanged"
320-
SelectedItem="{Binding CurrentQueueItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}"
318+
SelectedItem="{Binding CurrentQueueItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True, ElementName=Wnd_Main}"
321319

322-
TargetUpdated="Lb_Queue_OnTargetUpdated"
323320
KeyDown="Lb_Queue_KeyDown" Margin="0,2,174,0" HorizontalAlignment="Right"
324321
VerticalAlignment="Top" Width="320" Height="150" Grid.Column="1" Grid.RowSpan="2"
325-
ItemsSource="{Binding Queue}" DisplayMemberPath="Value">
322+
ItemsSource="{Binding Queue}">
326323
<!-- IsSynchronizedWithCurrentItem="True" -->
324+
<ListBox.ItemTemplate>
325+
<DataTemplate>
326+
<TextBlock Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
327+
<TextBlock.Style>
328+
<Style TargetType="TextBlock">
329+
<Style.Triggers>
330+
<DataTrigger Binding="{Binding IsPrimitive}" Value="True">
331+
<Setter Property="Foreground" Value="LightGray" />
332+
</DataTrigger>
333+
334+
<DataTrigger Binding="{Binding HasQuery}" Value="True">
335+
<Setter Property="Foreground" Value="Cyan" />
336+
</DataTrigger>
337+
338+
<DataTrigger Binding="{Binding IsComplete}" Value="True">
339+
<Setter Property="Foreground" Value="GreenYellow" />
340+
</DataTrigger>
341+
342+
</Style.Triggers>
343+
</Style>
344+
</TextBlock.Style>
345+
</TextBlock>
346+
</DataTemplate>
347+
</ListBox.ItemTemplate>
327348
</ListBox>
328349

329350
<Border x:Name="Br_Preview" Height="150" Margin="0,3,11,0" Width="150"
@@ -456,9 +477,8 @@
456477

457478
<TextBox x:Name="Tb_Info" HorizontalAlignment="Left" Margin="57,65,0,0" TextWrapping="Wrap"
458479
VerticalAlignment="Top" Width="437" IsReadOnly="True" Height="20" Background="Black"
459-
DataContext="{Binding CurrentQueueItem}"
460480
Foreground="White" MouseDoubleClick="Tb_Info_MouseDoubleClick"
461-
Text="{Binding Info, UpdateSourceTrigger=PropertyChanged}" />
481+
Text="{Binding CurrentQueueItem.Info, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, ElementName=Wnd_Main, IsAsync=True}" />
462482

463483
<Image x:Name="Img_Status" HorizontalAlignment="Left" Height="20px" Width="20px"
464484
Margin="10,5,0,0"
@@ -575,14 +595,13 @@
575595
<Image x:Name="Img_Type" Width="20px" Height="20px" Stretch="None" Margin="48,5,0,0"
576596
HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="1" />
577597
<TextBlock x:Name="Tb_Status" HorizontalAlignment="Left" Margin="4,33,0,0"
578-
DataContext="{Binding CurrentQueueItem}"
598+
579599
VerticalAlignment="Top" Foreground="White" FontStyle="Italic" Grid.Row="1"
580-
Text="{Binding Status, UpdateSourceTrigger=PropertyChanged}" />
600+
Text="{Binding CurrentQueueItem.Status, UpdateSourceTrigger=PropertyChanged}" />
581601

582602
<TextBlock x:Name="Tb_Status2" HorizontalAlignment="Left" Margin="115,49,0,0"
583-
DataContext="{Binding CurrentQueueItem}"
584603
VerticalAlignment="Top" Foreground="White" Grid.Row="1" TextDecorations="Underline"
585-
Text="{Binding Status2, UpdateSourceTrigger=PropertyChanged}" />
604+
Text="{Binding CurrentQueueItem.Status2, UpdateSourceTrigger=PropertyChanged}" />
586605
<Button x:Name="Btn_Filter" Content="Filter" HorizontalAlignment="Left" Margin="501,65,0,0"
587606
VerticalAlignment="Top" Click="Btn_Filter_Click" />
588607
<TextBox x:Name="Tb_Search" HorizontalAlignment="Right" Margin="0,46,499,0" Grid.Row="1"

0 commit comments

Comments
 (0)