Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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;
                    }
            }
        }
Beispiel #4
0
        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();
        }