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); }
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++; } }
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; }
public void ApplyTo(IReadonlyAlephSettings settings, HierarchicalWrapper_Folder dst) { Entry?.ApplyTo(settings, dst); }