Example #1
0
        internal static AssetStatus GetStatusesToDraw(AssetStatus status)
        {
            if (status.HasFlag(AssetStatus.Checkout) &&
                status.HasFlag(AssetStatus.Locked))
            {
                return(status & ~AssetStatus.Checkout);
            }

            if (status.HasFlag(AssetStatus.DeletedOnServer) &&
                status.HasFlag(AssetStatus.LockedRemote))
            {
                return(status & ~AssetStatus.LockedRemote);
            }

            return(status);
        }
Example #2
0
        static void OnProjectWindowItemGUI(string guid, Rect selectionRect)
        {
            if (string.IsNullOrEmpty(guid))
            {
                return;
            }

            if (Event.current.type != EventType.Repaint)
            {
                return;
            }

            AssetStatus statusesToDraw = GetStatusesToDraw(
                mAssetStatusCache.GetStatusForGuid(guid));

            foreach (AssetStatus status in Enum.GetValues(typeof(AssetStatus)))
            {
                if (status == AssetStatus.None)
                {
                    continue;
                }

                if (!statusesToDraw.HasFlag(status))
                {
                    continue;
                }

                LockStatusData lockStatusData =
                    ClassifyAssetStatus.IsLockedRemote(status) ?
                    mAssetStatusCache.GetLockStatusData(guid) :
                    null;

                string tooltipText = GetTooltipText(
                    status,
                    lockStatusData);

                DrawOverlayIcon.ForStatus(
                    selectionRect,
                    status,
                    tooltipText);
            }
        }