/// <summary> /// Saves a topic in the tree and then saves the project to /// disk. /// </summary> /// <param name="topic"></param> /// <param name="project"></param> /// <param name="async"></param> /// <returns>false if data wasn't written (could be because there's nothing that's changed)</returns> public bool SaveProjectFileForTopic(DocTopic topic, DocProject project = null, bool async = false) { if (topic == null) { return(false); } if (!topic.TopicState.IsDirty) { return(false); } if (project == null) { project = kavaUi.AddinModel.ActiveProject; } if (async) { project.SaveProjectAsync(); topic.TopicState.IsDirty = false; return(true); } bool result = project.SaveProject(); if (result) { topic.TopicState.IsDirty = false; } return(result); }
public bool SaveProjectFileForTopic(DocTopic topic, DocProject project = null) { if (topic == null) { return(false); } if (!topic.TopicState.IsDirty) { return(false); } if (!string.IsNullOrEmpty(topic.TopicState.OldLink) && topic.TopicState.OldLink != topic.Link) { if (MessageBox.Show( $@"Link has changed from {topic.TopicState.OldLink} to { topic.Link }.\r\n\rnDo you want to fix up the link and file?", "Topic Link Changed", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { var oldFile = topic.GetTopicFileName(topic.TopicState.OldLink); topic.SaveTopicFile(); // save new file File.Delete(oldFile); } } if (project == null) { project = kavaUi.AddinModel.ActiveProject; } project.SaveProjectAsync(); return(true); }