Finalize placement of flag editor in menu

This commit is contained in:
pizzaboxer 2023-07-23 18:17:34 +01:00
parent 500b21d601
commit b3b174ed4b
No known key found for this signature in database
GPG Key ID: 59D4A1DBAD0F2BA8
6 changed files with 53 additions and 50 deletions

View File

@ -44,8 +44,8 @@
<ui:NavigationItem Content="Installation" PageType="{x:Type pages:InstallationPage}" Icon="HardDrive20" Tag="installation" /> <ui:NavigationItem Content="Installation" PageType="{x:Type pages:InstallationPage}" Icon="HardDrive20" Tag="installation" />
<ui:NavigationItem Content="About" PageType="{x:Type pages:AboutPage}" Icon="QuestionCircle48" Tag="about" /> <ui:NavigationItem Content="About" PageType="{x:Type pages:AboutPage}" Icon="QuestionCircle48" Tag="about" />
<ui:NavigationItem Content="FastFlag Editor" PageType="{x:Type pages:FastFlagEditorPage}" Tag="fastflageditor" Visibility="Collapsed" />
<ui:NavigationItem Content="Before you install..." PageType="{x:Type pages:PreInstallPage}" Tag="preinstall" Visibility="Collapsed" /> <ui:NavigationItem Content="Before you install..." PageType="{x:Type pages:PreInstallPage}" Tag="preinstall" Visibility="Collapsed" />
<ui:NavigationItem Content="FastFlag Editor" PageType="{x:Type pages:FastFlagEditorPage}" Tag="fastflageditor" />
</ui:NavigationFluent.Items> </ui:NavigationFluent.Items>
</ui:NavigationFluent> </ui:NavigationFluent>

View File

@ -12,13 +12,30 @@
<Grid Margin="0,0,14,14"> <Grid Margin="0,0,14,14">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Grid.Row="0" Margin="0,0,0,16" Text="Manage your own FastFlags. Double click the value column to edit." FontSize="14" Foreground="{DynamicResource TextFillColorSecondaryBrush}" /> <TextBlock Grid.Row="0" Margin="0,0,0,16" Text="Manage your own FastFlags. Double click the value column to edit." FontSize="14" Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
<DataGrid Name="DataGrid" Grid.Row="1" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CellEditEnding="DataGrid_CellEditEnding"> <StackPanel Grid.Row="1" Margin="0,0,0,16" Orientation="Horizontal">
<ui:Button Icon="ArrowLeft48" Content="Back" Click="BackButton_Click" />
<ui:Button Icon="Add28" Content="Add new" Click="AddButton_Click" Margin="12,0,0,0" />
<ui:Button Icon="Delete48" Content="Delete selected" Click="DeleteButton_Click" Appearance="Danger" Margin="12,0,0,0">
<ui:Button.Style>
<Style TargetType="ui:Button" BasedOn="{StaticResource {x:Type ui:Button}}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=DataGrid, Path=SelectedItems.Count}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ui:Button.Style>
</ui:Button>
<ToggleButton Content="Show preset flags" Click="ToggleButton_Click" Margin="12,0,0,0" />
</StackPanel>
<DataGrid Name="DataGrid" Grid.Row="2" HeadersVisibility="Column" GridLinesVisibility="Horizontal" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CellEditEnding="DataGrid_CellEditEnding">
<DataGrid.Style> <DataGrid.Style>
<Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}"> <Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
<Setter Property="Background" Value="Transparent" /> <Setter Property="Background" Value="Transparent" />
@ -62,21 +79,5 @@
<DataGridTextColumn Header="Value" Binding="{Binding Value}" Width="*" /> <DataGridTextColumn Header="Value" Binding="{Binding Value}" Width="*" />
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
<StackPanel Grid.Row="2" Margin="0,16,0,0" Orientation="Horizontal">
<ui:Button Icon="Add28" Content="Add new" Click="AddButton_Click" />
<ui:Button Icon="Delete48" Content="Delete selected" Click="DeleteButton_Click" Appearance="Danger" Margin="12,0,0,0">
<ui:Button.Style>
<Style TargetType="ui:Button" BasedOn="{StaticResource {x:Type ui:Button}}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=DataGrid, Path=SelectedItems.Count}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ui:Button.Style>
</ui:Button>
<ToggleButton Content="Show preset flags" Click="ToggleButton_Click" Margin="12,0,0,0" />
</StackPanel>
</Grid> </Grid>
</ui:UiPage> </ui:UiPage>

View File

@ -3,6 +3,8 @@ using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Controls.Primitives; using System.Windows.Controls.Primitives;
using Wpf.Ui.Mvvm.Contracts;
using Bloxstrap.UI.Elements.Dialogs; using Bloxstrap.UI.Elements.Dialogs;
namespace Bloxstrap.UI.Elements.Menu.Pages namespace Bloxstrap.UI.Elements.Menu.Pages
@ -67,6 +69,12 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
} }
} }
private void BackButton_Click(object sender, RoutedEventArgs e)
{
if (Window.GetWindow(this) is INavigationWindow window)
window.Navigate(typeof(FastFlagsPage));
}
private void AddButton_Click(object sender, RoutedEventArgs e) private void AddButton_Click(object sender, RoutedEventArgs e)
{ {
var dialog = new AddFastFlagDialog(); var dialog = new AddFastFlagDialog();

View File

@ -15,36 +15,14 @@
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ui:CardAction x:Name="OpenClientSettingsCardAction" Grid.Column="0" Margin="0,0,4,0" Icon="DocumentEdit24" Command="{Binding OpenClientSettingsCommand}" IsEnabled="{Binding Source={x:Static models:GlobalViewModel.IsNotFirstRun}, Mode=OneTime}"> <ui:CardAction Grid.Column="0" Margin="0,0,4,0" Icon="WindowDevEdit20" Command="{Binding OpenFastFlagEditorCommand}">
<StackPanel> <StackPanel>
<TextBlock FontSize="14" Text="Edit ClientAppSettings.json"> <TextBlock FontSize="14" Text="FastFlag Editor" />
<!--this is so fucking stupid the disabled state of the cardaction doesnt change the header text colour--> <TextBlock Margin="0,2,0,0" FontSize="12" Text="Manage your own FastFlags." Padding="0,0,16,0" Foreground="{DynamicResource TextFillColorTertiaryBrush}" />
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=OpenClientSettingsCardAction, Path=IsEnabled, Mode=OneTime}" Value="False">
<Setter Property="TextBlock.Foreground" Value="{DynamicResource TextFillColorDisabledBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<TextBlock Margin="0,2,0,0" FontSize="12" Foreground="{DynamicResource TextFillColorTertiaryBrush}">
<TextBlock.Style>
<Style>
<Setter Property="TextBlock.Text" Value="Where all FastFlags are saved. Manage your own flags here."/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=OpenClientSettingsCardAction, Path=IsEnabled, Mode=OneTime}" Value="False">
<Setter Property="TextBlock.Text" Value="Bloxstrap must first be installed." />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel> </StackPanel>
</ui:CardAction> </ui:CardAction>

View File

@ -14,7 +14,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
public FastFlagsPage() public FastFlagsPage()
{ {
DataContext = new FastFlagsViewModel(); DataContext = new FastFlagsViewModel(this);
InitializeComponent(); InitializeComponent();
} }
@ -28,7 +28,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages
return; return;
} }
DataContext = new FastFlagsViewModel(); DataContext = new FastFlagsViewModel(this);
} }
private void ValidateInt32(object sender, TextCompositionEventArgs e) => e.Handled = !Int32.TryParse(e.Text, out int _); private void ValidateInt32(object sender, TextCompositionEventArgs e) => e.Handled = !Int32.TryParse(e.Text, out int _);

View File

@ -1,15 +1,31 @@
using System.Windows; using System.Windows;
using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using Wpf.Ui.Mvvm.Contracts;
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
using Bloxstrap.UI.Elements.Menu.Pages;
namespace Bloxstrap.UI.ViewModels.Menu namespace Bloxstrap.UI.ViewModels.Menu
{ {
public class FastFlagsViewModel : NotifyPropertyChangedViewModel public class FastFlagsViewModel : NotifyPropertyChangedViewModel
{ {
public ICommand OpenClientSettingsCommand => new RelayCommand(OpenClientSettings); private readonly Page _page;
private void OpenClientSettings() => Utilities.ShellExecute(Path.Combine(Directories.Modifications, "ClientSettings\\ClientAppSettings.json")); public FastFlagsViewModel(Page page)
{
_page = page;
}
private void OpenFastFlagEditor()
{
if (Window.GetWindow(_page) is INavigationWindow window)
window.Navigate(typeof(FastFlagEditorPage));
}
public ICommand OpenFastFlagEditorCommand => new RelayCommand(OpenFastFlagEditor);
public Visibility ShowDebugFlags => App.Settings.Prop.OhHeyYouFoundMe ? Visibility.Visible : Visibility.Collapsed; public Visibility ShowDebugFlags => App.Settings.Prop.OhHeyYouFoundMe ? Visibility.Visible : Visibility.Collapsed;