private void UpdateJumplist(bool validWorkingDir)
{
#if !__MonoCS__
if (!EnvUtils.RunningOnWindows() || !TaskbarManager.IsPlatformSupported)
return;
try
{
if (validWorkingDir)
{
string repositoryDescription = GetRepositoryShortName(Module.WorkingDir);
string baseFolder = Path.Combine(Settings.ApplicationDataPath.Value, "Recent");
if (!Directory.Exists(baseFolder))
{
Directory.CreateDirectory(baseFolder);
}
//Remove InvalidPathChars
StringBuilder sb = new StringBuilder(repositoryDescription);
foreach (char c in Path.GetInvalidFileNameChars())
{
sb.Replace(c, '_');
}
string path = Path.Combine(baseFolder, String.Format("{0}.{1}", sb, "gitext"));
File.WriteAllText(path, Module.WorkingDir);
JumpList.AddToRecent(path);
var JList = JumpList.CreateJumpListForIndividualWindow(TaskbarManager.Instance.ApplicationId, Handle);
JList.ClearAllUserTasks();
//to control which category Recent/Frequent is displayed
JList.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent;
JList.Refresh();
}
CreateOrUpdateTaskBarButtons(validWorkingDir);
}
catch (System.Runtime.InteropServices.COMException ex)
{
Trace.WriteLine(ex.Message, "UpdateJumplist");
}
#endif
}