diff options
Diffstat (limited to 'scripts/generate-class.pl')
-rwxr-xr-x | scripts/generate-class.pl | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/scripts/generate-class.pl b/scripts/generate-class.pl index 51b81627..532e1fb1 100755 --- a/scripts/generate-class.pl +++ b/scripts/generate-class.pl @@ -61,6 +61,7 @@ binmode STDOUT, ':utf8'; foreach my $class ($classset->get_nodelist) { my $className = $class->findvalue('@name'); + my $isAbstract = $class->findvalue('@isAbstract'); open STDOUT, '>', $options{o}."/".$namespace."/q".lc($namespace).lc($className).".h"; if ($tt->process('qclass.h', { xmi => $options{i}, @@ -74,18 +75,21 @@ foreach my $class ($classset->get_nodelist) { namespace => $namespace, className => $className }) ne 1) { print $tt->error(); } - open STDOUT, '>', $options{o}."/".$namespace."/internal/".lc($namespace).lc($className)."_p.h"; - if ($tt->process('class_p.h', { - xmi => $options{i}, - namespace => $namespace, - className => $className - }) ne 1) { print $tt->error(); } - close STDOUT; - open STDOUT, '>', $options{o}."/".$namespace."/internal/".lc($namespace).lc($className).".cpp"; - if ($tt->process('class.cpp', { - xmi => $options{i}, - namespace => $namespace, - className => $className - }) ne 1) { print $tt->error(); } close STDOUT; + if ($isAbstract ne 'true') { + open STDOUT, '>', $options{o}."/".$namespace."/qobjects/q".lc($namespace).lc($className)."object_p.h"; + if ($tt->process('qobjectclass_p.h', { + xmi => $options{i}, + namespace => $namespace, + className => $className + }) ne 1) { print $tt->error(); } + close STDOUT; + open STDOUT, '>', $options{o}."/".$namespace."/qobjects/q".lc($namespace).lc($className)."object.cpp"; + if ($tt->process('qobjectclass.cpp', { + xmi => $options{i}, + namespace => $namespace, + className => $className + }) ne 1) { print $tt->error(); } + close STDOUT; + } } |