X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=Introspect%2FClass.js;h=9a6ee94b6c97de4ab0915b30c63407245c53fd45;hp=dba5f90f645171486316afb389e3554ee1fd704c;hb=HEAD;hpb=134619d3049edce9b27810483e8011e5dfb783e0 diff --git a/Introspect/Class.js b/Introspect/Class.js index dba5f90..9a6ee94 100644 --- a/Introspect/Class.js +++ b/Introspect/Class.js @@ -25,6 +25,7 @@ Base = imports.Base.Base; Class = XObject.define( function(ns, name) { Base.call(this, ns, name); + //print("Class ctr - parent called"); this.loadExtends(); this.loadImplements(); //console.log("CREATED(Class) " + this.alias); @@ -39,13 +40,13 @@ Class = XObject.define( var pi = GI.object_info_get_parent(bi); this.extendsClasses = []; - if (!pi) { + if (!pi || (pi.get_namespace() == this.ns && pi.get_name() == this.name )) { return; - } + } this.parent = NameSpace.factory( 'Class', - GI.base_info_get_namespace(pi), - GI.base_info_get_name(pi) + pi.get_namespace(), + pi.get_name() ); this.extendsClasses = [ this.parent ]; @@ -55,9 +56,21 @@ Class = XObject.define( this.extendsClasses.push(p); },this); + if (this.parent) { + this.parent.addChildClass(this.alias); + } }, + + addChildClass : function (n) { + this.childClasses.push(n); + if (this.parent) { + this.parent.addChildClass(n); + } + }, + + loadImplements : function() { var bb = this.getBI(); @@ -71,7 +84,7 @@ Class = XObject.define( var iface = NameSpace.factory( 'Interface', - GI.base_info_get_namespace(prop) , GI.base_info_get_name(prop) + prop.get_namespace() , prop.get_name() );