playlist search - video list

This commit is contained in:
2024-02-29 03:09:14 +01:00
Unverified
parent 22c02d08b2
commit 4ab99a8afa
30 changed files with 581 additions and 28 deletions

View File

@@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="DirectorySettingsCard.Header" xml:space="preserve">
<value>Directory</value>
</data>
<data name="DirectorySettingsCardButton.Content" xml:space="preserve">
<value>Browse</value>
</data>
<data name="FilenameSettingsCard.Header" xml:space="preserve">
<value>Filename</value>
</data>
<data name="FileOptionsHeader.Text" xml:space="preserve">
<value>File options</value>
</data>
<data name="FileTypeSettingsCard.Description" xml:space="preserve">
<value>If original video is not in selected type, it will be converted</value>
</data>
<data name="FileTypeSettingsCard.Header" xml:space="preserve">
<value>File type</value>
</data>
<data name="FilterWindow.Title" xml:space="preserve">
<value>Filter</value>
</data>
<data name="MediaOptionsHeader.Text1" xml:space="preserve">
<value>Media options</value>
</data>
<data name="MediaTypeOnlyAudio.Text" xml:space="preserve">
<value>Only audio</value>
</data>
<data name="MediaTypeOnlyVideo.Text" xml:space="preserve">
<value>Only video</value>
</data>
<data name="MediaTypeOriginal.Text" xml:space="preserve">
<value>Original</value>
</data>
<data name="MediaTypeSettingsCard.Header" xml:space="preserve">
<value>Media type</value>
</data>
<data name="QualitySettingsCard.Header" xml:space="preserve">
<value>Quality</value>
</data>
<data name="TrimEndSettingsCard.Header" xml:space="preserve">
<value>End at</value>
</data>
<data name="TrimSettingsGroup.Header" xml:space="preserve">
<value>Trim</value>
</data>
<data name="TrimStartSettingsCard.Header" xml:space="preserve">
<value>Start at</value>
</data>
</root>

View File

@@ -0,0 +1,121 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VDownload.Models;
using VDownload.Services.Data.Settings;
using VDownload.Services.UI.StoragePicker;
namespace VDownload.Core.ViewModels.Home.Helpers
{
public partial class VideoViewModel : ObservableObject
{
#region SERVICES
protected readonly ISettingsService _settingsService;
protected readonly IStoragePickerService _storagePickerService;
#endregion
#region PROPERTIES
[ObservableProperty]
protected Uri _thumbnailUrl;
[ObservableProperty]
protected string _title;
[ObservableProperty]
protected string _author;
[ObservableProperty]
protected DateTime _publishDate;
[ObservableProperty]
protected TimeSpan _duration;
[ObservableProperty]
protected long _views;
[ObservableProperty]
protected ObservableCollection<VideoStream> _streams;
[ObservableProperty]
protected VideoStream _selectedStream;
[ObservableProperty]
protected MediaType _mediaType;
[ObservableProperty]
protected TimeSpan _trimStart;
[ObservableProperty]
protected TimeSpan _trimEnd;
[ObservableProperty]
protected string _directoryPath;
[ObservableProperty]
protected string _filename;
[ObservableProperty]
protected VideoExtension _videoExtension;
[ObservableProperty]
protected AudioExtension _audioExtension;
#endregion
#region CONSTRUCTORS
public VideoViewModel(Video video, ISettingsService settingsService, IStoragePickerService storagePickerService)
{
_settingsService = settingsService;
_storagePickerService = storagePickerService;
ThumbnailUrl = video.ThumbnailUrl;
Title = video.Title;
Author = video.Author;
PublishDate = video.PublishDate;
Duration = video.Duration;
Views = video.Views;
Streams = [.. video.Streams];
SelectedStream = Streams[0];
MediaType = _settingsService.Data.Common.Tasks.DefaultMediaType;
TrimStart = TimeSpan.Zero;
TrimEnd = Duration;
DirectoryPath = _settingsService.Data.Common.Tasks.DefaultOutputDirectory;
Filename = Title.Length > 50 ? Title.Substring(0, 50) : Title;
VideoExtension = _settingsService.Data.Common.Tasks.DefaultVideoExtension;
AudioExtension = _settingsService.Data.Common.Tasks.DefaultAudioExtension;
}
#endregion
#region COMMANDS
[RelayCommand]
public async Task Browse()
{
string? newDirectory = await _storagePickerService.OpenDirectory();
if (newDirectory is not null)
{
this.DirectoryPath = newDirectory;
}
}
#endregion
}
}

View File

@@ -1,11 +1,16 @@
using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VDownload.Core.Tasks;
using VDownload.Core.ViewModels.Home.Helpers;
using VDownload.Models;
using VDownload.Services.Data.Settings;
using VDownload.Services.UI.StoragePicker;
using VDownload.Sources.Twitch.Configuration.Models;
namespace VDownload.Core.ViewModels.Home
@@ -14,7 +19,10 @@ namespace VDownload.Core.ViewModels.Home
{
#region SERVICES
protected readonly IDownloadTaskManager _tasksManager;
protected readonly ISettingsService _settingsService;
protected readonly IStoragePickerService _storagePickerService;
#endregion
@@ -22,7 +30,7 @@ namespace VDownload.Core.ViewModels.Home
#region FIELDS
protected Playlist _playlist;
#endregion
@@ -33,14 +41,22 @@ namespace VDownload.Core.ViewModels.Home
[ObservableProperty]
protected string _name;
[ObservableProperty]
protected ObservableCollection<VideoViewModel> _videos;
#endregion
#region CONSTRUCTORS
public HomePlaylistViewModel()
public HomePlaylistViewModel(IDownloadTaskManager tasksManager, ISettingsService settingsService, IStoragePickerService storagePickerService)
{
_tasksManager = tasksManager;
_settingsService = settingsService;
_storagePickerService = storagePickerService;
_videos = new ObservableCollection<VideoViewModel>();
}
#endregion
@@ -51,7 +67,15 @@ namespace VDownload.Core.ViewModels.Home
public async Task LoadPlaylist(Playlist playlist)
{
Name = playlist.Name;
_playlist = playlist;
Videos.Clear();
Name = _playlist.Name;
foreach (Video video in playlist)
{
Videos.Add(new VideoViewModel(video, _settingsService, _storagePickerService));
}
}
#endregion

View File

@@ -327,10 +327,10 @@
</i:Interaction.Behaviors>
</AppBarButton>
<AppBarButton Grid.Row="1"
Width="40"
Height="48"
Command="{Binding ElementName=Root, Path=DataContext.StartCancelTaskCommand}"
CommandParameter="{Binding}">
Width="40"
Height="48"
Command="{Binding ElementName=Root, Path=DataContext.StartCancelTaskCommand}"
CommandParameter="{Binding}">
<i:Interaction.Behaviors>
<ic:DataTriggerBehavior Binding="{Binding Status, Converter={StaticResource ObjectToIntConverter}}"
ComparisonCondition="LessThan"

View File

@@ -6,6 +6,13 @@
xmlns:local="using:VDownload.Core.Views.Home"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:ic="using:Microsoft.Xaml.Interactions.Core"
xmlns:m="using:VDownload.Models"
xmlns:ct="using:CommunityToolkit.WinUI"
xmlns:ctc="using:CommunityToolkit.WinUI.Controls"
xmlns:ctuc="using:CommunityToolkit.WinUI.UI.Controls"
xmlns:c="using:SimpleToolkit.UI.WinUI.Controls"
mc:Ignorable="d"
Background="{ThemeResource ViewBackgroundColor}">
@@ -28,21 +35,136 @@
FontWeight="Bold"
FontSize="20"
TextWrapping="WrapWholeWords"/>
<AppBarButton Grid.Column="2"
Margin="-5"
Icon="Filter"
Width="40"
Height="48">
<AppBarButton.Resources>
<TeachingTip x:Name="FilterWindow">
<AppBarToggleButton x:Name="FilterButton"
Grid.Column="2"
Margin="-5"
Icon="Filter"
Width="40"
Height="48">
<AppBarToggleButton.Resources>
<TeachingTip x:Name="FilterWindow"
x:Uid="/VDownload.Core.Strings/HomePlaylistViewResources/FilterWindow"
Target="{Binding ElementName=FilterButton}"
IsOpen="{Binding ElementName=FilterButton, Path=IsChecked, Mode=TwoWay}">
<TextBox/>
</TeachingTip>
</AppBarButton.Resources>
</AppBarButton>
</AppBarToggleButton.Resources>
</AppBarToggleButton>
</Grid>
<ItemsControl Grid.Row="1">
</ItemsControl>
<ScrollViewer Grid.Row="1">
<ItemsControl ItemsSource="{Binding Videos}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Expander HorizontalAlignment="Stretch"
Margin="0,0,0,10"
CornerRadius="10"
HorizontalContentAlignment="Left">
<Expander.Header>
<Grid Padding="-16,0,-16,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0"
Source="{Binding ThumbnailUrl}"
Height="100"/>
<Grid Grid.Column="1"
Margin="10"
RowSpacing="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
FontSize="16"
Text="{Binding Title}"
FontWeight="SemiBold"
TextTrimming="CharacterEllipsis"/>
<Grid Grid.Row="1"
RowSpacing="10"
ColumnSpacing="10">
<Grid.Resources>
<x:Double x:Key="IconSize">17</x:Double>
<x:Double x:Key="FontSize">13</x:Double>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Grid.Column="0"
Grid.Row="0"
VerticalAlignment="Center"
Source="{ThemeResource ImageHomePlaylistViewAuthor}"
Width="{StaticResource IconSize}"/>
<TextBlock Grid.Column="1"
Grid.Row="0"
FontSize="{StaticResource FontSize}"
VerticalAlignment="Center"
Text="{Binding Author}"/>
<Image Grid.Column="0"
Grid.Row="1"
VerticalAlignment="Center"
Source="{ThemeResource ImageHomePlaylistViewDate}"
Width="{StaticResource IconSize}"/>
<TextBlock Grid.Column="1"
Grid.Row="1"
FontSize="{StaticResource FontSize}"
VerticalAlignment="Center"
Text="{Binding PublishDate}"/>
<Image Grid.Column="2"
Grid.Row="0"
VerticalAlignment="Center"
Source="{ThemeResource ImageHomePlaylistViewTime}"
Width="{StaticResource IconSize}"/>
<TextBlock Grid.Column="3"
Grid.Row="0"
FontSize="{StaticResource FontSize}"
VerticalAlignment="Center"
Text="{Binding Duration}"/>
<Image Grid.Column="2"
Grid.Row="1"
VerticalAlignment="Center"
Source="{ThemeResource ImageHomePlaylistViewViews}"
Width="{StaticResource IconSize}"/>
<TextBlock Grid.Column="3"
Grid.Row="1"
FontSize="{StaticResource FontSize}"
VerticalAlignment="Center"
Text="{Binding Views}"/>
</Grid>
</Grid>
<AppBarButton Grid.Column="2"
Width="40"
Height="48"
Icon="Delete"
VerticalAlignment="Center"/>
</Grid>
</Expander.Header>
<Expander.Content>
<StackPanel Spacing="20">
<StackPanel Spacing="5">
<TextBlock x:Uid="/VDownload.Core.Strings/HomePlaylistViewResources/MediaOptionsHeader"
FontWeight="Bold"
FontSize="15"/>
<ctc:SettingsCard x:Uid="/VDownload.Core.Strings/HomePlaylistViewResources/QualitySettingsCard">
<ComboBox ItemsSource="{Binding Streams}"
SelectedItem="{Binding SelectedStream, Mode=TwoWay}"/>
</ctc:SettingsCard>
</StackPanel>
</StackPanel>
</Expander.Content>
</Expander>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<StackPanel Grid.Row="2"
HorizontalAlignment="Right"
Orientation="Horizontal">

View File

@@ -98,13 +98,7 @@
UriSource="{ThemeResource ImageHomeVideoViewQuality}"/>
</ctc:SettingsCard.HeaderIcon>
<ComboBox ItemsSource="{Binding Streams}"
SelectedItem="{Binding SelectedStream, Mode=TwoWay}">
<!-- ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate -->
</ComboBox>
SelectedItem="{Binding SelectedStream, Mode=TwoWay}"/>
</ctc:SettingsCard>
<ctc:SettingsCard x:Uid="/VDownload.Core.Strings/HomeVideoViewResources/MediaTypeSettingsCard">
<ctc:SettingsCard.HeaderIcon>

View File

@@ -8,6 +8,7 @@ namespace VDownload.Services.UI.StringResources
StringResources BaseViewResources { get; }
StringResources HomeViewResources { get; }
StringResources HomeVideoViewResources { get; }
StringResources HomePlaylistViewResources { get; }
StringResources HomeDownloadsViewResources { get; }
StringResources AuthenticationViewResources { get; }
StringResources NotificationsResources { get; }
@@ -30,6 +31,7 @@ namespace VDownload.Services.UI.StringResources
public StringResources BaseViewResources { get; protected set; }
public StringResources HomeViewResources { get; protected set; }
public StringResources HomeVideoViewResources { get; protected set; }
public StringResources HomePlaylistViewResources { get; protected set; }
public StringResources HomeDownloadsViewResources { get; protected set; }
public StringResources AuthenticationViewResources { get; protected set; }
public StringResources NotificationsResources { get; protected set; }
@@ -47,6 +49,7 @@ namespace VDownload.Services.UI.StringResources
BaseViewResources = BuildResource("BaseViewResources");
HomeViewResources = BuildResource("HomeViewResources");
HomeVideoViewResources = BuildResource("HomeVideoViewResources");
HomePlaylistViewResources = BuildResource("HomePlaylistViewResources");
HomeDownloadsViewResources = BuildResource("HomeDownloadsViewResources");
AuthenticationViewResources = BuildResource("AuthenticationViewResources");
NotificationsResources = BuildResource("NotificationsResources");

View File

@@ -14,6 +14,7 @@
<ResourceDictionary Source="Dictionaries/Images/ImagesSources.xaml"/>
<ResourceDictionary Source="Dictionaries/Images/ImagesBaseView.xaml"/>
<ResourceDictionary Source="Dictionaries/Images/ImagesHomeDownloadsView.xaml"/>
<ResourceDictionary Source="Dictionaries/Images/ImagesHomePlaylistView.xaml"/>
<ResourceDictionary Source="Dictionaries/Images/ImagesHomeVideoView.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:VDownload.Dictionaries.Images">
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<x:String x:Key="ImageHomePlaylistViewAuthor">/Assets/HomePlaylistView/AuthorLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewDate">/Assets/HomePlaylistView/DateLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTime">/Assets/HomePlaylistView/TimeLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewViews">/Assets/HomePlaylistView/ViewLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewQuality">/Assets/HomePlaylistView/QualityLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewMedia">/Assets/HomePlaylistView/MediaLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTrimLeft">/Assets/HomePlaylistView/TrimLeftLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTrim">/Assets/HomePlaylistView/TrimLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTrimRight">/Assets/HomePlaylistView/TrimRightLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewDirectory">/Assets/HomePlaylistView/DirectoryLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewFilename">/Assets/HomePlaylistView/FilenameLight.png</x:String>
<x:String x:Key="ImageHomePlaylistViewExtension">/Assets/HomePlaylistView/ExtensionLight.png</x:String>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<x:String x:Key="ImageHomePlaylistViewAuthor">/Assets/HomePlaylistView/AuthorDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewDate">/Assets/HomePlaylistView/DateDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTime">/Assets/HomePlaylistView/TimeDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewViews">/Assets/HomePlaylistView/ViewDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewQuality">/Assets/HomePlaylistView/QualityDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewMedia">/Assets/HomePlaylistView/MediaDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTrimLeft">/Assets/HomePlaylistView/TrimLeftDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTrim">/Assets/HomePlaylistView/TrimDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewTrimRight">/Assets/HomePlaylistView/TrimRightDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewDirectory">/Assets/HomePlaylistView/DirectoryDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewFilename">/Assets/HomePlaylistView/FilenameDark.png</x:String>
<x:String x:Key="ImageHomePlaylistViewExtension">/Assets/HomePlaylistView/ExtensionDark.png</x:String>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>

View File

@@ -44,6 +44,26 @@
<Content Remove="Assets\HomeDownloadsView\QueuedLight.png" />
<Content Remove="Assets\HomeDownloadsView\TimeDark.png" />
<Content Remove="Assets\HomeDownloadsView\TimeLight.png" />
<Content Remove="Assets\HomePlaylistView\AuthorDark.png" />
<Content Remove="Assets\HomePlaylistView\AuthorLight.png" />
<Content Remove="Assets\HomePlaylistView\DateDark.png" />
<Content Remove="Assets\HomePlaylistView\DateLight.png" />
<Content Remove="Assets\HomePlaylistView\DirectoryDark.png" />
<Content Remove="Assets\HomePlaylistView\DirectoryLight.png" />
<Content Remove="Assets\HomePlaylistView\ExtensionDark.png" />
<Content Remove="Assets\HomePlaylistView\ExtensionLight.png" />
<Content Remove="Assets\HomePlaylistView\FilenameDark.png" />
<Content Remove="Assets\HomePlaylistView\FilenameLight.png" />
<Content Remove="Assets\HomePlaylistView\MediaDark.png" />
<Content Remove="Assets\HomePlaylistView\MediaLight.png" />
<Content Remove="Assets\HomePlaylistView\QualityDark.png" />
<Content Remove="Assets\HomePlaylistView\QualityLight.png" />
<Content Remove="Assets\HomePlaylistView\TimeDark.png" />
<Content Remove="Assets\HomePlaylistView\TimeLight.png" />
<Content Remove="Assets\HomePlaylistView\TrimDark.png" />
<Content Remove="Assets\HomePlaylistView\TrimLight.png" />
<Content Remove="Assets\HomePlaylistView\ViewDark.png" />
<Content Remove="Assets\HomePlaylistView\ViewLight.png" />
<Content Remove="Assets\HomeVideoView\AuthorDark.png" />
<Content Remove="Assets\HomeVideoView\AuthorLight.png" />
<Content Remove="Assets\HomeVideoView\DateDark.png" />
@@ -122,6 +142,7 @@
<None Remove="Dictionaries\Converters.xaml" />
<None Remove="Dictionaries\Images\ImagesBaseView.xaml" />
<None Remove="Dictionaries\Images\ImagesHomeDownloadsView.xaml" />
<None Remove="Dictionaries\Images\ImagesHomePlaylistView.xaml" />
<None Remove="Dictionaries\Images\ImagesHomeVideoView.xaml" />
<None Remove="Dictionaries\Images\ImagesLogo.xaml" />
<None Remove="Dictionaries\Images\ImagesSources.xaml" />
@@ -251,6 +272,66 @@
<None Update="Assets\HomeDownloadsView\TimeLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\AuthorDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\AuthorLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\DateDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\DateLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\DirectoryDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\DirectoryLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\ExtensionDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\ExtensionLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\FilenameDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\FilenameLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\MediaDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\MediaLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\QualityDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\QualityLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\TimeDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\TimeLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\TrimDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\TrimLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\ViewDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomePlaylistView\ViewLight.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Assets\HomeVideoView\AuthorDark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@@ -320,6 +401,9 @@
<None Update="configuration.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<Page Update="Dictionaries\Images\ImagesHomePlaylistView.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Update="Dictionaries\Images\ImagesHomeDownloadsView.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>