public CoverageView(QWidget parent, String fileName) : base(parent) { SetRootIsDecorated(true); AddColumn("Classes"); AddColumn("Lines Hit"); AddColumn("Lines Missed"); AddColumn("Coverage"); sourceViews = new Hashtable(); // TODO: Why the cast ? SetColumnAlignment(1, (int)Qt.AlignmentFlags.AlignCenter); SetColumnAlignment(2, (int)Qt.AlignmentFlags.AlignCenter); SetColumnAlignment(3, (int)Qt.AlignmentFlags.AlignCenter); QObject.Connect(this, SIGNAL("doubleClicked(QListViewItem)"), this, SLOT("OnDoubleClick(QListViewItem)")); QObject.Connect(this,SIGNAL("expanded(QListViewItem)"), this,SLOT("OnExpanded(QListViewItem)")); // TODO: This is not supported by current Qt# try { QObject.Connect(this,SIGNAL("contextMenuRequested(QListViewItem,QPoint,int)"), this,SLOT("OnContextMenu(QListViewItem, QPoint, Int32)")); } catch (Exception) { } QPixmap namespaceOpenPixmap = new QPixmap(namespace_open_xpm); QPixmap namespaceClosedPixmap = new QPixmap(namespace_closed_xpm); QPixmap classPixmap = new QPixmap(class_xpm); model = new CoverageModel(); foreach (string filter in DEFAULT_FILTERS) { model.AddFilter(filter); } model.ReadFromFile(fileName); QListViewItem rootItem = new TreeItem(this,"PROJECT",model); rootItem.SetOpen(true); Hashtable classes2 = model.Classes; namespaces = new Hashtable(); foreach (string name in classes2.Keys) { ClassCoverageItem klass = (ClassCoverageItem)classes2 [name]; if (klass.filtered) { continue; } string namespace2 = klass.name_space; NamespaceItem nsItem = (NamespaceItem)namespaces [namespace2]; if (nsItem == null) { // Create namespaces String nsPrefix = ""; QListViewItem parentItem = rootItem; foreach (String nsPart in namespace2.Split('.')) { if (nsPrefix == "") { nsPrefix = nsPart; } else { nsPrefix = nsPrefix + "." + nsPart; } NamespaceCoverageItem nsModel = (NamespaceCoverageItem)model.Namespaces [nsPrefix]; if (nsModel.filtered) { break; } nsItem = (NamespaceItem)namespaces [nsPrefix]; if (nsItem == null) { nsItem = new NamespaceItem(parentItem,nsPrefix, nsModel); nsItem.SetOpen(true); nsItem.SetPixmap(0,namespaceOpenPixmap); namespaces [nsPrefix] = nsItem; } parentItem = nsItem; } } if (nsItem != null) { ClassItem classItem = new ClassItem(nsItem,klass.name,klass); classItem.SetPixmap(0,classPixmap); if (klass.ChildCount > 0) { classItem.SetExpandable(true); } } } }
public CoverageView (string fileName, ProgressBar status) { TreeStore store = new TreeStore (typeof (string), typeof (string), typeof (string), typeof (string), typeof (object)); tree = new TreeView (store); CellRendererText renderer = new CellRendererText (); // LAME: Why is this property a float instead of a double ? renderer.Xalign = 0.5f; tree.AppendColumn ("Classes", new CellRendererText (), "text", 0); tree.AppendColumn ("Lines Hit", renderer, "text", 1); tree.AppendColumn ("Lines Missed", renderer, "text", 2); tree.AppendColumn ("Coverage", renderer, "text", 3); tree.GetColumn (0).Resizable = true; tree.GetColumn (1).Alignment = 0.0f; tree.GetColumn (1).Resizable = true; tree.GetColumn (2).Alignment = 0.0f; tree.GetColumn (2).Resizable = true; tree.GetColumn (3).Alignment = 0.0f; tree.GetColumn (3).Resizable = true; tree.HeadersVisible = true; model = new CoverageModel (); foreach (string filter in DEFAULT_FILTERS) { model.AddFilter (filter); } this.status = status; model.Progress += Progress; model.ReadFromFile (fileName); TreeItem root = new TreeItem (store, null, model, "PROJECT"); Hashtable classes2 = model.Classes; namespaces = new Hashtable (); string[] sorted_names = new string [classes2.Count]; classes2.Keys.CopyTo (sorted_names, 0); Array.Sort (sorted_names); Progress ("Building tree", 0.95); foreach (string name in sorted_names) { ClassCoverageItem klass = (ClassCoverageItem)classes2 [name]; if (klass.filtered) continue; string namespace2 = klass.name_space; TreeItem nsItem = (TreeItem)namespaces [namespace2]; if (nsItem == null) { nsItem = new TreeItem (store, root, (CoverageItem)model.Namespaces [namespace2], namespace2); // nsItem.SetPixmap (0, namespaceOpenPixmap); namespaces [namespace2] = nsItem; } if (nsItem.model.filtered) continue; ClassItem classItem = new ClassItem (store, nsItem, klass, klass.name); // We should create the method nodes only when the class item // is opened foreach (MethodCoverageItem method in klass.Methods) { if (method.filtered) continue; string title = method.Name; if (title.Length > 64) title = title.Substring (0, 63) + "...)"; new MethodItem (store, classItem, classItem, method, title); } } tree.ExpandRow (store.GetPath (root.Iter), false); // it becomes very hard to navigate if everything is expanded //foreach (string ns in namespaces.Keys) // tree.ExpandRow (store.GetPath (((TreeItem)namespaces [ns]).Iter), false); tree.ButtonPressEvent += new ButtonPressEventHandler (OnButtonPress); tree.Selection.Mode = SelectionMode.Single; source_views = new Hashtable (); window_maps = new Hashtable (); Progress ("Done", 1.0); // LAME: Why doesn't widgets visible by default ??? tree.Show (); }
public CoverageView(string fileName, ProgressBar status) { store = new TreeStore (typeof(string), typeof(string), typeof(string), typeof(string), typeof(object)); tree = new TreeView (store); CellRendererText renderer = new CellRendererText (); CellRendererText coverageRenderer = new CellRendererText (); // LAME: Why is this property a float instead of a double ? renderer.Xalign = 0.5f; tree.AppendColumn ("Classes", new CellRendererText (), "text", 0); tree.AppendColumn ("Lines Hit", renderer, "text", 1); tree.AppendColumn ("Lines Missed", renderer, "text", 2); tree.AppendColumn ("Coverage", coverageRenderer, "text", 3); tree.GetColumn (0).Resizable = true; tree.GetColumn (1).Alignment = 0.0f; tree.GetColumn (1).Resizable = true; tree.GetColumn (2).Alignment = 0.0f; tree.GetColumn (2).Resizable = true; tree.GetColumn (3).Alignment = 0.0f; tree.GetColumn (3).Resizable = true; tree.GetColumn (3).SetCellDataFunc (coverageRenderer, new TreeCellDataFunc (RenderCoverage)); tree.HeadersVisible = true; model = new CoverageModel (); foreach (string filter in DEFAULT_FILTERS) { model.AddFilter (filter); } this.status = status; model.Progress += Progress; model.ReadFromFile (fileName); TreeItem root = new TreeItem (store, null, model, "PROJECT"); Hashtable classes2 = model.Classes; namespaces = new Hashtable (); string[] sorted_names = new string[classes2.Count]; classes2.Keys.CopyTo (sorted_names, 0); Array.Sort (sorted_names); Progress ("Building tree", 0.95); foreach (string name in sorted_names) { ClassCoverageItem klass = (ClassCoverageItem)classes2[name]; if (klass.filtered) continue; string namespace2 = klass.name_space; TreeItem nsItem = (TreeItem)namespaces[namespace2]; if (nsItem == null) { nsItem = new TreeItem (store, root, (CoverageItem)model.Namespaces[namespace2], namespace2); // nsItem.SetPixmap (0, namespaceOpenPixmap); namespaces[namespace2] = nsItem; } if (nsItem.model.filtered) continue; ClassItem classItem = new ClassItem (store, nsItem, klass, klass.name); if (klass.ChildCount != 0) { TreeIter treeIter = store.AppendNode (classItem.iter); store.SetValues (treeIter, "<loading>"); } } tree.ExpandRow (store.GetPath (root.Iter), false); // it becomes very hard to navigate if everything is expanded //foreach (string ns in namespaces.Keys) // tree.ExpandRow (store.GetPath (((TreeItem)namespaces [ns]).Iter), false); tree.RowExpanded += new RowExpandedHandler (OnRowExpanded); tree.RowCollapsed += new RowCollapsedHandler (OnRowCollapsed); tree.ButtonPressEvent += new ButtonPressEventHandler (OnButtonPress); tree.Selection.Mode = SelectionMode.Single; Progress ("Done", 1.0); // LAME: Why doesn't widgets visible by default ??? tree.Show (); }
public CoverageView(string fileName, ProgressBar status) { store = new TreeStore(typeof(string), typeof(string), typeof(string), typeof(string), typeof(object)); tree = new TreeView(store); CellRendererText renderer = new CellRendererText(); CellRendererText coverageRenderer = new CellRendererText(); // LAME: Why is this property a float instead of a double ? renderer.Xalign = 0.5f; tree.AppendColumn("Classes", new CellRendererText(), "text", 0); tree.AppendColumn("Lines Hit", renderer, "text", 1); tree.AppendColumn("Lines Missed", renderer, "text", 2); tree.AppendColumn("Coverage", coverageRenderer, "text", 3); tree.GetColumn(0).Resizable = true; tree.GetColumn(1).Alignment = 0.0f; tree.GetColumn(1).Resizable = true; tree.GetColumn(2).Alignment = 0.0f; tree.GetColumn(2).Resizable = true; tree.GetColumn(3).Alignment = 0.0f; tree.GetColumn(3).Resizable = true; tree.GetColumn(3).SetCellDataFunc(coverageRenderer, new TreeCellDataFunc(RenderCoverage)); tree.HeadersVisible = true; model = new CoverageModel(); foreach (string filter in DEFAULT_FILTERS) { model.AddFilter(filter); } this.status = status; model.Progress += Progress; model.ReadFromFile(fileName); TreeItem root = new TreeItem(store, null, model, "PROJECT"); Hashtable classes2 = model.Classes; namespaces = new Hashtable(); string[] sorted_names = new string [classes2.Count]; classes2.Keys.CopyTo(sorted_names, 0); Array.Sort(sorted_names); Progress("Building tree", 0.95); foreach (string name in sorted_names) { ClassCoverageItem klass = (ClassCoverageItem)classes2 [name]; if (klass.filtered) { continue; } string namespace2 = klass.name_space; TreeItem nsItem = (TreeItem)namespaces [namespace2]; if (nsItem == null) { nsItem = new TreeItem(store, root, (CoverageItem)model.Namespaces [namespace2], namespace2); // nsItem.SetPixmap (0, namespaceOpenPixmap); namespaces [namespace2] = nsItem; } if (nsItem.model.filtered) { continue; } ClassItem classItem = new ClassItem(store, nsItem, klass, klass.name); if (klass.ChildCount != 0) { TreeIter treeIter = store.AppendNode(classItem.iter); store.SetValues(treeIter, "<loading>"); } } tree.ExpandRow(store.GetPath(root.Iter), false); // it becomes very hard to navigate if everything is expanded //foreach (string ns in namespaces.Keys) // tree.ExpandRow (store.GetPath (((TreeItem)namespaces [ns]).Iter), false); tree.RowExpanded += new RowExpandedHandler(OnRowExpanded); tree.RowCollapsed += new RowCollapsedHandler(OnRowCollapsed); tree.ButtonPressEvent += new ButtonPressEventHandler(OnButtonPress); tree.Selection.Mode = SelectionMode.Single; source_views = new Hashtable(); window_maps = new Hashtable(); Progress("Done", 1.0); // LAME: Why doesn't widgets visible by default ??? tree.Show(); }
public CoverageView(QWidget parent, String fileName) : base(parent) { SetRootIsDecorated (true); AddColumn ("Classes"); AddColumn ("Lines Hit"); AddColumn ("Lines Missed"); AddColumn ("Coverage"); sourceViews = new Hashtable (); // TODO: Why the cast ? SetColumnAlignment (1, (int)Qt.AlignmentFlags.AlignCenter); SetColumnAlignment (2, (int)Qt.AlignmentFlags.AlignCenter); SetColumnAlignment (3, (int)Qt.AlignmentFlags.AlignCenter); QObject.Connect (this, SIGNAL ("doubleClicked(QListViewItem)"), this, SLOT ("OnDoubleClick(QListViewItem)")); QObject.Connect (this, SIGNAL ("expanded(QListViewItem)"), this, SLOT ("OnExpanded(QListViewItem)")); // TODO: This is not supported by current Qt# try { QObject.Connect (this, SIGNAL ("contextMenuRequested(QListViewItem,QPoint,int)"), this, SLOT ("OnContextMenu(QListViewItem, QPoint, Int32)")); } catch (Exception) { } QPixmap namespaceOpenPixmap = new QPixmap (namespace_open_xpm); QPixmap namespaceClosedPixmap = new QPixmap (namespace_closed_xpm); QPixmap classPixmap = new QPixmap (class_xpm); model = new CoverageModel (); foreach (string filter in DEFAULT_FILTERS) { model.AddFilter (filter); } model.ReadFromFile (fileName); QListViewItem rootItem = new TreeItem (this, "PROJECT", model); rootItem.SetOpen (true); Hashtable classes2 = model.Classes; namespaces = new Hashtable (); foreach (string name in classes2.Keys) { ClassCoverageItem klass = (ClassCoverageItem)classes2 [name]; if (klass.filtered) continue; string namespace2 = klass.name_space; NamespaceItem nsItem = (NamespaceItem)namespaces [namespace2]; if (nsItem == null) { // Create namespaces String nsPrefix = ""; QListViewItem parentItem = rootItem; foreach (String nsPart in namespace2.Split ('.')) { if (nsPrefix == "") nsPrefix = nsPart; else nsPrefix = nsPrefix + "." + nsPart; NamespaceCoverageItem nsModel = (NamespaceCoverageItem)model.Namespaces [nsPrefix]; if (nsModel.filtered) break; nsItem = (NamespaceItem)namespaces [nsPrefix]; if (nsItem == null) { nsItem = new NamespaceItem (parentItem, nsPrefix, nsModel); nsItem.SetOpen (true); nsItem.SetPixmap (0, namespaceOpenPixmap); namespaces [nsPrefix] = nsItem; } parentItem = nsItem; } } if (nsItem != null) { ClassItem classItem = new ClassItem (nsItem, klass.name, klass); classItem.SetPixmap (0, classPixmap); if (klass.ChildCount > 0) classItem.SetExpandable (true); } } }