mirror of
https://github.com/4sval/FModel.git
synced 2026-03-21 17:24:26 -05:00
Some checks failed
FModel QA Builder / build (push) Has been cancelled
that means loose files are now supported, or should be Export Raw Data shows the correct extension
838 lines
64 KiB
XML
838 lines
64 KiB
XML
<adonisControls:AdonisWindow x:Class="FModel.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:FModel"
|
|
xmlns:controls="clr-namespace:FModel.Views.Resources.Controls"
|
|
xmlns:converters="clr-namespace:FModel.Views.Resources.Converters"
|
|
xmlns:settings="clr-namespace:FModel.Settings"
|
|
xmlns:services="clr-namespace:FModel.Services"
|
|
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" Closing="OnClosing" Loaded="OnLoaded" PreviewKeyDown="OnWindowKeyDown"
|
|
Height="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenHeight}, Converter={converters:RatioConverter}, ConverterParameter='0.85'}"
|
|
Width="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenWidth}, Converter={converters:RatioConverter}, ConverterParameter='0.75'}">
|
|
<adonisControls:AdonisWindow.Style>
|
|
<Style TargetType="adonisControls:AdonisWindow" BasedOn="{StaticResource {x:Type adonisControls:AdonisWindow}}" >
|
|
<Setter Property="Title" Value="{Binding DataContext.InitialWindowTitle, RelativeSource={RelativeSource Self}}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding DataContext.TitleExtra, RelativeSource={RelativeSource Self}, Converter={x:Static converters:IsNullToBoolReversedConverter.Instance}}" Value="True">
|
|
<Setter Property="Title">
|
|
<Setter.Value>
|
|
<MultiBinding StringFormat="{}{0} - {1} {2}">
|
|
<Binding Path="DataContext.InitialWindowTitle" RelativeSource="{RelativeSource Self}" />
|
|
<Binding Path="DataContext.GameDisplayName" RelativeSource="{RelativeSource Self}" />
|
|
<Binding Path="DataContext.TitleExtra" RelativeSource="{RelativeSource Self}" />
|
|
</MultiBinding>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</adonisControls:AdonisWindow.Style>
|
|
<adonisControls:AdonisWindow.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="Views/Resources/Resources.xaml"/>
|
|
</ResourceDictionary.MergedDictionaries>
|
|
</ResourceDictionary>
|
|
</adonisControls:AdonisWindow.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="{adonisUi:Space 1}" />
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<Menu Grid.Row="0">
|
|
<MenuItem Header="Directory">
|
|
<MenuItem Header="Selector" Command="{Binding MenuCommand}" CommandParameter="Directory_Selector">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource DirectoryIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="AES" Command="{Binding MenuCommand}" CommandParameter="Directory_AES" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource KeyIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Backup" Command="{Binding MenuCommand}" CommandParameter="Directory_Backup" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource BackupIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Archives Info" Command="{Binding MenuCommand}" CommandParameter="Directory_ArchivesInfo" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource InfoIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Header="Packages">
|
|
<MenuItem Header="Search" IsEnabled="{Binding Status.IsReady}" InputGestureText="Ctrl+Shift+F" Click="OnSearchViewClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SearchIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Favorite Directories" ItemsSource="{Binding CustomDirectories.Directories}" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource DirectoriesIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Header="Auto Open Sounds" IsCheckable="True" StaysOpenOnClick="True"
|
|
IsChecked="{Binding IsAutoOpenSounds, Source={x:Static settings:UserSettings.Default}}" />
|
|
</MenuItem>
|
|
<MenuItem Header="Views">
|
|
<MenuItem Header="3D Viewer" Command="{Binding MenuCommand}" CommandParameter="Views_3dViewer">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource MeshIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Audio Player" Command="{Binding MenuCommand}" CommandParameter="Views_AudioPlayer">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource AudioIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Image Merger" Command="{Binding MenuCommand}" CommandParameter="Views_ImageMerger">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource ImageMergerIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Header="Settings" Command="{Binding MenuCommand}" CommandParameter="Settings" />
|
|
<MenuItem Header="Help" >
|
|
<MenuItem Header="Donate" Command="{Binding MenuCommand}" CommandParameter="Help_Donate">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource GiftIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Releases" Command="{Binding MenuCommand}" CommandParameter="Help_Releases">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource GitHubIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Bugs Report" Command="{Binding MenuCommand}" CommandParameter="Help_BugsReport">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource BugIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Discord Server" Command="{Binding MenuCommand}" CommandParameter="Help_Discord">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource DiscordIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="About FModel" Command="{Binding MenuCommand}" CommandParameter="Help_About">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource InfoIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
</Menu>
|
|
|
|
<Grid x:Name="RootGrid" Grid.Row="2">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" MinWidth="400" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<GroupBox Grid.Column="0" adonisExtensions:LayerExtension.Layer="2"
|
|
Padding="{adonisUi:Space 0}" Background="Transparent">
|
|
<TabControl x:Name="LeftTabControl" SelectionChanged="OnTabItemChange">
|
|
<TabItem Style="{StaticResource TabItemFillSpace}" Header="Archives">
|
|
<DockPanel>
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="5" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="10" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="Loading Mode" VerticalAlignment="Center" />
|
|
<ComboBox Grid.Row="0" Grid.Column="2" ItemsSource="{Binding LoadingModes.Modes}" IsEnabled="{Binding Status.IsReady}"
|
|
SelectedItem="{Binding LoadingMode, Source={x:Static settings:UserSettings.Default}, Mode=TwoWay}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Converter={x:Static converters:EnumToStringConverter.Instance}}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
<Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Content="Load"
|
|
Command="{Binding LoadingModes.LoadCommand}" IsEnabled="{Binding Status.IsReady}"
|
|
CommandParameter="{Binding SelectedItems, ElementName=DirectoryFilesListBox}" />
|
|
</Grid>
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<Separator Grid.Row="0" Style="{StaticResource CustomSeparator}" Tag="GAME ARCHIVES" />
|
|
<ListBox Grid.Row="1" x:Name="DirectoryFilesListBox" Style="{StaticResource DirectoryFilesListBox}" MouseDoubleClick="OnMouseDoubleClick" />
|
|
<Separator Grid.Row="2" Style="{StaticResource CustomSeparator}" Tag="INFORMATION" />
|
|
<StackPanel Grid.Row="3" Orientation="Vertical" Margin="0 0 0 5">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding SelectedItem.MountPoint, ElementName=DirectoryFilesListBox, FallbackValue='/', Converter={x:Static converters:TrimRightToLeftConverter.Instance}, ConverterParameter=275}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="Mount Point" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding SelectedItem.FileCount, ElementName=DirectoryFilesListBox, FallbackValue='0', StringFormat={}{0} Files}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="File Count" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding SelectedItem.IsEncrypted, ElementName=DirectoryFilesListBox, FallbackValue='False'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="Is Encrypted" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding SelectedItem.Guid, ElementName=DirectoryFilesListBox, FallbackValue='00000000000000000000000000000000'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="3" Grid.Column="1" Text="Global Unique Identifier" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DockPanel>
|
|
</TabItem>
|
|
<TabItem Style="{StaticResource TabItemFillSpace}" Header="Folders">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<Grid Grid.Row="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="5" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal">
|
|
<Image Source="/FModel;component/Resources/label.png"
|
|
Width="16" Height="16" HorizontalAlignment="Center" Margin="0 0 3.5 0" />
|
|
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" TextTrimming="CharacterEllipsis">
|
|
<TextBlock.Text>
|
|
<MultiBinding StringFormat="{}'{0}' has {1} folders and {2} packages">
|
|
<Binding Path="SelectedItem.Header" ElementName="AssetsFolderName" FallbackValue="None" />
|
|
<Binding Path="SelectedItem.FoldersView.Count" ElementName="AssetsFolderName" FallbackValue="0" />
|
|
<Binding Path="SelectedItem.AssetsList.Assets.Count" ElementName="AssetsFolderName" FallbackValue="0" />
|
|
</MultiBinding>
|
|
</TextBlock.Text>
|
|
</TextBlock>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Bring Selected Folder To View" Padding="4"
|
|
Command="{Binding MenuCommand}" CommandParameter="{Binding SelectedItem, ElementName=AssetsFolderName}">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource LocateMeIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
<!-- <Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Expand All (not appropriate for huge amount of folders)" Padding="4" -->
|
|
<!-- Command="{Binding MenuCommand}" CommandParameter="ToolBox_Expand_All"> -->
|
|
<!-- <Viewbox Width="16" Height="16" HorizontalAlignment="Center"> -->
|
|
<!-- <Canvas Width="24" Height="24"> -->
|
|
<!-- <Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource UnfoldIcon}" /> -->
|
|
<!-- </Canvas> -->
|
|
<!-- </Viewbox> -->
|
|
<!-- </Button> -->
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Collapse All" Padding="4"
|
|
Command="{Binding MenuCommand}" CommandParameter="ToolBox_Collapse_All">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource FoldIcon}"/>
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
<Separator Grid.Row="1" Style="{StaticResource CustomSeparator}" Margin="0" />
|
|
<TreeView Grid.Row="2" x:Name="AssetsFolderName" Style="{StaticResource AssetsFolderTreeView}" PreviewMouseDoubleClick="OnAssetsTreeMouseDoubleClick">
|
|
<TreeView.ContextMenu>
|
|
<ContextMenu>
|
|
<!-- <MenuItem Header="Extract Folder's Packages" Click="OnFolderExtractClick"> -->
|
|
<!-- <MenuItem.Icon> -->
|
|
<!-- <Viewbox Width="16" Height="16"> -->
|
|
<!-- <Canvas Width="24" Height="24"> -->
|
|
<!-- <Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExtractIcon}" /> -->
|
|
<!-- </Canvas> -->
|
|
<!-- </Viewbox> -->
|
|
<!-- </MenuItem.Icon> -->
|
|
<!-- </MenuItem> -->
|
|
<!-- <Separator /> -->
|
|
<MenuItem Header="Export Folder's Packages Raw Data (.uasset)" Click="OnFolderExportClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExportIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Properties (.json)" Click="OnFolderSaveClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SaveIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Textures" Click="OnFolderTextureClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource TextureIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Models" Click="OnFolderModelClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ModelIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Animations" Click="OnFolderAnimationClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource AnimationIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Header="Favorite Directory" Click="OnFavoriteDirectoryClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource DirectoriesAddIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Copy Directory Path" Click="OnCopyDirectoryPathClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource CopyIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</ContextMenu>
|
|
</TreeView.ContextMenu>
|
|
</TreeView>
|
|
<Separator Grid.Row="3" Style="{StaticResource CustomSeparator}" Tag="INFORMATION" />
|
|
<StackPanel Grid.Row="4" Orientation="Vertical" Margin="0 0 0 5">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding SelectedItem.AssetsList.Assets.Count, ElementName=AssetsFolderName, FallbackValue=0}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="Packages Count" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding SelectedItem.FoldersView.Count, ElementName=AssetsFolderName, FallbackValue=0}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="Folders Count" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding SelectedItem.Archive, ElementName=AssetsFolderName, FallbackValue='None'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="Included In Archive" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding SelectedItem.MountPoint, ElementName=AssetsFolderName, FallbackValue='/', Converter={x:Static converters:TrimRightToLeftConverter.Instance}, ConverterParameter=275}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="3" Grid.Column="1" Text="Archive Mount Point" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="4" Grid.Column="0" Text="{Binding SelectedItem.Version, ElementName=AssetsFolderName, FallbackValue='VER_UE4_LATEST', Converter={x:Static converters:TrimRightToLeftConverter.Instance}, ConverterParameter=275}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="4" Grid.Column="1" Text="Archive Version" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Grid>
|
|
</TabItem>
|
|
<TabItem Style="{StaticResource TabItemFillSpace}"
|
|
Header="{Binding SelectedItem.AssetsList.Assets.Count, FallbackValue=0, ElementName=AssetsFolderName}"
|
|
HeaderStringFormat="{}{0} Packages">
|
|
<DockPanel>
|
|
<Grid DockPanel.Dock="Top" ZIndex="0">
|
|
<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" x:Name="AssetsSearchName" AcceptsTab="False" AcceptsReturn="False"
|
|
Padding="25 0 0 0" HorizontalAlignment="Stretch" TextChanged="OnFilterTextChanged"
|
|
adonisExtensions:WatermarkExtension.Watermark="Search by name..." />
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
|
<Button ToolTip="Clear Search Filter" Padding="5" Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" Click="OnDeleteSearchClick">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource BackspaceIcon}"/>
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<controls:Breadcrumb Grid.Row="0" MaxWidth="{Binding ActualWidth, ElementName=AssetsSearchName}" HorizontalAlignment="Left" Margin="0 5 0 5"
|
|
DataContext="{Binding SelectedItem.PathAtThisPoint, ElementName=AssetsFolderName, FallbackValue='No/Directory/Detected/In/Folder'}"/>
|
|
|
|
<ListBox Grid.Row="1" x:Name="AssetsListName" Style="{StaticResource AssetsListBox}" PreviewMouseDoubleClick="OnAssetsListMouseDoubleClick" PreviewKeyDown="OnPreviewKeyDown">
|
|
<ListBox.ContextMenu>
|
|
<ContextMenu DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
|
|
<MenuItem Header="Extract in New Tab" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Extract_New_Tab" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExtractIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Show Metadata" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Show_Metadata" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource InfoIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.Header>
|
|
<TextBlock
|
|
Text="{Binding DataContext.SelectedItem.Extension,
|
|
FallbackValue='uasset',
|
|
StringFormat='Export Raw Data (.{0})',
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
|
</MenuItem.Header>
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Export_Data" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExportIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Properties (.json)" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Properties" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SaveIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Texture" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Textures" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource TextureIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Model" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Models" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ModelIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Animation" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Animations" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource AnimationIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Header="Copy">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource CopyIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
<MenuItem Header="Package Path" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Path" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Package Name" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Name" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Directory Path" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Directory_Path" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Package Path w/o Extension" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Path_No_Extension" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Package Name w/o Extension" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Name_No_Extension" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
</ContextMenu>
|
|
</ListBox.ContextMenu>
|
|
</ListBox>
|
|
<Separator Grid.Row="2" Style="{StaticResource CustomSeparator}" Tag="INFORMATION" />
|
|
<StackPanel Grid.Row="3" Orientation="Vertical" Margin="0 0 0 5">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding SelectedItem.Offset, ElementName=AssetsListName, FallbackValue=0, StringFormat='{}0x{0:X}'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="Offset" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding SelectedItem.Size, ElementName=AssetsListName, FallbackValue=0, Converter={x:Static converters:SizeToStringConverter.Instance}}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="Size" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding SelectedItem.CompressionMethod, ElementName=AssetsListName, FallbackValue='Unknown'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="Compression Method" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding SelectedItem.IsEncrypted, ElementName=AssetsListName, FallbackValue='False'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="3" Grid.Column="1" Text="Is Encrypted" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="4" Grid.Column="0" Text="{Binding SelectedItem.Vfs.Name, ElementName=AssetsListName, FallbackValue='None'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="4" Grid.Column="1" Text="Included In Archive" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DockPanel>
|
|
</TabItem>
|
|
</TabControl>
|
|
</GroupBox>
|
|
|
|
<GridSplitter Grid.Column="1" ResizeDirection="Columns" Width="4" VerticalAlignment="Stretch"
|
|
ResizeBehavior="PreviousAndNext" MouseDoubleClick="OnGridSplitterDoubleClick"
|
|
Background="{DynamicResource {x:Static adonisUi:Brushes.Layer0BackgroundBrush}}" />
|
|
|
|
<GroupBox Grid.Column="2" adonisExtensions:LayerExtension.Layer="2"
|
|
Padding="{adonisUi:Space 0}" Background="Transparent">
|
|
<Grid Margin="0 0 3 0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<TabControl Grid.Row="0" x:Name="TabControlName" Style="{StaticResource GameFilesTabControl}" />
|
|
<Expander Grid.Row="1" Margin="0 5 0 5" ExpandDirection="Down"
|
|
IsExpanded="{Binding IsLoggerExpanded, Source={x:Static settings:UserSettings.Default}}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="2" />
|
|
<ColumnDefinition Width="24" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<controls:CustomRichTextBox Grid.Column="0" Grid.ColumnSpan="3" x:Name="LogRtbName" Style="{StaticResource CustomRichTextBox}" />
|
|
<StackPanel Grid.Column="2" Orientation="Vertical" VerticalAlignment="Bottom" Margin="-5 -5 5 5">
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Open Output Folder" Padding="0,4,0,4"
|
|
Command="{Binding MenuCommand}" CommandParameter="ToolBox_Open_Output_Directory">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource FolderIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Clear Logs" Padding="0,4,0,4"
|
|
Command="{Binding MenuCommand}" CommandParameter="ToolBox_Clear_Logs">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource TrashIcon}"/>
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Expander>
|
|
</Grid>
|
|
</GroupBox>
|
|
</Grid>
|
|
|
|
<StatusBar Grid.Row="3" MinHeight="28" MaxHeight="28"
|
|
adonisExtensions:LayerExtension.Layer="3">
|
|
<StatusBar.Style>
|
|
<Style TargetType="{x:Type StatusBar}" BasedOn="{StaticResource {x:Type StatusBar}}">
|
|
<Style.Triggers>
|
|
<!--don't mind me, MultiDataTrigger just sucks-->
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Ready}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AccentBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Completed}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AccentBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Loading}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AlertBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Stopping}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AlertBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Stopped}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.ErrorBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Failed}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.ErrorBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding StatusChangeAttempted, Source={x:Static services:ApplicationService.ThreadWorkerView}}" Value="True">
|
|
<DataTrigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard Duration="0:0:0.8">
|
|
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(StatusBar.Background).(SolidColorBrush.Color)" FillBehavior="Stop">
|
|
<ColorAnimationUsingKeyFrames.KeyFrames>
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="#CE5555" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.2" Value="#C22B2B" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.4" Value="#CE5555" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.6" Value="#C22B2B" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.8" Value="#CE5555" />
|
|
</ColorAnimationUsingKeyFrames.KeyFrames>
|
|
</ColorAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</DataTrigger.EnterActions>
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding OperationCancelled, Source={x:Static services:ApplicationService.ThreadWorkerView}}" Value="True">
|
|
<DataTrigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard Duration="0:0:1">
|
|
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(StatusBar.Background).(SolidColorBrush.Color)" FillBehavior="Stop">
|
|
<ColorAnimationUsingKeyFrames.KeyFrames>
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="#C22B2B" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:1" Value="#CE5555" />
|
|
</ColorAnimationUsingKeyFrames.KeyFrames>
|
|
</ColorAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</DataTrigger.EnterActions>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StatusBar.Style>
|
|
|
|
<StatusBarItem Margin="5,0,0,0" >
|
|
<TextBlock>
|
|
<TextBlock.Style>
|
|
<Style TargetType="{x:Type TextBlock}">
|
|
<Setter Property="Text" Value="{Binding Status.Label}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Loading}">
|
|
<Setter Property="Text" Value="{Binding Status.Label, StringFormat='{}{0} …'}" />
|
|
</DataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding CanBeCanceled, Source={x:Static services:ApplicationService.ThreadWorkerView}}" Value="True" />
|
|
<Condition Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Loading}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Text" Value="{Binding Status.Label, StringFormat='{}{0} … ESC to Cancel'}" />
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</TextBlock.Style>
|
|
</TextBlock>
|
|
</StatusBarItem>
|
|
|
|
<StatusBarItem Margin="0 0 5 0" HorizontalAlignment="Right">
|
|
<StackPanel Orientation="Horizontal">
|
|
<StatusBarItem Margin="0 0 10 0" HorizontalContentAlignment="Stretch">
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource StatusBarIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</StatusBarItem>
|
|
|
|
<StatusBarItem Width="30" HorizontalContentAlignment="Stretch" ToolTip="Auto Open Sounds Enabled">
|
|
<StatusBarItem.Style>
|
|
<Style TargetType="StatusBarItem">
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsAutoOpenSounds, Source={x:Static settings:UserSettings.Default}}" Value="False">
|
|
<Setter Property="Visibility" Value="Collapsed" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StatusBarItem.Style>
|
|
<TextBlock HorizontalAlignment="Center" FontWeight="SemiBold" Text="SND" />
|
|
</StatusBarItem>
|
|
|
|
<StatusBarItem Margin="10 0 0 0">
|
|
<TextBlock Text="{Binding LastUpdateCheck, Source={x:Static local:Settings.UserSettings.Default}, Converter={x:Static converters:RelativeDateTimeConverter.Instance}, StringFormat=Last Refresh: {0}}" />
|
|
</StatusBarItem>
|
|
</StackPanel>
|
|
</StatusBarItem>
|
|
</StatusBar>
|
|
</Grid>
|
|
</adonisControls:AdonisWindow>
|