暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

CheckinProgress.cs 3.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using Codice.Client.BaseCommands;
  3. using Codice.Client.BaseCommands.CheckIn.Progress;
  4. using Codice.Client.Commands.CheckIn;
  5. using Codice.CM.Common;
  6. using PlasticGui;
  7. using PlasticGui.WorkspaceWindow;
  8. namespace Unity.PlasticSCM.Editor.Developer
  9. {
  10. internal class CheckinProgress
  11. {
  12. internal bool CancelPressed;
  13. internal CheckinProgress(WorkspaceInfo wkInfo, WorkspaceWindow workspaceWindow)
  14. {
  15. mWkInfo = wkInfo;
  16. mWorkspaceWindow = workspaceWindow;
  17. mWorkspaceWindow.Progress.CanCancelProgress = true;
  18. mProgressRender = new CheckinUploadProgressRender(
  19. PlasticLocalization.GetString(
  20. PlasticLocalization.Name.CheckinProgressMultiThreadUploading),
  21. PlasticLocalization.GetString(
  22. PlasticLocalization.Name.CheckinProgressMultiThreadNumOfBlocks),
  23. PlasticLocalization.GetString(PlasticLocalization.Name.CheckinProgressUploadingFiles),
  24. PlasticLocalization.GetString(
  25. PlasticLocalization.Name.CheckinProgressUploadingFileData),
  26. PlasticLocalization.GetString(PlasticLocalization.Name.CheckinProgressOf),
  27. PlasticLocalization.GetString(
  28. PlasticLocalization.Name.RemainingProgressMessage));
  29. }
  30. internal void Refresh(
  31. CheckinStatus checkinStatus,
  32. BuildProgressSpeedAndRemainingTime.ProgressData progressData)
  33. {
  34. if (checkinStatus == null)
  35. return;
  36. var progress = mWorkspaceWindow.Progress;
  37. progress.ProgressHeader = checkinStatus.StatusString;
  38. if (checkinStatus.Status >= EnumCheckinStatus.eciConfirming)
  39. progress.CanCancelProgress = false;
  40. if (checkinStatus.Status == EnumCheckinStatus.eciCancelling)
  41. return;
  42. int nowTicks = Environment.TickCount;
  43. progress.TotalProgressMessage = mProgressRender.GetUploadSize(
  44. checkinStatus.TransferredSize, checkinStatus.TotalSize, progressData);
  45. progress.TotalProgressPercent = GetProgressBarPercent.ForTransfer(
  46. checkinStatus.TransferredSize, checkinStatus.TotalSize) / 100f;
  47. progress.ShowCurrentBlock = mProgressRender.
  48. NeedShowCurrentBlockForCheckinStatus(checkinStatus, nowTicks);
  49. string currentFileInfo = mProgressRender.GetCurrentFileInfo(
  50. checkinStatus.CurrentCheckinBlock, mWkInfo.ClientPath);
  51. progress.ProgressHeader = currentFileInfo;
  52. float fileProgressBarValue = GetProgressBarPercent.ForTransfer(
  53. checkinStatus.CurrentCheckinBlock.UploadedSize,
  54. checkinStatus.CurrentCheckinBlock.BlockSize) / 100f;
  55. progress.CurrentBlockProgressPercent = fileProgressBarValue;
  56. progress.CurrentBlockProgressMessage = mProgressRender.GetCurrentBlockUploadSize(
  57. checkinStatus.CurrentCheckinBlock, nowTicks);
  58. }
  59. CheckinUploadProgressRender mProgressRender;
  60. WorkspaceWindow mWorkspaceWindow;
  61. WorkspaceInfo mWkInfo;
  62. }
  63. }