mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
65 lines
1.7 KiB
C#
65 lines
1.7 KiB
C#
using System;
|
|
using ReactiveUI;
|
|
using Wabbajack.Common;
|
|
using Wabbajack.Lib.Downloaders;
|
|
|
|
namespace Wabbajack.Converters
|
|
{
|
|
public class PathToStringConverter : IBindingTypeConverter
|
|
{
|
|
public int GetAffinityForObjects(Type fromType, Type toType)
|
|
{
|
|
if (toType == typeof(object)) return 1;
|
|
if (toType == typeof(string)) return 1;
|
|
if (toType == typeof(AbsolutePath)) return 1;
|
|
if (toType == typeof(AbsolutePath?)) return 1;
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
public bool TryConvert(object @from, Type toType, object conversionHint, out object result)
|
|
{
|
|
if (toType == typeof(AbsolutePath))
|
|
{
|
|
if (@from is string s)
|
|
{
|
|
try
|
|
{
|
|
result = (AbsolutePath)s;
|
|
return true;
|
|
}
|
|
catch
|
|
{
|
|
result = (AbsolutePath)"";
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (@from is AbsolutePath abs)
|
|
{
|
|
result = abs;
|
|
return true;
|
|
}
|
|
}
|
|
else if (toType == typeof(string))
|
|
{
|
|
if (@from is string s)
|
|
{
|
|
result = default;
|
|
return false;
|
|
}
|
|
|
|
if (@from is AbsolutePath abs)
|
|
{
|
|
result = (string)abs;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
result = default;
|
|
return false;
|
|
}
|
|
}
|
|
}
|