public void AddFolder(DirectoryPath folder) { App.Logger.TraceExt("NotesViewHierarchical", "AddFolder", Tuple.Create("folder", folder.Formatted)); var curr = DisplayItems; if (Settings?.FolderViewShowRootNode == true) { curr = DisplayItems.GetOrCreateRootFolder(); } foreach (var comp in folder.Enumerate()) { curr = curr.GetOrCreateFolder(comp, out var created); if (created) { curr.Permanent = true; } } SelectedFolderPath = folder; if (_isNotesInitialized) { _hierarchyCache.UpdateAndRequestSave(RepositoryAccountID, DisplayItems, SelectedFolderPath, SelectedNote?.UniqueName); } }
private void SetInternalTitle(DirectoryPath p, string t) { if (!_hConfig.EmulateSubfolders) { InternalTitle = t; return; } InternalTitle = _hConfig.EscapeStringListForRemote(p.Enumerate().Concat(new[] { t })); }
public void AddFolder(DirectoryPath folder) { App.Logger.TraceExt("NotesViewHierachical", "AddFolder", Tuple.Create("folder", folder.Formatted)); var curr = DisplayItems; if (Settings?.FolderViewShowRootNode == true) { curr = DisplayItems.GetOrCreateRootFolder(); } foreach (var comp in folder.Enumerate()) { curr = curr.GetOrCreateFolder(comp, out var created); if (created) { curr.Permanent = true; } } SelectedFolderPath = folder; }
public void MoveFolder(DirectoryPath folder, int delta) { App.Logger.TraceExt("NotesViewHierarchical", "MoveFolder", Tuple.Create("folder", folder.Formatted), Tuple.Create("delta", delta.ToString())); if (folder.IsRoot()) { return; } var curr = DisplayItems; if (Settings?.FolderViewShowRootNode == true) { curr = DisplayItems.GetRootFolder(); } if (curr == null) { App.Logger.Warn("NotesViewHierarchical", "MoveFolder encountered missing (root) path"); return; } HierarchicalWrapper_Folder currParent = null; foreach (var comp in folder.Enumerate()) { currParent = curr; curr = curr.GetFolder(comp); if (curr == null) { App.Logger.Warn("NotesViewHierarchical", "MoveFolder encountered missing path", $"folder := '{folder.Formatted}'\ncomp := '{comp}'"); return; } } if (curr == null || currParent == null) { App.Logger.Warn("NotesViewHierarchical", "MoveFolder encountered missing parent"); return; } var counter = 1; foreach (var f in currParent.SubFolder) { f.CustomOrder = counter * 100; counter++; } curr.CustomOrder += delta * 100 + Math.Sign(delta) * 50; currParent.Sort(false); counter = 1; foreach (var f in currParent.SubFolder) { f.CustomOrder = counter * 100; counter++; } if (_isNotesInitialized) { _hierarchyCache.UpdateAndRequestSave(RepositoryAccountID, DisplayItems, SelectedFolderPath, SelectedNote?.UniqueName); } }
private static string CreateCategoryFromPath(DirectoryPath path) { return(string.Join(@"/", path.Enumerate())); }