public IdeaNote GetPrevNoteInTree() { if (Parent != null) { int index = Parent.Ideas.IndexOf(this); if (index != 0) { return(Parent.Ideas[index - 1].GetLastChild()); } else { return(Parent); } } else { IdeaTreeSaveFile save = GetRootSaveFile(); if (save == null) { return(null); } int index = save.Ideas.IndexOf(this); if (index != 0) { return(save.Ideas[index - 1].GetLastChild()); } else { return(null); } } }
public static IdeaTreeSaveFile FromFile(string path) { IdeaTreeSaveFile saveFile = null; using (Stream file = File.OpenRead(path)) { using (var gzip = new GZipStream(file, CompressionMode.Decompress, true)) { saveFile = Serializer.Deserialize <IdeaTreeSaveFile>(gzip); } } return(saveFile); }
public IdeaNote GetNextNoteInTree(bool skipChildren = false) { if (Ideas.Count > 0 && !skipChildren) { return(Ideas[0]); } else if (Parent != null) { int index = Parent.Ideas.IndexOf(this); if (index != (Parent.Ideas.Count - 1)) { return(Parent.Ideas[index + 1]); } else { return(Parent.GetNextNoteInTree(true)); } } else { IdeaTreeSaveFile save = GetRootSaveFile(); if (save == null) { return(null); } int index = save.Ideas.IndexOf(this); if (index != (save.Ideas.Count - 1)) { return(save.Ideas[index + 1]); } else { return(null); } } }
public void NewFile(bool silent = false) { if (SaveFile?.ChangedSinceLastSave == true && !silent && !CheckClosing()) return; SaveFile = new IdeaTreeSaveFile(); currentSavePath = null; SetStartingTemplate(); NewTextNote(null, -1); SaveFile.ChangedSinceLastSave = false; SaveFile.ChangedSinceLastSaveExceptExpansion = false; }
/// <summary> /// If the specified file is an IdeaTree file, it is opened in a separate instance of the program. /// If it is any other type of file, it is added to the current file as a Note. /// </summary> /// <param name="path">The path of the file to open or add.</param> /// <returns> /// True if the file was opened successfully in this instance ONLY. /// False if a new process was started to open it, or if it could not be opened at all for any reason. /// </returns> public bool RelaunchOrAddFile(string path, IdeaNote parent, int index) { if (Path.GetExtension(path) == IdeaTreeSaveFile.IdeaTreeSaveFileExt) { Process.Start(Environment.GetCommandLineArgs()[0], path); return false; } else { if (SaveFile == null) SaveFile = new IdeaTreeSaveFile(); AddFile(path, false, parent, index); } return true; }
/// <summary> /// Opens the specified file. IdeaTree files are loaded; other filetypes are added as Notes. /// </summary> /// <param name="path">The path of the file to open or add.</param> /// <returns>True if the file was opened successfully.</returns> private bool OpenFile(string path) { if (Path.GetExtension(path) == IdeaTreeSaveFile.IdeaTreeSaveFileExt) { if (!CheckClosing()) return false; return LoadSaveFile(path); } else { if (SaveFile == null) SaveFile = new IdeaTreeSaveFile(); AddFile(path, true, null, -1); } return true; }
private void AddFolder(string path, bool replace, IdeaNote parent, int index) { if (replace) { if (!CheckClosing()) return; SaveFile = new IdeaTreeSaveFile(); } TextNote newNote = NewTextNote(parent, index); DirectoryInfo dInfo = new DirectoryInfo(path); newNote.ExplicitName = dInfo.Name; for (int i = 0; i < dInfo.GetFileSystemInfos().Count(); i++) { AddFile(dInfo.GetFileSystemInfos()[i].FullName, false, newNote, -1); } }
private void LoadSaveFile(IdeaTreeSaveFile saveFile, bool replace, IdeaNote parent, int index) { if (replace) { SaveFile = saveFile; if (!string.IsNullOrEmpty(saveFile.TemplatePath) && File.Exists(saveFile.TemplatePath)) LoadTemplate(saveFile.TemplatePath, true); if (SaveFile.Ideas.Count > 0) CurrentIdeaNote = SaveFile.Ideas[0]; SaveFile.ChangedSinceLastSave = false; SaveFile.ChangedSinceLastSaveExceptExpansion = false; } else if (parent == null) { IdeaNote original = CurrentIdeaNote; if (index == -1) SaveFile.Ideas = new ObservableCollection<IdeaNote>(SaveFile.Ideas.Concat(saveFile.Ideas)); else SaveFile.Ideas = new ObservableCollection<IdeaNote>(SaveFile.Ideas.Take(index).Concat(saveFile.Ideas).Concat(SaveFile.Ideas.Skip(index))); CurrentIdeaNote = original; } else { IdeaNote original = CurrentIdeaNote; if (index == -1) parent.Ideas = new ObservableCollection<IdeaNote>(parent.Ideas.Concat(saveFile.Ideas)); else parent.Ideas = new ObservableCollection<IdeaNote>(parent.Ideas.Take(index).Concat(saveFile.Ideas).Concat(parent.Ideas.Skip(index))); foreach (IdeaNote note in parent.Ideas) note.Parent = parent; CurrentIdeaNote = original; } }