public override void OnDeactivate() { if (mInitialOptions == null) { return; } bool isDialogueDirty = false; try { PendingChangesOptions currentOptions = GetOptions(); isDialogueDirty = IsDirty(currentOptions); if (!isDialogueDirty) { return; } currentOptions.SavePreferences(); } finally { IAutoRefreshView autoRefreshView = GetPendingChangesView(); if (autoRefreshView != null) { autoRefreshView.EnableAutoRefresh(); if (isDialogueDirty) { autoRefreshView.ForceRefresh(); } } } }
void SetOptions(PendingChangesOptions options) { mShowCheckouts = IsEnabled( WorkspaceStatusOptions.FindCheckouts, options.WorkspaceStatusOptions); mAutoRefresh = options.AutoRefresh; mShowChangedFiles = IsEnabled( WorkspaceStatusOptions.FindChanged, options.WorkspaceStatusOptions); mCheckFileContent = options.CheckFileContentForChanged; mShowPrivateFields = IsEnabled( WorkspaceStatusOptions.FindPrivates, options.WorkspaceStatusOptions); mShowIgnoredFiles = IsEnabled( WorkspaceStatusOptions.ShowIgnored, options.WorkspaceStatusOptions); mShowHiddenFiles = IsEnabled( WorkspaceStatusOptions.ShowHiddenChanges, options.WorkspaceStatusOptions); mShowDeletedFiles = IsEnabled( WorkspaceStatusOptions.FindLocallyDeleted, options.WorkspaceStatusOptions); mShowMovedFiles = IsEnabled( WorkspaceStatusOptions.CalculateLocalMoves, options.WorkspaceStatusOptions); mMatchBinarySameExtension = options.MovedMatchingOptions.bBinMatchingOnlySameExtension; mMatchTextSameExtension = options.MovedMatchingOptions.bTxtMatchingOnlySameExtension; mSimilarityPercent = (int)((1 - options.MovedMatchingOptions.AllowedChangesPerUnit) * 100f); }
/// <summary> /// When initialized /// </summary> public override void OnActivate(string searchContext, VisualElement rootElement) { IAutoRefreshView autoRefreshView = GetPendingChangesView(); if (autoRefreshView != null) { autoRefreshView.DisableAutoRefresh(); } // Check if FSWatcher should be enabled WorkspaceInfo workspaceInfo = FindWorkspace.InfoForApplicationPath( Application.dataPath, PlasticWindow.PlasticApi); CheckFsWatcher(workspaceInfo); mInitialOptions = new PendingChangesOptions(); mInitialOptions.LoadPendingChangesOptions(); SetOptions(mInitialOptions); }
internal static void ChangeOptions( WorkspaceInfo wkInfo, bool isGluonMode, IRefreshableView view, IAutorefreshView autorefreshView, EditorWindow window) { PendingChangesOptionsDialog dialog = Build(wkInfo, isGluonMode); autorefreshView.DisableAutorefresh(); bool isDialogDirty = false; try { if (dialog.RunModal(window) != ResponseType.Ok) { return; } PendingChangesOptions currentOptions = dialog.GetOptions(); isDialogDirty = dialog.IsDirty(currentOptions); if (!isDialogDirty) { return; } currentOptions.SavePreferences(); } finally { autorefreshView.EnableAutorefresh(); if (isDialogDirty) { view.Refresh(); } } }
void FillPendingChanges(INewChangesInWk newChangesInWk) { if (mIsRefreshing) { return; } mIsRefreshing = true; List <ChangeInfo> changesToSelect = PendingChangesSelection.GetChangesToFocus(mChangesTreeView); mProgressControls.ShowProgress(PlasticLocalization.GetString( PlasticLocalization.Name.LoadingPendingChanges)); IDictionary <MountPoint, IList <PendingMergeLink> > mergeLinks = null; IThreadWaiter waiter = ThreadWaiter.GetWaiter(); waiter.Execute( /*threadOperationDelegate*/ delegate { FilterManager.Get().Reload(); WorkspaceStatusOptions options = WorkspaceStatusOptions.None; options |= WorkspaceStatusOptions.FindAdded; options |= WorkspaceStatusOptions.FindDeleted; options |= WorkspaceStatusOptions.FindMoved; options |= WorkspaceStatusOptions.SplitModifiedMoved; options |= PendingChangesOptions.GetWorkspaceStatusOptions(); if (newChangesInWk != null) { newChangesInWk.Detected(); } mPendingChanges.Calculate( options, PendingChangesOptions.GetMovedMatchingOptions()); mergeLinks = Plastic.API.GetPendingMergeLinks(mWkInfo); }, /*afterOperationDelegate*/ delegate { mPendingMergeLinks = mergeLinks; try { if (waiter.Exception != null) { ExceptionsHandler.DisplayException(waiter.Exception); return; } UpdateChangesTree(); UpdateMergeLinksList(); PendingChangesSelection.SelectChanges( mChangesTreeView, changesToSelect); } finally { mProgressControls.HideProgress(); UpdateIsCommentWarningNeeded(CommentText); UpdateNotificationPanel(); mIsRefreshing = false; } }); }
bool IsDirty(PendingChangesOptions currentOptions) { return(!mInitialOptions.AreSameOptions(currentOptions)); }