public void SaveFile(MDFile md, bool saveAs = false) { // check exists // open file // write all lines // subscribe to file changes? string path = md.file; if (saveAs || path == null) { using (var sfd = new SaveFileDialog()) { sfd.InitialDirectory = path ?? Environment.CurrentDirectory; sfd.Filter = "Markdown *.md|*.md|All Files|*.*"; var res = sfd.ShowDialog(); if (res == DialogResult.OK) { path = sfd.FileName; } else { return; } } } md.Save(); // reload the file, enabling the watcher LoadFile(path, md); }
public void AddTab(string name = "new") { var md = new MDFile(OnFileChange, OnFileEdit, OnFileSave, OnFileLoad); md.name = name; files.Add(md); AddTab(md); }
public void AddTab(MDFile md) { files.Add(md); TabPage tp = new TabPage(md.name); tp.Tag = md; tabsPages.Controls.Add(tp); tabsPages.SelectTab(tabsPages.TabCount - 1); }
public void DisplayFile(MDFile file) { this.Invoke((MethodInvoker) delegate { tabsPages.SelectedTab = tabsPages.Controls.Cast <TabPage>().Where(t => file == t.Tag as MDFile).FirstOrDefault(); textBox_raw.TextChanged -= textBox_raw_TextChanged; textBox_raw.Lines = file.Lines; textBox_raw.TextChanged += textBox_raw_TextChanged; RenderMD(file.Lines); }); }
public void ChangeTab(TabPage tab) { // get MDFile from tag // load into lines current = tab.Tag as MDFile; if (current != null) { DisplayFile(current); } }
private void MarkdownWikier_Load(object sender, EventArgs e) { current = new MDFile(OnFileChange, OnFileEdit, OnFileSave, OnFileLoad); files.Add(current); tabPage1.Tag = current; DisplayFile(current); if (openFiles != null) { foreach (var f in openFiles) { LoadFile(f); } } if (!openFiles.Any()) { LoadFile("test.md"); } }
public void LoadFile(string file, MDFile md = null) { // read file // create tab // subscribe to file changes? if (md == null) { if (current != null && !current.Changed && current.file == null) { md = current; } else { md = new MDFile(OnFileChange, OnFileEdit, OnFileSave, OnFileLoad); } } var emd = files.Where(f => f.file == file).FirstOrDefault(); if (emd != null) { md = emd; } md.Load(file); var tab = tabsPages.Controls.Cast <TabPage>().Where(t => t.Tag as MDFile == md).FirstOrDefault(); if (tab == null) { AddTab(md); } else { tab.Text = md.name; } DisplayFile(md); }