Example #1
0
        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);
            }
        }
Example #2
0
        private void SetInternalTitle(DirectoryPath p, string t)
        {
            if (!_hConfig.EmulateSubfolders)
            {
                InternalTitle = t;
                return;
            }

            InternalTitle = _hConfig.EscapeStringListForRemote(p.Enumerate().Concat(new[] { t }));
        }
Example #3
0
        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;
        }
Example #4
0
        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);
            }
        }
Example #5
0
 private static string CreateCategoryFromPath(DirectoryPath path)
 {
     return(string.Join(@"/", path.Enumerate()));
 }