mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-13 19:19:23 +08:00
ed59d6acf5
currently delegate is verified and an error icon will be presented (same as before) but without raising an excpetion.
72 lines
1.8 KiB
C#
72 lines
1.8 KiB
C#
using System;
|
|
using System.Windows.Media;
|
|
using System.Windows.Threading;
|
|
using Wox.Infrastructure;
|
|
using Wox.Infrastructure.Image;
|
|
using Wox.Infrastructure.Logger;
|
|
using Wox.Plugin;
|
|
|
|
|
|
namespace Wox.ViewModel
|
|
{
|
|
public class ResultViewModel : BaseModel
|
|
{
|
|
public ResultViewModel(Result result)
|
|
{
|
|
if (result != null)
|
|
{
|
|
Result = result;
|
|
}
|
|
}
|
|
|
|
public ImageSource Image
|
|
{
|
|
get
|
|
{
|
|
var imagePath = Result.IcoPath;
|
|
if (string.IsNullOrEmpty(imagePath) && Result.Icon != null)
|
|
{
|
|
try
|
|
{
|
|
return Result.Icon();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.Exception($"|ResultViewModel.Image|IcoPath is empty and exception when calling Icon() for result <{Result.Title}> of plugin <{Result.PluginDirectory}>", e);
|
|
imagePath = Constant.ErrorIcon;
|
|
}
|
|
}
|
|
|
|
// will get here either when icoPath has value\icon delegate is null\when had exception in delegate
|
|
return ImageLoader.Load(imagePath);
|
|
}
|
|
}
|
|
|
|
public Result Result { get; }
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
var r = obj as ResultViewModel;
|
|
if (r != null)
|
|
{
|
|
return Result.Equals(r.Result);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return Result.GetHashCode();
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return Result.ToString();
|
|
}
|
|
|
|
}
|
|
}
|