mirror of
https://github.com/4sval/FModel.git
synced 2026-03-22 01:34:37 -05:00
added search for playlist
This commit is contained in:
parent
2915f831d0
commit
35a8e4c71d
|
|
@ -1,5 +1,4 @@
|
|||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using AdonisUI.Controls;
|
||||
using FModel.Framework;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
xmlns:converters="clr-namespace:FModel.Views.Resources.Converters"
|
||||
xmlns:adonisUi="clr-namespace:AdonisUI;assembly=AdonisUI"
|
||||
xmlns:adonisControls="clr-namespace:AdonisUI.Controls;assembly=AdonisUI"
|
||||
xmlns:adonisExtensions="clr-namespace:AdonisUI.Extensions;assembly=AdonisUI"
|
||||
WindowStartupLocation="CenterScreen" IconVisibility="Collapsed" Closing="OnClosing" PreviewKeyDown="OnPreviewKeyDown"
|
||||
Height="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenHeight}, Converter={converters:RatioConverter}, ConverterParameter='0.50'}"
|
||||
Width="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenWidth}, Converter={converters:RatioConverter}, ConverterParameter='0.55'}">
|
||||
|
|
@ -28,14 +29,8 @@
|
|||
</Grid.ColumnDefinitions>
|
||||
|
||||
<GroupBox Grid.Column="0" Padding="{adonisUi:Space 0}" Background="Transparent">
|
||||
<Grid Margin="10">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid Grid.Row="0">
|
||||
<DockPanel Margin="10">
|
||||
<Grid DockPanel.Dock="Top">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
|
|
@ -73,8 +68,25 @@
|
|||
<TextBlock Grid.Row="4" Grid.Column="0" Text="Bytes Per Second" VerticalAlignment="Center" />
|
||||
<TextBlock Grid.Row="4" Grid.Column="2" Text="{Binding AudioPlayer.PlayedFile.BytesPerSecond}" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
||||
</Grid>
|
||||
<Separator Grid.Row="1" Tag="PLAYLIST" Style="{StaticResource CustomSeparator}" />
|
||||
<ListBox Grid.Row="2" Style="{StaticResource AudioFilesListBox}" PreviewMouseDoubleClick="OnAudioFileMouseDoubleClick">
|
||||
<Separator DockPanel.Dock="Top" Tag="PLAYLIST" Style="{StaticResource CustomSeparator}" />
|
||||
<Grid DockPanel.Dock="Top" Height="24" Margin="0 0 0 5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid Grid.Column="0" ZIndex="1" HorizontalAlignment="Left" Margin="5 2 0 0">
|
||||
<Viewbox Width="16" Height="16">
|
||||
<Canvas Width="24" Height="24">
|
||||
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SearchIcon}" />
|
||||
</Canvas>
|
||||
</Viewbox>
|
||||
</Grid>
|
||||
<TextBox Grid.Column="0" Grid.ColumnSpan="2" AcceptsTab="False" AcceptsReturn="False"
|
||||
Padding="25 0 0 0" HorizontalAlignment="Stretch" TextChanged="OnFilterTextChanged"
|
||||
adonisExtensions:WatermarkExtension.Watermark="Search by name..." />
|
||||
</Grid>
|
||||
<ListBox DockPanel.Dock="Top" Style="{StaticResource AudioFilesListBox}" PreviewMouseDoubleClick="OnAudioFileMouseDoubleClick">
|
||||
<ListBox.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="Play" Command="{Binding AudioPlayer.AudioCommand}" CommandParameter="ForcePlayPause">
|
||||
|
|
@ -116,7 +128,7 @@
|
|||
</ContextMenu>
|
||||
</ListBox.ContextMenu>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
</GroupBox>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
using System.ComponentModel;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
|
@ -49,6 +51,9 @@ namespace FModel.Views
|
|||
|
||||
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.OriginalSource is TextBox)
|
||||
return;
|
||||
|
||||
if (UserSettings.Default.AddAudio.IsTriggered(e.Key))
|
||||
{
|
||||
var openFileDialog = new OpenFileDialog
|
||||
|
|
@ -77,5 +82,17 @@ namespace FModel.Views
|
|||
{
|
||||
_applicationView.AudioPlayer.PlayPauseOnForce();
|
||||
}
|
||||
|
||||
private void OnFilterTextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (sender is not TextBox textBox)
|
||||
return;
|
||||
|
||||
var filters = textBox.Text.Trim().Split(' ');
|
||||
_applicationView.AudioPlayer.AudioFilesView.Filter = o =>
|
||||
{
|
||||
return o is AudioFile audio && filters.All(x => audio.FileName.Contains(x, StringComparison.OrdinalIgnoreCase));
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -43,10 +43,11 @@ namespace FModel.Views.Resources.Controls
|
|||
FindNext();
|
||||
break;
|
||||
case Key.Enter when Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) && ((TabItem) DataContext).HasSearchOpen:
|
||||
var old = ((TabItem)DataContext).SearchUp;
|
||||
((TabItem) DataContext).SearchUp = true;
|
||||
var dc = (TabItem)DataContext;
|
||||
var old = dc.SearchUp;
|
||||
dc.SearchUp = true;
|
||||
FindNext();
|
||||
((TabItem) DataContext).SearchUp = old;
|
||||
dc.SearchUp = old;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user