Example #1
0
        public static CloserTabLabel InsertTabPage (Notebook book, Widget page, string label)
        {
            var tab = new CloserTabLabel () { Text = label };
            tab.Closer.Pressed += (sender, e) => {
                MainWindow.OnCloseSourceFile (tab.CloseKeyData);
                book.Remove (page); };
            book.InsertPage (page, tab, book.NPages);
            tab.ShowAll ();

            return tab;
        }
        public static CloserTabLabel InsertTabPage(Notebook book, Widget page, string label)
        {
            var tab = new CloserTabLabel()
            {
                Text = label
            };

            tab.Closer.Pressed += (sender, e) => {
                MainWindow.OnCloseSourceFile(tab.CloseKeyData);
                book.Remove(page);
            };
            book.InsertPage(page, tab, book.NPages);
            tab.ShowAll();

            return(tab);
        }
Example #3
0
        public void OpenSourceFile(List <CodeRecord> recs)
        {
            if (recs.Count == 0)
            {
                return;
            }

            var filename = recs [0].SourceFile;
            var origfile = filename;
            var fbname   = System.IO.Path.GetFileName(filename);

            if (openFiles.Contains(filename))
            {
                return;
            }

            if (fsmap.SourceMap.ContainsKey(filename))
            {
                filename = fsmap.SourceMap[filename];
            }

            while (!File.Exists(filename))
            {
                var fc = new FileChooserDialog("Locate source file " + origfile,
                                               this, FileChooserAction.SelectFolder,
                                               "Cancel", ResponseType.Cancel,
                                               "Select", ResponseType.Apply);
                fc.Filter = new Gtk.FileFilter()
                {
                    Name = fbname
                };
                fc.Filter.AddPattern(fbname);

                fc.Response += (o, args) => {
                    Console.Error.WriteLine(fc.Filename);
                    fc.Hide();
                };

                fc.Run();

                if (fc.Filename != null)
                {
                    filename = System.IO.Path.Combine(fc.Filename, fbname);
                }
                else
                {
                    return;
                }
            }
            fsmap.AddMapping(origfile, filename);


            openFiles.Add(origfile);

            SourceLanguage language    = sourceManager.GetLanguage("c-sharp");
            var            buf         = new SourceBuffer(language);
            TextTag        visitedOnce = new TextTag("visited_once")
            {
                Background = VisitedOnceBG
            };
            TextTag visitedMore = new TextTag("visited_more")
            {
                Background = VisitedMoreBG
            };

            buf.TagTable.Add(visitedOnce);
            buf.TagTable.Add(visitedMore);
            buf.HighlightSyntax = true;
            buf.Text            = System.IO.File.ReadAllText(filename);

            var page = new SourcePage();

            var sv = new SourceView(buf);

            // sv.ScrollToIter (buf.GetIterAtLineOffset (22, 0), 1.1, false, 0.0, 0.0);
            sv.HighlightCurrentLine = true;
            sv.Editable             = false;
            sv.ShowLineNumbers      = true;

            var fp = System.IO.Path.GetFullPath(filename);

            page.Window.Add(sv);
            page.SetHeadingText(fp);
            page.SetSubHeadingText("");



            var fname = System.IO.Path.GetFileName(filename);

            var tab = CloserTabLabel.InsertTabPage(notebook1, page, fname);

            tab.CloseKeyData = filename;



            page.ShowAll();

            int total_lines   = 0;
            int covered_lines = 0;

            buf.Text = File.ReadAllText(filename);
            foreach (var rec in recs)
            {
                RenderCoverage(buf, rec);
                total_lines   += rec.GetLines().Length;
                covered_lines += rec.GetHits();
            }

            double cov = (1.0 * covered_lines) / total_lines;

            page.SetCoverage(cov);



            notebook1.Page = notebook1.NPages - 1;

            sourceviews [filename] = sv;
        }