Replace mod text box by separate tab with workshop support (#263)
* Implement ModList tab which fetches and displays mod information from the workshop.
* ModListEditor: Implement drag and drop ordering, adding, removing and saving.
* Add SteamWorkshopService to VCS
* Add missing file to SteamworkshopService project.
* ModlistControl: Implement checkbox for hiding/showing dependency mods
disable until config is loaded.
design improvements.
* Add documentation for the new classes.
* Comply to naming conventions.
* Update Torch.Server.csproj
* Fix Mod.IsDependency not being serialized when saving
* Remove superfluous update of mod meta data.
Remove commented section in ConfigControl.xaml.
* Optimized SteamworkshopService according to commit review.
* Move SteamWorkshopService to Torch.Utils.SteamworkshopTools
* Remove debug output.
* Don't break stack trace with custom exception in SteamWorkshopTools.
* User ViewModel base class for ModItemInfo instead of implementing INotifyProperty directly.
* Wrap ModListControl in ScrollViewer.
* Rename SteamWorkshopTools utility to WebAPI.
* Revert steamkit call to use dynamic typing for clarity :/
* Mark webAPI based method for downloading workshop content as obsolete.
* Update Torch project definition.
* Disable building Torch client
* Update readme
* Change init order to ensure paths are initialized for plugins
* Reorder exception logging to reduce duplication
* Use thread safe queues in MtObservableCollectionBase
* Revert "Change init order to ensure paths are initialized for plugins"
This reverts commit 3f803b8107
.
* Fix layout of ModListControl
* Combine Invokes to reduce allocations
* Replace string comparisons by string.Equals / string.IsNullOrEmpty
* Replace string comparisons by string.Equals / string.IsNullOrEmpty
* Use MtObservableList for Modlist to avoid race conditions.
This commit is contained in:
53
Torch.Server/Views/Converters/ModToIdConverter.cs
Normal file
53
Torch.Server/Views/Converters/ModToIdConverter.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Data;
|
||||
using System.Threading.Tasks;
|
||||
using Torch.Server.ViewModels;
|
||||
using NLog;
|
||||
using Torch.Collections;
|
||||
|
||||
namespace Torch.Server.Views.Converters
|
||||
{
|
||||
/// <summary>
|
||||
/// A converter to get the index of a ModItemInfo object within a collection of ModItemInfo objects
|
||||
/// </summary>
|
||||
public class ModToListIdConverter : IMultiValueConverter
|
||||
{
|
||||
/// <summary>
|
||||
/// Converts a ModItemInfo object into its index within a Collection of ModItemInfo objects
|
||||
/// </summary>
|
||||
/// <param name="values">
|
||||
/// Expected to contain a ModItemInfo object at index 0
|
||||
/// and a Collection of ModItemInfo objects at index 1
|
||||
/// </param>
|
||||
/// <param name="targetType">This parameter will be ignored</param>
|
||||
/// <param name="parameter">This parameter will be ignored</param>
|
||||
/// <param name="culture"> This parameter will be ignored</param>
|
||||
/// <returns>the index of the mod within the provided mod list.</returns>
|
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
//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<ModItemInfo>) values[1];
|
||||
return theModList.IndexOf(mod);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// It is not supported to reverse this converter
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns>Raises a NotSupportedException</returns>
|
||||
public object[] ConvertBack(object values, Type[] targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotSupportedException("ModToIdConverter can not convert back!");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user