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.
This commit is contained in:
Pritpal Bedi
2010-09-30 08:39:02 +00:00
parent 4e55b4a133
commit 53adb15ced
6 changed files with 132 additions and 71 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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