[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdebindings/kalyptus
From: Richard Dale <Richard_Dale () tipitina ! demon ! co ! uk>
Date: 2006-03-09 19:54:37
Message-ID: 1141934077.651174.8354.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 517047 by rdale:
* Added patch from Bernhard Rosenkraenzer to get it to work at all
(with Qt build with -fvisibility=hidden support, and CJK codecs built as
plugins)
* Skip the QThread and related classes when generating the Smoke library as
they don't really work with non-C++ languages without native threads.
* Skip '#ifdef Q_MOC_RUN .. #endif' code
* Applied patch from Thomas Moenicke (thanks Thomas!) to parse Q_PROPERTY macros,
and add the info to the kalyptus AST.
CCMAIL: bero@arklinux.org
M +42 -2 kalyptus
M +11 -0 kalyptusCxxToSmoke.pm
--- branches/KDE/3.5/kdebindings/kalyptus/kalyptus #517046:517047
@@ -131,6 +131,7 @@
_STYLE_WINDOWS => '',
QT_STATIC_CONST => 'static const',
Q_EXPORT => '',
+ Q_EXPORT_CODECS_BIG5 => '',
Q_REFCOUNT => '',
QM_EXPORT_CANVAS => '',
QM_EXPORT_DNS => '',
@@ -496,9 +497,11 @@
$p =~ s/QT_STATIC_CONST/static const/;
$p =~ s/QT_WEAK_SYMBOL//;
$p =~ s/QT_MOC_COMPAT//;
+ $p =~ s/Q_EXPORT_CODECS_BIG5//;
$p =~ s/QT_COMPAT / /;
$p =~ s/Q_DISABLE_COPY\((\w+)\)/$1(const $1 &);\n$1 &operator=(const $1 &);/;
$p =~ s/QWIDGETSIZE_MAX/32767/; # Qt/E uses this #define as an enum value - yuck!
+ $p =~ s/Q_SIGNALS/signals/;
$p =~ s/ASYNC/void/;
$p =~ s/[A-Z_]*_EXPORT_DEPRECATED//;
$p =~ s/[A-Z_]*_EXPORT\s/ /;
@@ -535,7 +538,6 @@
next if ( $p =~ /^\s*Q_ENUMS/ # ignore Q_ENUMS
|| $p =~ /^\s*Q_FLAGS/ # and Q_FLAGS
|| $p =~ /^\s*Q_DECLARE_FLAGS/ # and Q_DECLARE_FLAGS
- || $p =~ /^\s*Q_PROPERTY/ # and Q_PROPERTY
|| $p =~ /^\s*QDOC_PROPERTY/
|| $p =~ /^\s*Q_GADGET/
|| $p =~ /^\s*Q_OVERRIDE/ # and Q_OVERRIDE
@@ -582,7 +584,6 @@
($p =~ m/^#\s*if\s+defined\(Q_INCOMPATIBLE_3_0_ADDONS/ and $qt_embedded) or
$p =~ m/^#\s*ifndef\s+QT_NO_STL/ or
$p =~ m/^#\s*if\s+defined\s*\(Q_OS_/ or
- $p =~ m/^#\s*ifdef\s*Q_OS_/ or
$p =~ m/^#\s*if\s+defined\(Q_CC_/ or
$p =~ m/^#\s*if\s+defined\(QT_THREAD_SUPPORT/ or
$p =~ m/^#\s*else/ or
@@ -592,6 +593,7 @@
$p =~ m/^#\s*if\s+defined\s*\(?QT_COMPAT/ or
$p =~ m/^#\s*ifdef\s+CONTAINER_CUSTOM_WIDGETS/ or
$p =~ m/^#\s*ifdef\s+QT3_SUPPORT/ or
+ $p =~ m/^#\s*ifdef\s+Q_MOC_RUN/ or
$p =~ m/^#\s*if\s+defined\s*\(QT3_SUPPORT/ or
$p =~ m/^#\s*if\s+defined\s*\(qdoc/ or
$p =~ m/^#\s*ifndef\s+QT_NO_MEMBER_TEMPLATES/ or
@@ -723,6 +725,9 @@
$declNodeType = "c";
return $l;
}
+ elsif ( $l =~ /Q_PROPERTY/ ) { # property
+ return $l;
+ }
do {
$decl .= $l;
@@ -802,7 +807,12 @@
elsif ( $declNodeType eq "k" ) {
$cNode->AddProp( "DcopExported", 1 );
}
+ # properties
+ elsif ( $decl =~ s/Q_PROPERTY// ) {
+ print "Property: <$1>\n" if $debug;
+ $newNode = newProperty( $decl );
+ }
# Typedef struct/class
elsif ( $decl =~ /^\s*typedef
\s+(struct|union|class|enum)
@@ -1754,8 +1764,38 @@
return $node;
}
+=head2 newProperty
+ Parameters: property
+ Handles a property
+
+=cut
+
+sub newProperty
+{
+ my ( $property ) = @_;
+
+ $property =~ s/^\s+|\s+$//g;
+ my @items = split(/ /,$property);
+
+ do {
+ my ( $node ) = Ast::New( $items[1] );
+
+ $node->AddProp( "NodeType", "property" );
+ $node->AddProp( "type", $items[0] );
+ $node->AddProp( "READ", $items[3] );
+ $node->AddProp( "WRITE", $items[5] );
+ $node->AddProp( "NOTIFY", $items[7] );
+
+ $cNode->{KidAccess} = "public";
+ kdocAstUtil::attachChild( $cNode, $node );
+ return $node;
+
+ } if defined $items[1];
+}
+
+
=head2 show_usage
Display usage information and quit.
--- branches/KDE/3.5/kdebindings/kalyptus/kalyptusCxxToSmoke.pm #517046:517047
@@ -442,6 +442,15 @@
$className eq 'QVariant::PrivateShared' || # Qt4
$className eq 'QVectorData' || # Qt4
$className eq 'QWidgetData' || # Qt4
+ $className eq 'QThread' || # Qt4
+ $className eq 'QThreadStorage' || # Qt4
+ $className eq 'QMutex' || # Qt4
+ $className eq 'QMutexLocker' || # Qt4
+ $className eq 'QSemaphore' || # Qt4
+ $className eq 'QWaitCondition' || # Qt4
+ $className eq 'QReadWriteLock' || # Qt4
+ $className eq 'QReadLocker' || # Qt4
+ $className eq 'QWriteLocker' ||
$className =~ /.*Private$/ || # Ignore any classes which aren't for public \
consumption $className =~ /.*Impl$/ ||
$className =~ /.*Internal.*/ ||
@@ -648,6 +657,8 @@
|| ($classNode->{astNodeName} eq 'QGlobalSpace' and $name eq 'operator<<' and \
$m->{ParamList}[0]->{ArgType} =~ /QDebug/)
|| ($classNode->{astNodeName} eq 'QGlobalSpace' and $#{$m->{ParamList}} > 0 and \
$name =~ /operator/ and $m->{ParamList}[1]->{ArgType} =~ \
/QVariant::Type/)
|| ($#{$m->{ParamList}} > 0 and $m->{ParamList}[0]->{ArgType} =~ /Private/)
+ || ($classNode->{astNodeName} eq 'QScrollArea' and $name eq 'alignment')
+ || ($classNode->{astNodeName} eq 'QScrollArea' and $name eq 'setAlignment')
|| ($m->{ReturnType} =~ /QT3_SUPPORT/) ) )
|| $m->{Deprecated} ) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic