diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 1a4836e1cf..4ea7d5607a 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,19 @@ The license applies to all entries newer than 2009-04-28. */ +2010-09-30 01:34 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbqt/qtgui/g/TQFormLayout.prg + * contrib/hbqt/qtgui/g/TQGraphicsItem.prg + * contrib/hbqt/qtgui/g/TQPainter.prg + * contrib/hbqt/qtnetwork/g/TQHttp.prg + ! Re-generated. + + * contrib/hbqt/utils/hbqtgen.prg + ! Tweaked to generate proper SWITCH statements if multi methods + contain more than one Q*Class objects. Only 4 classes are + reported to have this combination. So it will be unlikely + that any one will have three objects to compare with. + 2010-09-30 10:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/compiler/hbmain.c + added support to compile code not encapsulated in function using diff --git a/harbour/contrib/hbqt/qtgui/g/TQFormLayout.prg b/harbour/contrib/hbqt/qtgui/g/TQFormLayout.prg index 763d73d1d8..facc9e4497 100644 --- a/harbour/contrib/hbqt/qtgui/g/TQFormLayout.prg +++ b/harbour/contrib/hbqt/qtgui/g/TQFormLayout.prg @@ -190,17 +190,17 @@ METHOD QFormLayout:insertRow( ... ) CASE 3 DO CASE CASE hb_isNumeric( hb_pvalue( 1 ) ) .AND. hb_isChar( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 2 ) ) - CASE "QSTRING" + SWITCH __objGetClsName( hb_pvalue( 2 ) ) + __objGetClsName( hb_pvalue( 3 ) ) + CASE "QSTRINGQLAYOUT" RETURN Qt_QFormLayout_insertRow_4( ::pPtr, ... ) - CASE "QSTRING" + CASE "QSTRINGQWIDGET" RETURN Qt_QFormLayout_insertRow_3( ::pPtr, ... ) ENDSWITCH CASE hb_isNumeric( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 2 ) ) - CASE "QWIDGET" + SWITCH __objGetClsName( hb_pvalue( 2 ) ) + __objGetClsName( hb_pvalue( 3 ) ) + CASE "QWIDGETQLAYOUT" RETURN Qt_QFormLayout_insertRow_1( ::pPtr, ... ) - CASE "QWIDGET" + CASE "QWIDGETQWIDGET" RETURN Qt_QFormLayout_insertRow( ::pPtr, ... ) ENDSWITCH ENDCASE diff --git a/harbour/contrib/hbqt/qtgui/g/TQGraphicsItem.prg b/harbour/contrib/hbqt/qtgui/g/TQGraphicsItem.prg index bff385e497..e2fd31f54c 100644 --- a/harbour/contrib/hbqt/qtgui/g/TQGraphicsItem.prg +++ b/harbour/contrib/hbqt/qtgui/g/TQGraphicsItem.prg @@ -452,14 +452,14 @@ METHOD QGraphicsItem:mapFromItem( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QGRAPHICSITEM" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QGRAPHICSITEMQPAINTERPATH" RETURN HB_QPainterPath():from( Qt_QGraphicsItem_mapFromItem_3( ::pPtr, ... ) ) - CASE "QGRAPHICSITEM" + CASE "QGRAPHICSITEMQPOINTF" RETURN HB_QPointF():from( Qt_QGraphicsItem_mapFromItem( ::pPtr, ... ) ) - CASE "QGRAPHICSITEM" + CASE "QGRAPHICSITEMQRECTF" RETURN HB_QPolygonF():from( Qt_QGraphicsItem_mapFromItem_1( ::pPtr, ... ) ) - CASE "QGRAPHICSITEM" + CASE "QGRAPHICSITEMQPOLYGONF" RETURN HB_QPolygonF():from( Qt_QGraphicsItem_mapFromItem_2( ::pPtr, ... ) ) ENDSWITCH ENDCASE @@ -659,14 +659,14 @@ METHOD QGraphicsItem:mapToItem( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QGRAPHICSITEM" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QGRAPHICSITEMQPAINTERPATH" RETURN HB_QPainterPath():from( Qt_QGraphicsItem_mapToItem_3( ::pPtr, ... ) ) - CASE "QGRAPHICSITEM" + CASE "QGRAPHICSITEMQPOINTF" RETURN HB_QPointF():from( Qt_QGraphicsItem_mapToItem( ::pPtr, ... ) ) - CASE "QGRAPHICSITEM" + CASE "QGRAPHICSITEMQRECTF" RETURN HB_QPolygonF():from( Qt_QGraphicsItem_mapToItem_1( ::pPtr, ... ) ) - CASE "QGRAPHICSITEM" + CASE "QGRAPHICSITEMQPOLYGONF" RETURN HB_QPolygonF():from( Qt_QGraphicsItem_mapToItem_2( ::pPtr, ... ) ) ENDSWITCH ENDCASE diff --git a/harbour/contrib/hbqt/qtgui/g/TQPainter.prg b/harbour/contrib/hbqt/qtgui/g/TQPainter.prg index 4c1681b2f0..89857f664d 100644 --- a/harbour/contrib/hbqt/qtgui/g/TQPainter.prg +++ b/harbour/contrib/hbqt/qtgui/g/TQPainter.prg @@ -409,14 +409,14 @@ METHOD QPainter:drawImage( ... ) CASE 4 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) .AND. hb_isNumeric( hb_pvalue( 4 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QPOINTF" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QPOINTFQIMAGE" RETURN Qt_QPainter_drawImage_4( ::pPtr, ... ) - CASE "QPOINT" + CASE "QPOINTQIMAGE" RETURN Qt_QPainter_drawImage_5( ::pPtr, ... ) - CASE "QRECT" + CASE "QRECTQIMAGE" RETURN Qt_QPainter_drawImage_1( ::pPtr, ... ) - CASE "QRECTF" + CASE "QRECTFQIMAGE" RETURN Qt_QPainter_drawImage( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -426,14 +426,14 @@ METHOD QPainter:drawImage( ... ) CASE hb_isNumeric( hb_pvalue( 1 ) ) .AND. hb_isNumeric( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) RETURN Qt_QPainter_drawImage_8( ::pPtr, ... ) CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECT" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QRECTQIMAGE" RETURN Qt_QPainter_drawImage_1( ::pPtr, ... ) - CASE "QPOINTF" + CASE "QPOINTFQIMAGE" RETURN Qt_QPainter_drawImage_4( ::pPtr, ... ) - CASE "QPOINT" + CASE "QPOINTQIMAGE" RETURN Qt_QPainter_drawImage_5( ::pPtr, ... ) - CASE "QRECTF" + CASE "QRECTFQIMAGE" RETURN Qt_QPainter_drawImage( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -441,14 +441,14 @@ METHOD QPainter:drawImage( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECTF" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QRECTFQIMAGE" RETURN Qt_QPainter_drawImage_6( ::pPtr, ... ) - CASE "QRECT" + CASE "QRECTQIMAGE" RETURN Qt_QPainter_drawImage_7( ::pPtr, ... ) - CASE "QPOINT" + CASE "QPOINTQIMAGE" RETURN Qt_QPainter_drawImage_3( ::pPtr, ... ) - CASE "QPOINTF" + CASE "QPOINTFQIMAGE" RETURN Qt_QPainter_drawImage_2( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -468,10 +468,10 @@ METHOD QPainter:drawLine( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QPOINT" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QPOINTQPOINT" RETURN Qt_QPainter_drawLine_2( ::pPtr, ... ) - CASE "QPOINTF" + CASE "QPOINTFQPOINTF" RETURN Qt_QPainter_drawLine_3( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -527,10 +527,10 @@ METHOD QPainter:drawPicture( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QPOINTF" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QPOINTFQPICTURE" RETURN Qt_QPainter_drawPicture( ::pPtr, ... ) - CASE "QPOINT" + CASE "QPOINTQPICTURE" RETURN Qt_QPainter_drawPicture_1( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -587,14 +587,14 @@ METHOD QPainter:drawPixmap( ... ) CASE hb_isNumeric( hb_pvalue( 1 ) ) .AND. hb_isNumeric( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) RETURN Qt_QPainter_drawPixmap_6( ::pPtr, ... ) CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECT" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QRECTQPIXMAP" RETURN Qt_QPainter_drawPixmap_1( ::pPtr, ... ) - CASE "QPOINT" + CASE "QPOINTQPIXMAP" RETURN Qt_QPainter_drawPixmap_3( ::pPtr, ... ) - CASE "QRECTF" + CASE "QRECTFQPIXMAP" RETURN Qt_QPainter_drawPixmap( ::pPtr, ... ) - CASE "QPOINTF" + CASE "QPOINTFQPIXMAP" RETURN Qt_QPainter_drawPixmap_2( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -602,12 +602,12 @@ METHOD QPainter:drawPixmap( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QPOINTF" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QPOINTFQPIXMAP" RETURN Qt_QPainter_drawPixmap_4( ::pPtr, ... ) - CASE "QRECT" + CASE "QRECTQPIXMAP" RETURN Qt_QPainter_drawPixmap_7( ::pPtr, ... ) - CASE "QPOINT" + CASE "QPOINTQPIXMAP" RETURN Qt_QPainter_drawPixmap_5( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -835,10 +835,10 @@ METHOD QPainter:drawText( ... ) CASE 4 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isNumeric( hb_pvalue( 2 ) ) .AND. hb_isChar( hb_pvalue( 3 ) ) .AND. hb_isObject( hb_pvalue( 4 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECT" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 4 ) ) + CASE "QRECTQRECT" RETURN Qt_QPainter_drawText_3( ::pPtr, ... ) - CASE "QRECTF" + CASE "QRECTFQRECTF" RETURN Qt_QPainter_drawText_2( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -892,10 +892,10 @@ METHOD QPainter:drawTiledPixmap( ... ) CASE 3 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECTF" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QRECTFQPIXMAP" RETURN Qt_QPainter_drawTiledPixmap( ::pPtr, ... ) - CASE "QRECT" + CASE "QRECTQPIXMAP" RETURN Qt_QPainter_drawTiledPixmap_1( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -903,10 +903,10 @@ METHOD QPainter:drawTiledPixmap( ... ) CASE 2 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECTF" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QRECTFQPIXMAP" RETURN Qt_QPainter_drawTiledPixmap( ::pPtr, ... ) - CASE "QRECT" + CASE "QRECTQPIXMAP" RETURN Qt_QPainter_drawTiledPixmap_1( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -971,14 +971,14 @@ METHOD QPainter:fillRect( ... ) RETURN Qt_QPainter_fillRect_7( ::pPtr, ... ) ENDSWITCH CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QRECT" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QRECTQBRUSH" RETURN Qt_QPainter_fillRect_1( ::pPtr, ... ) - CASE "QRECTF" + CASE "QRECTFQBRUSH" RETURN Qt_QPainter_fillRect( ::pPtr, ... ) - CASE "QRECT" + CASE "QRECTQCOLOR" RETURN Qt_QPainter_fillRect_2( ::pPtr, ... ) - CASE "QRECTF" + CASE "QRECTFQCOLOR" RETURN Qt_QPainter_fillRect_3( ::pPtr, ... ) ENDSWITCH ENDCASE diff --git a/harbour/contrib/hbqt/qtnetwork/g/TQHttp.prg b/harbour/contrib/hbqt/qtnetwork/g/TQHttp.prg index d695861513..f873ca0cf8 100644 --- a/harbour/contrib/hbqt/qtnetwork/g/TQHttp.prg +++ b/harbour/contrib/hbqt/qtnetwork/g/TQHttp.prg @@ -194,10 +194,10 @@ METHOD QHttp:post( ... ) CASE 3 DO CASE CASE hb_isChar( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QSTRING" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QSTRINGQIODEVICE" RETURN Qt_QHttp_post( ::pPtr, ... ) - CASE "QSTRING" + CASE "QSTRINGQBYTEARRAY" RETURN Qt_QHttp_post_1( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -205,10 +205,10 @@ METHOD QHttp:post( ... ) CASE 2 DO CASE CASE hb_isChar( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QSTRING" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QSTRINGQIODEVICE" RETURN Qt_QHttp_post( ::pPtr, ... ) - CASE "QSTRING" + CASE "QSTRINGQBYTEARRAY" RETURN Qt_QHttp_post_1( ::pPtr, ... ) ENDSWITCH ENDCASE @@ -226,10 +226,10 @@ METHOD QHttp:request( ... ) CASE 3 DO CASE CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isObject( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) ) - SWITCH __objGetClsName( hb_pvalue( 1 ) ) - CASE "QHTTPREQUESTHEADER" + SWITCH __objGetClsName( hb_pvalue( 1 ) ) + __objGetClsName( hb_pvalue( 2 ) ) + CASE "QHTTPREQUESTHEADERQIODEVICE" RETURN Qt_QHttp_request( ::pPtr, ... ) - CASE "QHTTPREQUESTHEADER" + CASE "QHTTPREQUESTHEADERQBYTEARRAY" RETURN Qt_QHttp_request_1( ::pPtr, ... ) ENDSWITCH ENDCASE diff --git a/harbour/contrib/hbqt/utils/hbqtgen.prg b/harbour/contrib/hbqt/utils/hbqtgen.prg index 1f2c1dd2fd..e785ae56da 100644 --- a/harbour/contrib/hbqt/utils/hbqtgen.prg +++ b/harbour/contrib/hbqt/utils/hbqtgen.prg @@ -1239,10 +1239,10 @@ STATIC FUNCTION hbide_addReturnMethod( txt_, oM, cWidget, nInd, nCount, lClubbed ENDIF IF nTySame > 1 .AND. nCount == 1 - aadd( txt_, sp + "SWITCH __objGetClsName( hb_pvalue( " + hb_ntos( oM:nArgQCast ) + " ) )" ) + aadd( txt_, sp + "SWITCH " + hbide_getSwitch( oM, nArgToCheck ) ) ENDIF IF nTySame > 1 - aadd( txt_, sp + "CASE " + '"' + upper( oM:hArgs[ oM:nArgQCast ]:cCast ) + '"' ) + aadd( txt_, sp + "CASE " + hbide_getCase( oM, nArgToCheck ) ) aadd( txt_, sp + " " + cPrefix + "RETURN " + cFun + cPostFix ) ELSE aadd( txt_, sp + "IF __objGetClsName( hb_pvalue( " + hb_ntos( oM:nArgQCast ) + " ) ) == " + '"' + upper( oM:hArgs[ oM:nArgQCast ]:cCast ) + '"' ) @@ -1269,6 +1269,54 @@ STATIC FUNCTION hbide_addReturnMethod( txt_, oM, cWidget, nInd, nCount, lClubbed /*----------------------------------------------------------------------*/ +STATIC FUNCTION hbide_getCase( oMtd, nArgs ) + LOCAL nFirst := oMtd:nArgQCast + LOCAL n, oArg, nNext := 0 + + FOR EACH oArg IN oMtd:hArgs + n := oArg:__enumIndex() + IF n > nFirst .AND. n <= nArgs + IF oArg:cTypeHB $ "PO" + nNext := n + EXIT + ENDIF + ENDIF + NEXT + + IF nNext > 0 + RETURN '"' + upper( oMtd:hArgs[ nFirst ]:cCast ) + upper( oMtd:hArgs[ nNext ]:cCast ) + '"' + ELSE + RETURN '"' + upper( oMtd:hArgs[ nFirst ]:cCast ) + '"' + ENDIF + + RETURN "" + +/*----------------------------------------------------------------------*/ + +STATIC FUNCTION hbide_getSwitch( oMtd, nArgs ) + LOCAL nFirst := oMtd:nArgQCast + LOCAL n, oArg, nNext := 0 + + FOR EACH oArg IN oMtd:hArgs + n := oArg:__enumIndex() + IF n > nFirst .AND. n <= nArgs + IF oArg:cTypeHB $ "PO" + nNext := n + EXIT + ENDIF + ENDIF + NEXT + + IF nNext > 0 + RETURN "__objGetClsName( hb_pvalue( " + hb_ntos( nFirst ) + " ) )" + " + " + "__objGetClsName( hb_pvalue( " + hb_ntos( nNext ) + " ) )" + ELSE + RETURN "__objGetClsName( hb_pvalue( " + hb_ntos( nFirst ) + " ) )" + ENDIF + + RETURN "" + +/*----------------------------------------------------------------------*/ + STATIC FUNCTION hbide_methodInfo( oMtd ) LOCAL s := "", oArg FOR EACH oArg IN oMtd:hArgs