Browse Source

Made the shortcut popup edit hint a hyperlink

CPKreuz 3 years ago
parent
commit
b0427bd431

+ 7 - 0
PixiEditor/ViewModels/SettingsWindowViewModel.cs

@@ -10,6 +10,7 @@ namespace PixiEditor.ViewModels
     {
         private string searchTerm;
         private int visibleGroups;
+        private string currentPage;
 
         public bool ShowUpdateTab
         {
@@ -37,6 +38,12 @@ namespace PixiEditor.ViewModels
             }
         }
 
+        public string CurrentPage
+        {
+            get => currentPage;
+            set => SetProperty(ref currentPage, value);
+        }
+
         public int VisibleGroups
         {
             get => visibleGroups;

+ 14 - 8
PixiEditor/ViewModels/SubViewModels/Main/WindowViewModel.cs

@@ -10,23 +10,29 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
     [Command.Group("PixiEditor.Window", "Windows")]
     public class WindowViewModel : SubViewModel<ViewModelMain>
     {
+        private CommandController commandController;
         private ShortcutPopup shortcutPopup;
-        
+
+        private ShortcutPopup ShortcutPopup => shortcutPopup ?? (shortcutPopup = new(commandController));
+
         public RelayCommand<string> ShowAvalonDockWindowCommand { get; set; }
 
-        
-        
         public WindowViewModel(ViewModelMain owner, CommandController commandController)
             : base(owner)
         {
             ShowAvalonDockWindowCommand = new(ShowAvalonDockWindow);
-            shortcutPopup = new(commandController);
+            this.commandController = commandController;
         }
 
         [Command.Basic("PixiEditor.Window.OpenSettingsWindow", "Open Settings", "Open Settings Window", Key = Key.OemComma, Modifiers = ModifierKeys.Control)]
-        public static void OpenSettingsWindow()
+        public static void OpenSettingsWindow(string page)
         {
-            var settings = new SettingsWindow();
+            if (string.IsNullOrWhiteSpace(page))
+            {
+                page = "General";
+            }
+            
+            var settings = new SettingsWindow(page);
             settings.Show();
         }
 
@@ -39,8 +45,8 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
         [Command.Basic("PixiEditor.Window.OpenShortcutWindow", "Open Shortcut Window", "Open Shortcut Window", Key = Key.F1)]
         public void ShowShortcutWindow()
         {
-            shortcutPopup.Show();
-            shortcutPopup.Activate();
+            ShortcutPopup.Show();
+            ShortcutPopup.Activate();
         }
         
         [Command.Basic("PixiEditor.Window.OpenNavigationWindow", "navigation", "Open Navigation Window", "Open Navigation Window")]

+ 8 - 7
PixiEditor/Views/Dialogs/SettingsWindow.xaml

@@ -45,8 +45,9 @@
         <dial:DialogTitleBar DockPanel.Dock="Top"
             TitleText="Settings" CloseCommand="{x:Static SystemCommands.CloseWindowCommand}"/>
 
-        <ListBox DockPanel.Dock="Left" SelectedIndex="0" x:Name="pages" 
-                 Background="Transparent" BorderThickness="0" Width="150" ItemContainerStyle="{StaticResource PixiListBoxItemStyle}">
+        <ListBox DockPanel.Dock="Left" x:Name="pages" 
+                 Background="Transparent" BorderThickness="0" Width="150" ItemContainerStyle="{StaticResource PixiListBoxItemStyle}"
+                 SelectedItem="{Binding CurrentPage}">
             <ListBox.ItemTemplate>
                 <DataTemplate>
                     <TextBlock Margin="10 5 10 5" FontSize="15" Foreground="White" Text="{Binding}"/>
@@ -62,7 +63,7 @@
         </ListBox>
 
         <Grid Grid.Row="1" Grid.Column="1" Background="{StaticResource AccentColor}">
-            <Grid Visibility="{Binding SelectedItem, ElementName=pages, Converter={converters:EqualityBoolToVisibilityConverter},
+            <Grid Visibility="{Binding CurrentPage, Converter={converters:EqualityBoolToVisibilityConverter},
             ConverterParameter='General'}" Margin="15,10" Tag="27">
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="15"/>
@@ -136,13 +137,13 @@
                     IsChecked="{Binding SettingsSubViewModel.General.IsDebugModeEnabled}">Enable Debug Mode</CheckBox>
                 <Label Grid.Row="14" Grid.Column="1" Style="{StaticResource SettingsText}" VerticalAlignment="Center">
                     <Hyperlink Command="{cmds:Command PixiEditor.Debug.OpenCrashReportsDirectory}" Style="{StaticResource SettingsLink}">
-                               <TextBlock Text="Open Crash Reports Directory"/>
-                               <TextBlock Text="" FontFamily="Feather"/>
+                               <Run Text="Open Crash Reports Directory"/>
+                               <Run Text="" FontFamily="Feather"/>
                     </Hyperlink>
                 </Label>
             </Grid>
 
-            <StackPanel Visibility="{Binding SelectedItem, ElementName=pages, Converter={converters:EqualityBoolToVisibilityConverter},
+            <StackPanel Visibility="{Binding CurrentPage, Converter={converters:EqualityBoolToVisibilityConverter},
             ConverterParameter='Discord'}" Margin="15,10">
                 <Grid Tag="27">
                     <Grid.ColumnDefinitions>
@@ -179,7 +180,7 @@
                     IsPlaying="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"/>
             </StackPanel>
 
-            <Grid Visibility="{Binding SelectedItem, ElementName=pages, Converter={converters:EqualityBoolToVisibilityConverter}, ConverterParameter='Keybinds'}"
+            <Grid Visibility="{Binding CurrentPage, Converter={converters:EqualityBoolToVisibilityConverter}, ConverterParameter='Keybinds'}"
                         Margin="10,10,10,0">
                 <Grid.RowDefinitions>
                     <RowDefinition Height="Auto"/>

+ 4 - 1
PixiEditor/Views/Dialogs/SettingsWindow.xaml.cs

@@ -11,6 +11,7 @@ using System.Windows.Input;
 using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Shapes;
+using PixiEditor.ViewModels;
 
 namespace PixiEditor.Views.Dialogs
 {
@@ -19,9 +20,11 @@ namespace PixiEditor.Views.Dialogs
     /// </summary>
     public partial class SettingsWindow : Window
     {
-        public SettingsWindow()
+        public SettingsWindow(string page = "General")
         {
             InitializeComponent();
+            var viewModel = DataContext as SettingsWindowViewModel;
+            viewModel!.CurrentPage = page;
         }
 
         private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)

+ 12 - 3
PixiEditor/Views/Dialogs/ShortcutPopup.xaml

@@ -8,9 +8,11 @@
         xmlns:converters="clr-namespace:PixiEditor.Helpers.Converters"
         xmlns:commands="clr-namespace:PixiEditor.Models.Commands"
         xmlns:usercontrols="clr-namespace:PixiEditor.Views.UserControls"
+        xmlns:cmds="clr-namespace:PixiEditor.Models.Commands.XAML"
         mc:Ignorable="d"
         WindowStartupLocation="CenterScreen"
-        Title="ShortcutPopup" Height="780" Width="1220" WindowStyle="None"
+        SizeToContent="Height"
+        Title="ShortcutPopup" Width="1220" WindowStyle="None"
         MinHeight="780" MinWidth="620" Topmost="{Binding IsTopmost}">
     <Window.Resources>
         <BoolToVisibilityConverter x:Key="BoolToVisibility"/>
@@ -76,7 +78,7 @@
         <TextBlock Grid.Row="0" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Center">Shortcuts</TextBlock>
 
         <ScrollViewer Grid.Row="3" VerticalScrollBarVisibility="Auto">
-            <WrapPanel HorizontalAlignment="Center">
+            <WrapPanel HorizontalAlignment="Center" Margin="2">
                 <ItemsControl ItemsSource="{Binding Controller.CommandGroups}" Background="Transparent">
                     <ItemsControl.ItemTemplate>
                         <DataTemplate DataType="{x:Type commands:CommandGroup}">
@@ -119,7 +121,14 @@
                         </ItemsPanelTemplate>
                     </ItemsControl.ItemsPanel>
                 </ItemsControl>
-                <TextBlock FontSize="14" Margin="5" Foreground="LightGray" HorizontalAlignment="Left">You can rebind the shortcuts in settings</TextBlock>
+                <TextBlock FontSize="14" Margin="5" Foreground="LightGray" HorizontalAlignment="Left">
+                    <Hyperlink Style="{StaticResource SettingsLink}"
+                               Command="{cmds:Command PixiEditor.Window.OpenSettingsWindow, UseProvided=True}"
+                               CommandParameter="Keybinds">
+                        <Run Text="Edit"/>
+                        <Run Text="" FontFamily="Feather"/>
+                    </Hyperlink>
+                </TextBlock>
             </WrapPanel>
         </ScrollViewer>
     </Grid>