void lv_OnCloseRequested(LogView sender, string reason) { if (InvokeRequired) { Invoke(new CloseRequestDelegate(lv_OnCloseRequested), new object[] { sender, reason }); return; } if (reason != "") { MessageBox.Show(reason); } TabPage page = null; foreach (TabPage p in tcFileViews.TabPages) { foreach (Control c in p.Controls) { if (c == sender) { page = p; break; } } if (page != null) { break; } } if (page == null) { return; } tcFileViews.SelectedTab.Controls.Clear(); tcFileViews.TabPages.Remove(page); GC.Collect(); }
void lv_OnCloseRequested(LogView sender, string reason) { if (InvokeRequired) { Invoke(new CloseRequestDelegate(lv_OnCloseRequested), new object[] { sender, reason }); return; } if (reason != "") MessageBox.Show(reason); TabPage page = null; foreach (TabPage p in tcFileViews.TabPages) { foreach (Control c in p.Controls) if (c == sender) { page = p; break; } if (page != null) break; } if (page == null) return; tcFileViews.SelectedTab.Controls.Clear(); tcFileViews.TabPages.Remove(page); GC.Collect(); }
void lv_OnChangeDetected(LogView sender) { if (InvokeRequired) { Invoke(new ChangeDetected(lv_OnChangeDetected), new object[] { sender }); return; } foreach (TabPage t in tcFileViews.TabPages) { if (t == tcFileViews.SelectedTab) continue; foreach (Control c in t.Controls) if (c == sender) { t.Tag = "changed"; tcFileViews.Invalidate(); return; } } }
private void OpenFile(string filename) { Program.Log("Opening file: " + filename); string fn = filename.ToLower(); bool is_json = fn.EndsWith(".trace") || fn.EndsWith(".trace.gz"); try { foreach (TabPage t in tcFileViews.TabPages) { foreach (Control c in t.Controls) if (c is LogView && (c as LogView).ViewsFile(filename)) { tcFileViews.SelectedTab = t; return; } } LogView lv = new LogView(); lv.OnCloseRequested += new CloseRequestDelegate(lv_OnCloseRequested); lv.OnChangeDetected += new ChangeDetected(lv_OnChangeDetected); TabPage page = new TabPage(" " + Path.GetFileName(filename) + " "); page.Controls.Add(lv); page.Controls.Add(lv.Progress); tcFileViews.TabPages.Add(page); if (!lv.SetFile(filename, is_json)) { MessageBox.Show("Unable to open file '" + filename + "'"); tcFileViews.TabPages.Remove(page); } else { page.ToolTipText = filename; tcFileViews.SelectedTab = page; Program.AddRecentFile(filename); } } catch(Exception ex) { Program.Log(ex); } InvalidateRecentItems(); }