2
0
flabbet 3 жил өмнө
parent
commit
e51dddaab0

BIN
PixiEditor/Images/Heart.png


+ 1 - 1
PixiEditor/Models/DataHolders/Palettes/Palette.cs

@@ -39,7 +39,7 @@ namespace PixiEditor.Models.DataHolders.Palettes
             FileName = fileName;
         }
 
-        private string? ReplaceInvalidChars(string? filename)
+        public static string? ReplaceInvalidChars(string? filename)
         {
             return filename == null ? null : string.Join("_", filename.Split(Path.GetInvalidFileNameChars()));
         }

+ 0 - 2
PixiEditor/PixiEditor.csproj

@@ -148,7 +148,6 @@
 		<None Remove="Images\Folder-add.png" />
 		<None Remove="Images\Folder.png" />
 		<None Remove="Images\Globe.png" />
-		<None Remove="Images\Heart.png" />
 		<None Remove="Images\Layer-add.png" />
 		<None Remove="Images\MoveImage.png" />
 		<None Remove="Images\MoveViewportImage.png" />
@@ -233,7 +232,6 @@
 		<Resource Include="Images\Folder-add.png" />
 		<Resource Include="Images\Folder.png" />
 		<Resource Include="Images\Globe.png" />
-		<Resource Include="Images\Heart.png" />
 		<Resource Include="Images\Layer-add.png" />
 		<Resource Include="Images\penMode.png" />
 		<Resource Include="Images\PixiBotLogo.png" />

+ 4 - 2
PixiEditor/Views/Dialogs/PalettesBrowser.xaml.cs

@@ -466,10 +466,11 @@ namespace PixiEditor.Views.Dialogs
 
             string oldFileName = $"{e.OldText}.pal";
 
-            if (string.IsNullOrWhiteSpace(e.NewText) || e.NewText == item.Palette.Name)
+            if (string.IsNullOrWhiteSpace(e.NewText) || e.NewText == item.Palette.Name || e.NewText.Length > 50)
             {
                 item.Palette.FileName = oldFileName;
                 item.Palette.Name = e.OldText;
+                item.UpdateName(e.OldText);
                 return;
             }
 
@@ -479,10 +480,11 @@ namespace PixiEditor.Views.Dialogs
             {
                 item.Palette.FileName = oldFileName;
                 item.Palette.Name = e.OldText;
+                item.UpdateName(e.OldText);
                 return;
             }
 
-            string finalNewName = $"{e.NewText}.pal";
+            string finalNewName = $"{Palette.ReplaceInvalidChars(e.NewText)}.pal";
             string newPath = Path.Join(LocalPalettesFetcher.PathToPalettesFolder, LocalPalettesFetcher.GetNonExistingName(finalNewName, true));
 
             File.Move(oldPath, newPath);

+ 1 - 1
PixiEditor/Views/UserControls/EditableTextBlock.xaml

@@ -11,7 +11,7 @@
                    TextTrimming="CharacterEllipsis" Name="textBlock"
                    Visibility="{Binding Path=TextBlockVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                    Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}" />
-        <TextBox Style="{StaticResource DarkTextBoxStyle}"
+        <TextBox MaxLength="{Binding Path=MaxChars, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}" Style="{StaticResource DarkTextBoxStyle}"
                  LostFocus="TextBox_LostFocus"
                  Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}"
                  KeyDown="TextBox_KeyDown"

+ 11 - 0
PixiEditor/Views/UserControls/EditableTextBlock.xaml.cs

@@ -37,6 +37,17 @@ namespace PixiEditor.Views
                 typeof(EditableTextBlock),
                 new PropertyMetadata(OnIsEditingChanged));
 
+        public int MaxChars
+        {
+            get { return (int)GetValue(MaxCharsProperty); }
+            set { SetValue(MaxCharsProperty, value); }
+        }
+
+        // Using a DependencyProperty as the backing store for MaxChars.  This enables animation, styling, binding, etc...
+        public static readonly DependencyProperty MaxCharsProperty =
+            DependencyProperty.Register("MaxChars", typeof(int), typeof(EditableTextBlock), new PropertyMetadata(int.MaxValue));
+
+
         public event EventHandler<TextChangedEventArgs> OnSubmit;
 
         public EditableTextBlock()

+ 3 - 1
PixiEditor/Views/UserControls/Palettes/PaletteItem.xaml

@@ -21,7 +21,9 @@
         <StackPanel Orientation="Vertical" Grid.RowSpan="2" Grid.ColumnSpan="2">
             <Separator Background="{StaticResource MainColor}"/>
             <StackPanel Orientation="Horizontal">
-                <views:EditableTextBlock x:Name="titleTextBlock" OnSubmit="EditableTextBlock_OnSubmit" Text="{Binding Palette.Name, ElementName=paletteItem, Mode=TwoWay}" Foreground="White" FontSize="20"/>
+                <views:EditableTextBlock x:Name="titleTextBlock" OnSubmit="EditableTextBlock_OnSubmit" 
+                                         Text="{Binding Palette.Name, ElementName=paletteItem, Mode=TwoWay}" 
+                                         Foreground="White" FontSize="20" MaxChars="50"/>
                 <Button Visibility="{Binding ElementName=paletteItem, Path=IsMouseOver, Converter={StaticResource BoolToVisibilityConverter}}" Click="RenameButton_Click" Style="{StaticResource ImageButtonStyle}" Cursor="Hand" Width="20" Height="20">
                     <Image Source="/Images/Edit.png"/>
                 </Button>

+ 6 - 0
PixiEditor/Views/UserControls/Palettes/PaletteItem.xaml.cs

@@ -57,6 +57,12 @@ namespace PixiEditor.Views.UserControls.Palettes
             InitializeComponent();
         }
 
+        public void UpdateName(string newName)
+        {
+            titleTextBlock.Text = newName;
+            titleTextBlock.textBox.Text = newName;
+        }
+
         private void EditableTextBlock_OnSubmit(object sender, EditableTextBlock.TextChangedEventArgs e)
         {
             OnRename?.Invoke(this, e);