internal static void EnableForWorkspace() { if (sIsEnabledForWorkspace) { return; } WorkspaceInfo wkInfo = FindWorkspace.InfoForApplicationPath( Application.dataPath, PlasticApp.PlasticAPI); if (wkInfo == null) { return; } sIsEnabledForWorkspace = true; PlasticApp.SetWorkspace(wkInfo); AssetStatusCache = new AssetStatusCache( wkInfo, PlasticApp.PlasticAPI.IsGluonWorkspace(wkInfo)); AssetMenuItems.Enable(); AssetsProcessors.Enable(); DrawAssetOverlay.Enable(); DrawInspectorOperations.Enable(); }
static void DoStatusOverlays( Rect iconRect, IAssetStatusCache assetStatusCache, string path) { AssetsOverlays.AssetStatus statusesToDraw = DrawAssetOverlay.GetStatusesToDraw( assetStatusCache.GetStatusForPath(path)); foreach (AssetsOverlays.AssetStatus status in Enum.GetValues(typeof(AssetsOverlays.AssetStatus))) { if (status == AssetsOverlays.AssetStatus.None) continue; if (!statusesToDraw.HasFlag(status)) continue; GetChangesOverlayIcon.Data overlayIconData = GetChangesOverlayIcon.ForAssetStatus(status); if (overlayIconData != null) { Rect overlayIconRect = new Rect( iconRect.x + overlayIconData.XOffset, iconRect.y + overlayIconData.YOffset, overlayIconData.Size, overlayIconData.Size); GUI.DrawTexture( overlayIconRect, overlayIconData.Texture, ScaleMode.ScaleToFit); } } }
static void DrawStatusLabels( AssetsOverlays.AssetStatus assetStatus, LockStatusData lockStatusData) { AssetsOverlays.AssetStatus statusesToDraw = DrawAssetOverlay.GetStatusesToDraw(assetStatus); foreach (AssetsOverlays.AssetStatus status in Enum.GetValues(typeof(AssetsOverlays.AssetStatus))) { if (status == AssetsOverlays.AssetStatus.None) { continue; } if (!statusesToDraw.HasFlag(status)) { continue; } string label = string.Format("{0}", DrawAssetOverlay.GetStatusString(status)); Texture icon = DrawAssetOverlay.DrawOverlayIcon.GetOverlayIcon( status); string tooltipText = DrawAssetOverlay.GetTooltipText( status, lockStatusData); GUILayout.Label(new GUIContent( label, icon, tooltipText), GUILayout.Height(18)); } }
void IRefreshableView.Refresh() { if (!mAreIgnoreRulesInitialized) { return; } DrawAssetOverlay.ClearCache(); mPlasticClient.GetPendingChanges(mNewChangesInWk); }
static void ClosePlasticWindow(PlasticWindow window) { UnRegisterApplicationFocusHandlers(window); PlasticApp.Dispose(); DrawInspectorOperations.Disable(); DrawAssetOverlay.Dispose(); if (window.mEventSenderScheduler != null) { window.mPingEventLoop.Stop(); window.mEventSenderScheduler.End(); } DisposeNewIncomingChanges(window); AvatarImages.Dispose(); }
void IRefreshableView.Refresh() { if (!mAreIgnoreRulesInitialized) { return; } DrawAssetOverlay.ClearCache(); if (mDeveloperNewIncomingChangesUpdater != null) { mDeveloperNewIncomingChangesUpdater.Update(); } if (mGluonNewIncomingChangesUpdater != null) { mGluonNewIncomingChangesUpdater.Update(DateTime.Now); } FillPendingChanges(mNewChangesInWk); }
internal static void Disable() { try { PlasticApp.Dispose(); if (!sIsEnabledForWorkspace) { return; } AssetsProcessors.Disable(); AssetMenuItems.Disable(); DrawAssetOverlay.Disable(); DrawInspectorOperations.Disable(); } finally { sIsEnabled = false; sIsEnabledForWorkspace = false; } }
static void DrawStatusLabel( AssetsOverlays.AssetStatus assetStatus, LockStatusData lockStatusData) { Texture overlayIcon = DrawAssetOverlay.DrawOverlayIcon. GetOverlayIcon(assetStatus); if (overlayIcon == null) { return; } string statusText = DrawAssetOverlay. GetStatusString(assetStatus); string tooltipText = DrawAssetOverlay.GetTooltipText( assetStatus, lockStatusData); Rect selectionRect = GUILayoutUtility.GetRect( new GUIContent(statusText + EXTRA_SPACE, overlayIcon), GUIStyle.none); selectionRect.height = UnityConstants.OVERLAY_STATUS_ICON_SIZE; Rect overlayRect = OverlayRect.GetCenteredRect(selectionRect); GUI.DrawTexture( overlayRect, overlayIcon, ScaleMode.ScaleToFit); selectionRect.x += UnityConstants.OVERLAY_STATUS_ICON_SIZE; selectionRect.width -= UnityConstants.OVERLAY_STATUS_ICON_SIZE; GUI.Label( selectionRect, new GUIContent(statusText, tooltipText)); }
internal void InitializePlastic() { if (mForceToOpen) { mForceToOpen = false; return; } try { if (UnityConfigurationChecker.NeedsConfiguration()) { return; } mWkInfo = FindWorkspace.InfoForApplicationPath( Application.dataPath, mPlasticAPI); if (mWkInfo == null) { return; } MonoFileSystemWatcher.IsEnabled = true; SetupCloudProjectIdIfNeeded(mWkInfo, mPlasticAPI); DisableVCSIfEnabled(mWkInfo.ClientPath); mIsGluonMode = mPlasticAPI.IsGluonWorkspace(mWkInfo); IAssetStatusCache assetStatusCache = new AssetStatusCache( mWkInfo, mIsGluonMode, RepaintProjectWindow); AssetsProcessors.Enable( mPlasticAPI, assetStatusCache); if (mEventSenderScheduler != null) { mPingEventLoop.SetWorkspace(mWkInfo); ((IPlasticWebRestApi)mPlasticWebRestApi).SetToken( CmConnection.Get().BuildWebApiTokenForCloudEditionDefaultUser()); } InitializeNewIncomingChanges(mWkInfo, mIsGluonMode); ViewHost viewHost = new ViewHost(); PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges pendingChanges = new PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges(mWkInfo); mViewSwitcher = new ViewSwitcher( mWkInfo, viewHost, mIsGluonMode, pendingChanges, mDeveloperNewIncomingChangesUpdater, mGluonNewIncomingChangesUpdater, mIncomingChangesNotifier, assetStatusCache, mStatusBar, this); mCooldownAutoRefreshPendingChangesAction = new CooldownWindowDelayer( mViewSwitcher.AutoRefreshPendingChangesView, UnityConstants.AUTO_REFRESH_PENDING_CHANGES_DELAYED_INTERVAL); mWorkspaceWindow = new WorkspaceWindow( mWkInfo, viewHost, mViewSwitcher, mViewSwitcher, mDeveloperNewIncomingChangesUpdater, this); mViewSwitcher.SetWorkspaceWindow(mWorkspaceWindow); mViewSwitcher.ShowInitialView(); UnityStyles.Initialize(Repaint); AssetOperations.IAssetSelection inspectorAssetSelection = new InspectorAssetSelection(); AssetOperations.IAssetSelection projectViewAssetSelection = new ProjectViewAssetSelection(); AssetOperations inspectorAssetOperations = new AssetOperations( mWkInfo, mWorkspaceWindow, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, assetStatusCache, mViewSwitcher, mViewSwitcher, this, inspectorAssetSelection, mIsGluonMode); mAssetOperations = new AssetOperations( mWkInfo, mWorkspaceWindow, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, assetStatusCache, mViewSwitcher, mViewSwitcher, this, projectViewAssetSelection, mIsGluonMode); DrawInspectorOperations.Enable( inspectorAssetOperations, assetStatusCache, inspectorAssetSelection); DrawAssetOverlay.Initialize( assetStatusCache, RepaintProjectWindow); mLastUpdateTime = EditorApplication.timeSinceStartup; mViewSwitcher.ShowBranchesViewIfNeeded(); } catch (Exception ex) { mException = ex; ExceptionsHandler.HandleException("InitializePlastic", ex); } }
void InitializePlastic() { if (mForceToOpen) { mForceToOpen = false; return; } try { if (UnityConfigurationChecker.NeedsConfiguration()) { return; } mWkInfo = FindWorkspace.InfoForApplicationPath( Application.dataPath, mPlasticAPI); if (mWkInfo == null) { AssetMenuItems.Disable(); return; } // SetupCloudProjectId.ForWorkspace(mWkInfo, mPlasticAPI); DisableVCSIfEnabled(mWkInfo.ClientPath); mIsGluonMode = mPlasticAPI.IsGluonWorkspace(mWkInfo); IAssetStatusCache assetStatusCache = new AssetStatusCache( mWkInfo, mIsGluonMode, RepaintProjectWindow); AssetsProcessors.Enable( mPlasticAPI, assetStatusCache); mPingEventLoop.SetWorkspace(mWkInfo); mEventSenderRestApi.SetToken(BuildToken.FromServerProfile( ClientConfig.Get().GetDefaultProfile())); InitializeNewIncomingChanges(mWkInfo, mIsGluonMode); ViewHost viewHost = new ViewHost(); PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges pendingChanges = new PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges(mWkInfo); mViewSwitcher = new ViewSwitcher( mWkInfo, viewHost, mIsGluonMode, pendingChanges, mDeveloperNewIncomingChangesUpdater, mGluonNewIncomingChangesUpdater, mIncomingChangesNotificationPanel, assetStatusCache, this); mPlasticClient = new PlasticGUIClient( mWkInfo, mViewSwitcher, mViewSwitcher, viewHost, pendingChanges, mDeveloperNewIncomingChangesUpdater, mGluonNewIncomingChangesUpdater, this, new UnityPlasticGuiMessage(this)); mViewSwitcher.SetPlasticGUIClient(mPlasticClient); mViewSwitcher.ShowInitialView(); UnityStyles.Initialize(Repaint); AssetOperations.IAssetSelection inspectorAssetSelection = new InspectorAssetSelection(); AssetOperations.IAssetSelection projectViewAssetSelection = new ProjectViewAssetSelection(); AssetOperations inspectorAssetOperations = new AssetOperations( mWkInfo, mPlasticClient, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, assetStatusCache, mViewSwitcher, mViewSwitcher, this, inspectorAssetSelection, mIsGluonMode); AssetOperations projectViewAssetOperations = new AssetOperations( mWkInfo, mPlasticClient, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, assetStatusCache, mViewSwitcher, mViewSwitcher, this, projectViewAssetSelection, mIsGluonMode); AssetMenuItems.Enable( projectViewAssetOperations, assetStatusCache, projectViewAssetSelection); DrawInspectorOperations.Enable( inspectorAssetOperations, assetStatusCache, inspectorAssetSelection); DrawAssetOverlay.Initialize( assetStatusCache, RepaintProjectWindow); AutoCommitOperation.SetPlasticGUIClient(mPlasticClient); mLastUpdateTime = EditorApplication.timeSinceStartup; } catch (Exception ex) { mException = ex; ExceptionsHandler.HandleException("InitializePlastic", ex); } }