60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | 
 | ||
|  | using UnityEditor; | ||
|  | 
 | ||
|  | using Codice.Client.BaseCommands; | ||
|  | using Codice.Client.Commands; | ||
|  | using PlasticGui.WorkspaceWindow; | ||
|  | using PlasticGui.WorkspaceWindow.Update; | ||
|  | 
 | ||
|  | namespace Unity.PlasticSCM.Editor.Toolbar.Headless | ||
|  | { | ||
|  |     internal class HeadlessUpdateProgress | ||
|  |     { | ||
|  |         internal void ShowUpdateProgress(string title, UpdateNotifier notifier) | ||
|  |         { | ||
|  |             mProgressData = new BuildProgressSpeedAndRemainingTime.ProgressData(DateTime.Now); | ||
|  | 
 | ||
|  |             if (mProgressId == -1) | ||
|  |                 Progress.Finish(mProgressId); | ||
|  | 
 | ||
|  |             mProgressId = Progress.Start(title); | ||
|  |             mUpdateProgressNotifier = notifier; | ||
|  | 
 | ||
|  |             EditorApplication.update += UpdateProgress; | ||
|  |         } | ||
|  | 
 | ||
|  |         internal void EndUpdateProgress() | ||
|  |         { | ||
|  |             EditorApplication.update -= UpdateProgress; | ||
|  |             Progress.Finish(mProgressId); | ||
|  |             mProgressId = -1; | ||
|  |         } | ||
|  | 
 | ||
|  |         internal bool IsOperationRunning() | ||
|  |         { | ||
|  |             return mProgressId != -1; | ||
|  |         } | ||
|  | 
 | ||
|  |         void UpdateProgress() | ||
|  |         { | ||
|  |             if (mProgressId == -1) | ||
|  |                 return; | ||
|  | 
 | ||
|  |             UpdateOperationStatus status = mUpdateProgressNotifier.GetUpdateStatus(); | ||
|  | 
 | ||
|  |             float progress = GetProgressBarPercent.ForTransfer( | ||
|  |                 status.UpdatedSize, status.TotalSize) / 100f; | ||
|  | 
 | ||
|  |             Progress.Report( | ||
|  |                 mProgressId, | ||
|  |                 progress, | ||
|  |                 UpdateProgressRender.GetProgressString(status, mProgressData)); | ||
|  |         } | ||
|  | 
 | ||
|  |         int mProgressId = -1; | ||
|  |         UpdateNotifier mUpdateProgressNotifier; | ||
|  |         BuildProgressSpeedAndRemainingTime.ProgressData mProgressData; | ||
|  |     } | ||
|  | } |