From bc54b79098310c7d96b1f3696daf5838c3a3a3e3 Mon Sep 17 00:00:00 2001 From: Neko Boi Nick Date: Sat, 15 Feb 2020 12:56:51 -0800 Subject: [PATCH] Fixed #364 (#365) * Added Move Function * Fixed #364 * Quick fix as the issue still sort of persisted. * Update ModToIdConverter.cs * Fixed the logic inverse. --- Torch.Server/Views/Converters/ModToIdConverter.cs | 11 ++++++++--- Torch.Server/Views/ModListControl.xaml.cs | 6 +++--- Torch/Collections/MtObservableList.cs | 12 +++++++++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Torch.Server/Views/Converters/ModToIdConverter.cs b/Torch.Server/Views/Converters/ModToIdConverter.cs index 512bbf2..e878140 100644 --- a/Torch.Server/Views/Converters/ModToIdConverter.cs +++ b/Torch.Server/Views/Converters/ModToIdConverter.cs @@ -32,9 +32,14 @@ namespace Torch.Server.Views.Converters { //if (targetType != typeof(int)) // throw new NotSupportedException("ModToIdConverter can only convert mods into int values or vise versa!"); - var mod = (ModItemInfo) values[0]; - var theModList = (MtObservableList) values[1]; - return theModList.IndexOf(mod); + if (values[0] is ModItemInfo mod && values[1] is MtObservableList modList) + { + return modList.IndexOf(mod); + } + else + { + return null; + } } /// diff --git a/Torch.Server/Views/ModListControl.xaml.cs b/Torch.Server/Views/ModListControl.xaml.cs index eebb419..028bead 100644 --- a/Torch.Server/Views/ModListControl.xaml.cs +++ b/Torch.Server/Views/ModListControl.xaml.cs @@ -205,9 +205,9 @@ namespace Torch.Server.Views { _hasOrderChanged = true; var modList = (MtObservableList)DataContext; - //modList.Move(modList.IndexOf(_draggedMod), modList.IndexOf(targetMod)); - modList.RemoveAt(modList.IndexOf(_draggedMod)); - modList.Insert(modList.IndexOf(targetMod), _draggedMod); + modList.Move(modList.IndexOf(targetMod), _draggedMod); + //modList.RemoveAt(modList.IndexOf(_draggedMod)); + //modList.Insert(modList.IndexOf(targetMod), _draggedMod); ModList.Items.Refresh(); ModList.SelectedItem = _draggedMod; } diff --git a/Torch/Collections/MtObservableList.cs b/Torch/Collections/MtObservableList.cs index e846b3e..0bf620b 100644 --- a/Torch/Collections/MtObservableList.cs +++ b/Torch/Collections/MtObservableList.cs @@ -189,5 +189,15 @@ namespace Torch.Collections /// bool IList.IsFixedSize => false; + + /// + public void Move(int newIndex, object value) + { + if (value is T t) + { + base.Remove(t); + } + Insert(newIndex, (T)value); + } } -} \ No newline at end of file +}