Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

GetChangesOverlayIcon.cs 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. using UnityEngine;
  2. using Codice.Client.BaseCommands;
  3. using Codice.Client.Commands;
  4. using Codice.ThemeImages;
  5. using PlasticGui.WorkspaceWindow.Merge;
  6. using PlasticGui.WorkspaceWindow.PendingChanges;
  7. using Unity.PlasticSCM.Editor.AssetsOverlays;
  8. using GluonIncomingChangeInfo = PlasticGui.Gluon.WorkspaceWindow.Views.IncomingChanges.IncomingChangeInfo;
  9. using GluonIncomingChangeCategory = PlasticGui.Gluon.WorkspaceWindow.Views.IncomingChanges.IncomingChangeCategory;
  10. namespace Unity.PlasticSCM.Editor.UI.Tree
  11. {
  12. static class GetChangesOverlayIcon
  13. {
  14. internal static Texture ForPlasticIncomingChange(
  15. MergeChangeInfo incomingChange,
  16. bool isSolvedConflict)
  17. {
  18. if (incomingChange.CategoryType == MergeChangesCategory.Type.FileConflicts ||
  19. incomingChange.CategoryType == MergeChangesCategory.Type.DirectoryConflicts)
  20. return ForConflict(isSolvedConflict);
  21. if (incomingChange.IsXLink())
  22. return ForXLink();
  23. if (incomingChange.CategoryType == MergeChangesCategory.Type.Deleted)
  24. return ForDeletedOnServer();
  25. if (incomingChange.CategoryType == MergeChangesCategory.Type.Changed)
  26. return ForOutOfDate();
  27. if (incomingChange.CategoryType == MergeChangesCategory.Type.Added)
  28. return ForAdded();
  29. return null;
  30. }
  31. internal static Texture ForGluonIncomingChange(
  32. GluonIncomingChangeInfo incomingChange,
  33. bool isSolvedConflict)
  34. {
  35. if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Conflicted)
  36. return ForConflict(isSolvedConflict);
  37. if (incomingChange.IsXLink())
  38. return ForXLink();
  39. if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Deleted)
  40. return ForDeletedOnServer();
  41. if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Changed)
  42. return ForOutOfDate();
  43. if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Added)
  44. return ForAdded();
  45. return null;
  46. }
  47. internal static Texture ForPendingChange(
  48. ChangeInfo changeInfo,
  49. bool isConflict)
  50. {
  51. if (isConflict)
  52. return ForConflicted();
  53. ItemIconImageType type = ChangeInfoView.
  54. GetIconImageType(changeInfo);
  55. if (ChangeTypesOperator.AreAllSet(
  56. changeInfo.ChangeTypes, ChangeTypes.Added))
  57. return ForAdded();
  58. if (type.HasFlag(ItemIconImageType.Ignored))
  59. return ForIgnored();
  60. if (type.HasFlag(ItemIconImageType.Deleted))
  61. return ForDeleted();
  62. if (type.HasFlag(ItemIconImageType.CheckedOut))
  63. return ForCheckedOut();
  64. if (type.HasFlag(ItemIconImageType.Private))
  65. return ForPrivated();
  66. return null;
  67. }
  68. static Texture ForConflict(bool isResolved)
  69. {
  70. if (isResolved)
  71. return ForConflictResolved();
  72. return ForConflicted();
  73. }
  74. static Texture ForXLink()
  75. {
  76. return Images.GetImage(Images.Name.XLink);
  77. }
  78. static Texture ForIgnored()
  79. {
  80. return Images.GetIgnoredOverlayIcon();
  81. }
  82. static Texture ForPrivated()
  83. {
  84. return Images.GetPrivatedOverlayIcon();
  85. }
  86. static Texture ForAdded()
  87. {
  88. return Images.GetAddedOverlayIcon();
  89. }
  90. static Texture ForDeleted()
  91. {
  92. return Images.GetDeletedLocalOverlayIcon();
  93. }
  94. static Texture ForCheckedOut()
  95. {
  96. return Images.GetCheckedOutOverlayIcon();
  97. }
  98. static Texture ForDeletedOnServer()
  99. {
  100. return Images.GetDeletedRemoteOverlayIcon();
  101. }
  102. static Texture ForOutOfDate()
  103. {
  104. return Images.GetOutOfSyncOverlayIcon();
  105. }
  106. static Texture ForConflicted()
  107. {
  108. return Images.GetConflictedOverlayIcon();
  109. }
  110. static Texture ForConflictResolved()
  111. {
  112. return Images.GetConflictResolvedOverlayIcon();
  113. }
  114. }
  115. }