private void FocusDirectoryLevelUp() { if (SelectedFolderPath == null) { return; } if (SelectedFolderPath.IsRoot()) { return; } if (HierachicalBaseWrapper.IsSpecial(SelectedFolderPath)) { return; } SelectedFolderPath = SelectedFolderPath.ParentPath(); }
private void OnSelectedFolderPathChanged() { App.Logger.TraceExt("NotesViewHierarchical", "OnSelectedFolderPathChanged", Tuple.Create("SelectedFolderPath", SelectedFolderPath?.Formatted)); if (SelectedFolderPath == null) { return; } if (DisplayItems == null) { return; } var f = DisplayItems.Find(SelectedFolderPath, true); if (f != null) { if (!f.IsSelected) { App.Logger.TraceExt("NotesViewHierarchical", "OnSelectedFolderPathChanged (1)", Tuple.Create("f.IsSelected", "true")); f.IsSelected = true; } } else { if (AllNotes == null && !SelectedFolderPath.IsRoot() && !SelectedFolderPath.EqualsIgnoreCase(SelectedFolder?.GetInternalPath())) { App.Logger.TraceExt("NotesViewHierarchical", "OnSelectedFolderPathChanged (2)", Tuple.Create("SelectedFolder", SelectedFolder?.Header)); _initFolderPath = SelectedFolderPath; SelectedFolderPath = SelectedFolder?.GetInternalPath() ?? DirectoryPath.Root(); } else { if (DisplayItems.AllNotesViewWrapper != null) { if (!DisplayItems.AllNotesViewWrapper.IsSelected) { App.Logger.TraceExt("NotesViewHierarchical", "OnSelectedFolderPathChanged (3)", Tuple.Create("DisplayItems.AllNotesWrapper.IsSelected", "true")); DisplayItems.AllNotesViewWrapper.IsSelected = true; } } else { var fod = DisplayItems.SubFolder.FirstOrDefault(p => !p.IsSpecialNode); if (fod != null && !fod.IsSelected) { App.Logger.TraceExt("NotesViewHierarchical", "OnSelectedFolderPathChanged (4)", Tuple.Create("DisplayItems.SubFolder.FirstOrDefault().IsSelected", "true")); fod.IsSelected = true; } } } } if (_isNotesInitialized) { _hierarchyCache.UpdateAndRequestSave(RepositoryAccountID, SelectedFolderPath, SelectedNote?.UniqueName); } }