[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