/// <summary> /// Do not call this constructor directly. Use <see cref="SessionUtility.GetSessionManager(INotepadsCore)" instead./> /// </summary> public SessionManager(INotepadsCore notepadsCore) { _notepadsCore = notepadsCore; _semaphoreSlim = new SemaphoreSlim(1, 1); _encodingConverter = new EncodingConverter(); _sessionData = new ConcurrentDictionary<Guid, TextEditorSessionData>(); _loaded = false; _notepadsCore.TextEditorLoaded += (sender, textEditor) => { textEditor.TextChanging += RemoveTextEditorData; textEditor.EncodingChanged += RemoveTextEditorData; textEditor.LineEndingChanged += RemoveTextEditorData; textEditor.ChangeReverted += RemoveTextEditorData; textEditor.EditorModificationStateChanged += RemoveTextEditorData; }; _notepadsCore.TextEditorUnloaded += (sender, textEditor) => { textEditor.TextChanging -= RemoveTextEditorData; textEditor.EncodingChanged -= RemoveTextEditorData; textEditor.LineEndingChanged -= RemoveTextEditorData; textEditor.ChangeReverted -= RemoveTextEditorData; textEditor.EditorModificationStateChanged -= RemoveTextEditorData; }; }
/// <summary> /// Do not call this constructor directly. Use <see cref="SessionUtility.GetSessionManager(INotepadsCore)" instead./> /// </summary> public SessionManager(INotepadsCore notepadsCore) { _notepadsCore = notepadsCore; _semaphoreSlim = new SemaphoreSlim(1, 1); _encodingConverter = new EncodingConverter(); _loaded = false; }
public void Dispose() { Opening -= TabContextFlyout_Opening; Closed -= TabContextFlyout_Closed; _notepadsCore = null; _textEditor = null; }
public static ISessionManager GetSessionManager(INotepadsCore notepadCore) { if (!SessionManagers.TryGetValue(notepadCore, out ISessionManager sessionManager)) { sessionManager = new SessionManager(notepadCore); if (!SessionManagers.TryAdd(notepadCore, sessionManager)) { sessionManager = SessionManagers[notepadCore]; } } return(sessionManager); }
/// <summary> /// Do not call this constructor directly. Use <see cref="SessionUtility.GetSessionManager(INotepadsCore)" instead./> /// </summary> public SessionManager(INotepadsCore notepadsCore) { _notepadsCore = notepadsCore; _semaphoreSlim = new SemaphoreSlim(1, 1); _sessionData = new ConcurrentDictionary <Guid, TextEditorSessionDataV1>(); _loaded = false; foreach (var editor in _notepadsCore.GetAllTextEditors()) { BindEditorContentStateChangeEvent(this, editor); } _notepadsCore.TextEditorLoaded += BindEditorContentStateChangeEvent; _notepadsCore.TextEditorUnloaded += UnbindEditorContentStateChangeEvent; }
public TabContextFlyout(INotepadsCore notepadsCore, TextEditor textEditor) { _notepadsCore = notepadsCore; _textEditor = textEditor; Items.Add(Close); Items.Add(CloseOthers); Items.Add(CloseRight); Items.Add(CloseSaved); Items.Add(new MenuFlyoutSeparator()); Items.Add(CopyFullPath); Items.Add(OpenContainingFolder); Opening += TabContextFlyout_Opening; Closed += TabContextFlyout_Closed; }
public TabContextFlyout(INotepadsCore notepadsCore, ITextEditor textEditor) { _notepadsCore = notepadsCore; _textEditor = textEditor; Items.Add(Close); Items.Add(CloseOthers); Items.Add(CloseRight); Items.Add(CloseSaved); Items.Add(new MenuFlyoutSeparator()); Items.Add(CopyFullPath); Items.Add(OpenContainingFolder); var style = new Style(typeof(MenuFlyoutPresenter)); style.Setters.Add(new Setter(Control.BorderThicknessProperty, 0)); MenuFlyoutPresenterStyle = style; Opening += TabContextFlyout_Opening; Closed += TabContextFlyout_Closed; }
public static ISessionManager GetSessionManager(INotepadsCore notepadCore, string filePathPrefix) { if (!SessionManagers.TryGetValue(notepadCore, out ISessionManager sessionManager)) { var backupFolderName = BackupFolderDefaultName; var sessionMetaDataFileName = SessionMetaDataFileDefaultName; if (filePathPrefix != null) { backupFolderName = filePathPrefix + backupFolderName; sessionMetaDataFileName = filePathPrefix + SessionMetaDataFileDefaultName; } sessionManager = new SessionManager(notepadCore, backupFolderName, sessionMetaDataFileName); if (!SessionManagers.TryAdd(notepadCore, sessionManager)) { sessionManager = SessionManagers[notepadCore]; } } return(sessionManager); }
public static ISessionManager GetSessionManager(INotepadsCore notepadCore) { return(GetSessionManager(notepadCore, null)); }