public HierarchicalWrapper_Folder GetOrCreateRootFolder()
 {
     if (RootFolderViewWrapper != null)
     {
         return(RootFolderViewWrapper);
     }
     RootFolderViewWrapper = new HierarchicalWrapper_Folder("[My Notes]", _config, DP_ROOTFOLDER, false, false);
     SubFolder.Add(RootFolderViewWrapper);
     return(RootFolderViewWrapper);
 }
        public HierarchicalWrapper_Folder GetOrCreateFolder(string txt, out bool created)
        {
            foreach (var item in SubFolder)
            {
                if (item.Header.ToLower() == txt.ToLower())
                {
                    created = false; return(item);
                }
            }
            var i = new HierarchicalWrapper_Folder(txt, _config, _path.SubDir(txt), false, false);

            SubFolder.Add(i);
            created = true;
            return(i);
        }
Exemplo n.º 3
0
        public void ApplyTo(IReadonlyAlephSettings settings, HierarchicalWrapper_Folder dst)
        {
            if (!dst.GetInternalPath().Equals(Path))
            {
                LoggerSingleton.Inst.Warn("HierarchyConfigCache", $"Path mismatch in ApplyTo: '{Path}' <> '{dst.GetInternalPath()}'");
                return;
            }

            if (settings.RememberHierarchyExpandedState)
            {
                dst.IsExpanded = Expanded;
            }
            else
            {
                dst.IsExpanded = true;
            }

            var counter = 1;

            foreach (var subthis in Children)
            {
                var subdst = dst.SubFolder.FirstOrDefault(p => p.Header == subthis.Name);
                if (subdst == null)
                {
                    continue;
                }

                if (!settings.SortHierarchyFoldersByName)
                {
                    subdst.CustomOrder = counter * 100;
                }
                subthis.ApplyTo(settings, subdst);

                counter++;
            }

            // (new) folders not in hierarchy cache
            foreach (var subdst in dst.SubFolder.Where(subdst => !Children.Any(subthis => subdst.Header == subthis.Name)).OrderBy(p => p.Header))
            {
                if (!settings.SortHierarchyFoldersByName)
                {
                    subdst.CustomOrder = counter * 100;
                }
                subdst.IsExpanded = true;
                counter++;
            }
        }
Exemplo n.º 4
0
        public void UpdateAndRequestSave(Guid account, HierarchicalWrapper_Folder folders, DirectoryPath selectedFolderPath, string selectedNote)
        {
            LoggerSingleton.Inst.Trace("HierarchyConfigCache", $"Request Save (full)");

            var dat = new HierarchyConfigData
            {
                SelectedFolder = selectedFolderPath,
                SelectedNote   = selectedNote,
                Entry          = folders.ToHCEntry()
            };

            lock (_masterLock)
            {
                _data[account] = dat;
            }
            invSave.Request();
        }
        public void CopyPermanentsTo(HierarchicalWrapper_Folder other)
        {
            foreach (var folder1 in SubFolder)
            {
                var folder2 = other.SubFolder.FirstOrDefault(sf => sf._path.EqualsIgnoreCase(folder1._path));
                if (folder2 == null && folder1.Permanent)
                {
                    folder2 = other.GetOrCreateFolder(folder1.Header, out _);

                    folder2.Permanent = true;
                }

                if (folder2 != null)
                {
                    folder1.CopyPermanentsTo(folder2);
                }
            }
        }
 public void Add(HierarchicalWrapper_Folder elem)
 {
     SubFolder.Add(elem);
 }
 public HierarchicalWrapper_UnsortedNotes(HierarchicalWrapper_Folder baseWrapper, IHierarchicalWrapperConfig cfg)
     : base("Unsorted notes", cfg, DP_UNSORTEDNOTES, false, false)
 {
     _baseWrapper = baseWrapper;
 }
 public HierarchicalWrapper_AllNotes(HierarchicalWrapper_Folder baseWrapper, IHierarchicalWrapperConfig cfg)
     : base("All notes", cfg, DP_ALLNOTES, false, false)
 {
     _baseWrapper = baseWrapper;
     IsSelected   = true;
 }
Exemplo n.º 9
0
 public void ApplyTo(IReadonlyAlephSettings settings, HierarchicalWrapper_Folder dst)
 {
     Entry?.ApplyTo(settings, dst);
 }