2011-02-18 17:53 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbide/ideharbourhelp.prg
    ! Fixed: a last moment nasty omission in previous commit.
  * contrib/hbqt/hbmk2_qt.hbs
    ! Started: implementation of all C++ level class creation.
      Currently new class structure is only appended in 
      QPainDevice.cpp and QWidget.cpp. 
      ; This has to go in SVN to keep track of heavy changes 
        in the engine plus my different working systems (home/office).
  * contrib/hbqt/qtcore/qth/QAbstractItemModel.qth
  * contrib/hbqt/qtgui/qth/QGraphicsLinearLayout.qth
  * contrib/hbqt/qtgui/qth/QLayout.qth
  * contrib/hbqt/qtgui/qth/QMessageBox.qth
  * contrib/hbqt/qtgui/qth/QScrollArea.qth
  * contrib/hbqt/qtgui/qth/QTreeWidgetItem.qth
    % Tweaked: detached and attached attributes of child widgets.
This commit is contained in:
Pritpal Bedi
2011-02-19 02:01:24 +00:00
parent 5b6653c9a4
commit 545f660b09
9 changed files with 385 additions and 121 deletions

View File

@@ -16,6 +16,23 @@
The license applies to all entries newer than 2009-04-28.
*/
2011-02-18 17:53 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/ideharbourhelp.prg
! Fixed: a last moment nasty omission in previous commit.
* contrib/hbqt/hbmk2_qt.hbs
! Started: implementation of all C++ level class creation.
Currently new class structure is only appended in
QPainDevice.cpp and QWidget.cpp.
; This has to go in SVN to keep track of heavy changes
in the engine plus my different working systems (home/office).
* contrib/hbqt/qtcore/qth/QAbstractItemModel.qth
* contrib/hbqt/qtgui/qth/QGraphicsLinearLayout.qth
* contrib/hbqt/qtgui/qth/QLayout.qth
* contrib/hbqt/qtgui/qth/QMessageBox.qth
* contrib/hbqt/qtgui/qth/QScrollArea.qth
* contrib/hbqt/qtgui/qth/QTreeWidgetItem.qth
% Tweaked: detached and attached attributes of child widgets.
2011-02-18 23:44 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po

View File

@@ -274,8 +274,11 @@ METHOD IdeHarbourHelp:clear()
NEXT
FOR EACH a_ IN ::aNodes
IF a_[ 2 ] == "Path"
a_[ 3 ]:removeChild( a_[ 1 ] )
a_[ 1 ] := NIL ; a_[ 3 ] := NIL
IF hb_isObject( a_[ 3 ] )
a_[ 3 ]:removeChild( a_[ 1 ] )
a_[ 3 ] := NIL
ENDIF
a_[ 1 ] := NIL
ENDIF
NEXT
IF !empty( ::aNodes )
@@ -808,7 +811,7 @@ METHOD IdeHarbourHelp:pullDefinitions( acBuffer )
METHOD IdeHarbourHelp:pullDefinitionsHBD( cFileHBD )
IF hb_fileExists( cFileHBD )
doc2functions( __hbdoc_LoadHBD( cFileHBD ) )
RETURN doc2functions( __hbdoc_LoadHBD( cFileHBD ) )
ENDIF
RETURN {}

View File

@@ -1077,10 +1077,13 @@ CREATE CLASS HbQtSource
METHOD parseProto( cProto, fBody_ )
METHOD parseVariables( cProto )
METHOD build()
METHOD getConstructor( nClsType )
METHOD buildCppCode( oMtd )
METHOD buildMethodBody( oMtd )
METHOD buildDOC()
METHOD buildClass()
METHOD getMethodBody( oMtd, cMtdName, nClsType )
METHOD buildClassEx()
ENDCLASS
@@ -1281,7 +1284,7 @@ METHOD HbQtSource:new( cQtModule, cQtVer, cQTHFileName, cCPPFileName, cPRGFileNa
METHOD HbQtSource:build()
LOCAL i, s, oMtd, tmp, tmp1
LOCAL aLine
LOCAL aLine, aClsExt
::hRef[ ::cQtObject ] := NIL
@@ -1499,41 +1502,18 @@ METHOD HbQtSource:build()
aadd( aLine, "}" )
aadd( aLine, "" )
/* Build the constructor */
aadd( aLine, ::new_[ 1 ] ) // Func definition
aadd( aLine, ::new_[ 2 ] ) // {
IF ::isConstructor
if ::isList
aadd( aLine, " " + ::cQtObject + "< void * > * pObj = NULL;" )
else
aadd( aLine, " " + ::cQtObject + " * pObj = NULL;" )
endif
aadd( aLine, " " )
FOR i := 3 TO len( ::new_ ) - 1
IF !( left( ltrim( ::new_[ i ] ), 2 ) == "//" )
IF "__HB_RETPTRGC__(" $ ::new_[ i ]
s := ::new_[ i ]
s := trim( strtran( s, "__HB_RETPTRGC__(", "pObj =" ) )
s := strtran( s, ");", ";" )
s := strtran( s, "( "+ ::cQtObject + "* )" )
aadd( aLine, s )
ELSE
aadd( aLine, ::new_[ i ] )
ENDIF
ENDIF
NEXT
aadd( aLine, " " )
aadd( aLine, " hb_retptrGC( hbqt_gcAllocate_" + ::cQtObject + "( ( void * ) pObj, " + iif( ::isDetached, "false", "true" ) + " ) );" )
ELSE
FOR i := 3 TO len( ::new_ ) - 1
aadd( aLine, ::new_[ i ] )
NEXT
ENDIF
aadd( aLine, ::new_[ len( ::new_ ) ] ) // }
aadd( aLine, "" )
aeval( ::getConstructor( 0 ), {|e| aadd( aLine, e ) } )
/* Insert Functions */
aeval( ::txt_, {|e| aadd( aLine, strtran( e, chr( 13 ) ) ) } )
/* A try to generate classes on C++ level - only for QObject, QPaintDevice, QWidget */
IF !empty( aClsExt := ::buildClassEx() )
aeval( aClsExt, {|e| aadd( aLine, strtran( e, chr( 13 ) ) ) } )
ENDIF
/* Footer */
hbqtgen_BuildFooter( @aLine, ::cQtVer )
@@ -1550,10 +1530,157 @@ METHOD HbQtSource:build()
/*----------------------------------------------------------------------*/
METHOD HbQtSource:getConstructor( nClsType )
LOCAL i, s, aLine := {}
aadd( aLine, ::new_[ 2 ] ) // {
IF nClsType == 1
aadd( aLine, " if( s_p" + ::cQtObject + " == NULL )" )
aadd( aLine, " hbqt_" + ::cQtObject + "Init();" )
aadd( aLine, " PHB_ITEM pObject = hbqt_" + ::cQtObject + "New();" )
aadd( aLine, "" )
ENDIF
IF ::isConstructor
IF ::isList
aadd( aLine, " " + ::cQtObject + "< void * > * pObj = NULL;" )
ELSE
aadd( aLine, " " + ::cQtObject + " * pObj = NULL;" )
ENDIF
aadd( aLine, " " )
FOR i := 3 TO len( ::new_ ) - 1
IF !( left( ltrim( ::new_[ i ] ), 2 ) == "//" )
IF "__HB_RETPTRGC__(" $ ::new_[ i ]
s := ::new_[ i ]
s := trim( strtran( s, "__HB_RETPTRGC__(", "pObj =" ) )
s := strtran( s, ");", ";" )
s := strtran( s, "( "+ ::cQtObject + "* )" )
aadd( aLine, s )
ELSE
aadd( aLine, ::new_[ i ] )
ENDIF
ENDIF
NEXT
aadd( aLine, " " )
IF nClsType == 0
aadd( aLine, " hb_retptrGC( hbqt_gcAllocate_" + ::cQtObject + "( ( void * ) pObj, " + iif( ::isDetached, "false", "true" ) + " ) );" )
ELSE
aadd( aLine, " hb_arraySetPtrGC( pObject, 1, hbqt_gcAllocate_" + ::cQtObject + "( ( void * ) pObj, true ) );" )
ENDIF
ELSE
FOR i := 3 TO len( ::new_ ) - 1
aadd( aLine, ::new_[ i ] )
NEXT
ENDIF
IF nClsType == 1
aadd( aLine, " hb_itemReturnRelease( pObject );" )
ENDIF
aadd( aLine, ::new_[ len( ::new_ ) ] ) // }
aadd( aLine, "" )
RETURN aLine
/*----------------------------------------------------------------------*/
METHOD HbQtSource:getMethodBody( oMtd, cMtdName, nClsType )
LOCAL FP, cTmp, n
LOCAL txt_:= {}
aadd( txt_, "/* " + strtran( oMtd:cProto, chr(13) ) + " */" )
//aadd( txt_, "HB_FUNC" + iif( nClsType == 1, "_STATIC", "" ) + "( " + cMtdName + " )" )
aadd( txt_, "HB_FUNC( " + cMtdName + " )" )
aadd( txt_, "{" )
IF !empty( oMtd:fBody_ )
aeval( oMtd:fBody_, {|e| aadd( txt_, e ) } )
ELSE
IF ! oMtd:isConstructor
cTmp := ::cQtObject + iif( ::isList, "< void * >", "" )
IF nClsType == 0
aadd( txt_, " " + cTmp + " * p = hbqt_par_" + ::cQtObject + "( 1 );" )
ELSEIF nClsType == 1
aadd( txt_, " " + cTmp + " * p = ( " + cTmp + " * ) hbqt_getqtptr();" )
ENDIF
ENDIF
/* Insert parameters by reference */
IF ! empty( oMtd:aPre )
FOR n := 1 TO len( oMtd:aPre )
aadd( txt_, " " + oMtd:aPre[ n, 1 ] )
NEXT
aadd( txt_, "" )
ENDIF
/* One line function body */
IF ! oMtd:isConstructor
IF nClsType == 0
FP := strtran( oMtd:cCmd, "hbqt_par_" + ::cQtObject + "( 1 )", "( p )" )
ELSEIF nClsType == 1
FP := oMtd:cCmdN // strtran( oMtd:cCmdN, "hbqt_par_" + ::cQtObject + "( 1 )", "( p )" )
ENDIF
aadd( txt_, " if( p )" )
IF oMtd:nDetach > 0 .OR. "hb_parstr_utf8(" $ oMtd:cCmd
aadd( txt_, " {" )
ENDIF
ELSE
FP := oMtd:cCmd
ENDIF
/* Manage Re-Attached */
IF oMtd:nAttach > 0
FP := strtran( FP, ", false", ", true" )
ENDIF
/* Manage detached Argument */
IF oMtd:nDetach > 0
aadd( txt_, " hbqt_detachgcpointer( " + hb_ntos( oMtd:nDetach + iif( nClsType == 0, 1, 0 ) ) + " );" )
ENDIF
IF "hb_parstr_utf8(" $ oMtd:cCmd
aadd( txt_, " void * pText = NULL;" )
ENDIF
IF ! oMtd:isConstructor
aadd( txt_, " " + FP )
ELSE
aadd( txt_, " " + FP )
ENDIF
IF "hb_parstr_utf8(" $ oMtd:cCmd
aadd( txt_, " hb_strfree( pText );" )
ENDIF
IF ! oMtd:isConstructor
IF oMtd:nDetach > 0 .OR. "hb_parstr_utf8(" $ oMtd:cCmd
aadd( txt_, " }" )
ENDIF
ENDIF
/* Return values back to PRG */
IF ! empty( oMtd:aPre )
aadd( txt_, "" )
FOR n := 1 TO len( oMtd:aPre )
IF nClsType == 0
aadd( txt_, " " + oMtd:aPre[ n, 4 ] + "( " + oMtd:aPre[ n, 3 ] + ", " + hb_ntos( oMtd:aPre[ n, 2 ] ) + " );" )
ELSEIF nClsType == 1
aadd( txt_, " " + oMtd:aPreN[ n, 4 ] + "( " + oMtd:aPreN[ n, 3 ] + ", " + hb_ntos( oMtd:aPreN[ n, 2 ] ) + " );" )
ENDIF
NEXT
ENDIF
ENDIF
aadd( txt_, "}" )
aadd( txt_, "" )
RETURN txt_
/*----------------------------------------------------------------------*/
METHOD HbQtSource:buildMethodBody( oMtd )
LOCAL n, FP, cFunc
LOCAL n, cFunc
LOCAL aBdy
oMtd:cCmd := StrTran( oMtd:cCmd, "( )", "()" ) + ";"
oMtd:cCmdN := StrTran( oMtd:cCmdN, "( )", "()" ) + ";"
IF ( n := ascan( ::func_, {|e_| e_[ 1 ] == oMtd:cFun } ) ) > 0
::func_[ n,2 ]++
@@ -1567,75 +1694,8 @@ METHOD HbQtSource:buildMethodBody( oMtd )
aadd( ::func_, { oMtd:cFun, 0, "" } )
ENDIF
aadd( ::txt_, "/* " + strtran( oMtd:cProto, chr(13) ) + " */" )
aadd( ::txt_, "HB_FUNC( QT_" + upper( ::cQtObject ) + "_" + upper( oMtd:cHBFunc ) + " )" )
aadd( ::txt_, "{" )
IF !empty( oMtd:fBody_ )
aeval( oMtd:fBody_, {|e| aadd( ::txt_, e ) } )
ELSE
IF ! oMtd:isConstructor
aadd( ::txt_, " " + ::cQtObject + iif( ::isList, "< void *>", "" ) + " * p = hbqt_par_" + ::cQtObject + "( 1 );" )
ENDIF
/* Insert parameters by reference */
IF ! empty( oMtd:aPre )
FOR n := 1 TO len( oMtd:aPre )
aadd( ::txt_, " " + oMtd:aPre[ n, 1 ] )
NEXT
aadd( ::txt_, "" )
ENDIF
/* One line function body */
IF ! oMtd:isConstructor
FP = strtran( oMtd:cCmd, "hbqt_par_" + ::cQtObject + "( 1 )", "( p )" )
aadd( ::txt_, " if( p )" )
IF oMtd:nDetach > 0 .OR. "hb_parstr_utf8(" $ oMtd:cCmd
aadd( ::txt_, " {" )
ENDIF
ELSE
FP := oMtd:cCmd
ENDIF
/* Manage Re-Attached */
IF oMtd:nAttach > 0
FP := strtran( FP, ", false", ", true" )
ENDIF
/* Manage detached Argument */
IF oMtd:nDetach > 0
aadd( ::txt_, " hbqt_detachgcpointer( " + hb_ntos( oMtd:nDetach + 1 ) + " );" )
ENDIF
IF "hb_parstr_utf8(" $ oMtd:cCmd
aadd( ::txt_, " void * pText = NULL;" )
ENDIF
IF ! oMtd:isConstructor
aadd( ::txt_, " " + FP )
ELSE
aadd( ::txt_, " " + FP )
ENDIF
IF "hb_parstr_utf8(" $ oMtd:cCmd
aadd( ::txt_, " hb_strfree( pText );" )
ENDIF
//
IF ! oMtd:isConstructor
IF oMtd:nDetach > 0 .OR. "hb_parstr_utf8(" $ oMtd:cCmd
aadd( ::txt_, " }" )
ENDIF
ENDIF
/* Return values back to PRG */
IF ! empty( oMtd:aPre )
aadd( ::txt_, "" )
FOR n := 1 TO len( oMtd:aPre )
aadd( ::txt_, " " + oMtd:aPre[ n, 4 ] + "( " + oMtd:aPre[ n, 3 ] + ", " + hb_ntos( oMtd:aPre[ n, 2 ] ) + " );" )
NEXT
ENDIF
ENDIF
aadd( ::txt_, "}" )
aadd( ::txt_, "" )
aBdy := ::getMethodBody( oMtd, "QT_" + upper( ::cQtObject ) + "_" + upper( oMtd:cHBFunc ), 0 )
aeval( aBdy, {|e| aadd( ::txt_, e ) } )
cFunc := iif( ::areMethodsClubbed, hbqtgen_stripLastFrom( oMtd:cHBFunc, "_" ), oMtd:cHBFunc )
@@ -1649,6 +1709,95 @@ METHOD HbQtSource:buildMethodBody( oMtd )
/*----------------------------------------------------------------------*/
METHOD HbQtSource:buildClassEx()
LOCAL aClsEx := {}
LOCAL cObj, uObj, cNew, uNew, oMtd
LOCAL aBdy
IF ! ( ::cQtObject $ "QPaintDevice,QWidget" )
RETURN aClsEx
ENDIF
cObj := ::cQtObject
uObj := upper( cObj )
cNew := cObj + "New"
uNew := uObj + "NEW"
aadd( aClsEx, '#include "hbapicls.h"' )
aadd( aClsEx, '#include "hbapiitm.h"' )
aadd( aClsEx, '#include "hbstack.h"' )
aadd( aClsEx, '' )
aadd( aClsEx, '' )
aadd( aClsEx, 'HB_FUNC_EXTERN( ' + uNew + ' );' )
aadd( aClsEx, '' )
aadd( aClsEx, 'static PHB_ITEM s_p' + cObj + ' = NULL;' )
aadd( aClsEx, 'static HB_SYMB s_sym' + cNew + ' = { "' + uNew + '", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ' + uNew + ' )}, NULL };' )
aadd( aClsEx, '' )
#if 0
aadd( aClsEx, 'HB_FUNC( Q' + uObj + '_' + 'PPTR )' )
aadd( aClsEx, '{' )
aadd( aClsEx, ' PHB_ITEM pObj = hb_stackSelfItem();' )
aadd( aClsEx, ' hb_retptr( hb_arrayGetPtr( pObj, 1 ) );' )
aadd( aClsEx, '}' )
aadd( aClsEx, '' )
aadd( aClsEx, 'HB_FUNC( Q' + uObj + '__' + 'PPTR )' )
aadd( aClsEx, '{' )
aadd( aClsEx, ' PHB_ITEM pObj = hb_stackSelfItem();' )
aadd( aClsEx, ' hb_arraySetPtr( pObj, 1, hb_parptr( 1 ) );' )
aadd( aClsEx, '}' )
aadd( aClsEx, '' )
#endif
aadd( aClsEx, 'static void * hbqt_getqtptr( void )' )
aadd( aClsEx, '{' )
aadd( aClsEx, ' PHB_ITEM pObj = hb_stackSelfItem();' )
aadd( aClsEx, ' HBQT_GC_T * p = ( HBQT_GC_T * ) hb_arrayGetPtrGC( pObj, 1, hbqt_gcFuncs() );' )
aadd( aClsEx, ' if( p && p->ph )' )
aadd( aClsEx, ' return p->ph;' )
aadd( aClsEx, ' else' )
aadd( aClsEx, ' return NULL;' )
aadd( aClsEx, '}' )
aadd( aClsEx, '' )
FOR EACH oMtd IN ::aMethods
aBdy := ::getMethodBody( oMtd, 'Q' + uObj + '_' + upper( oMtd:cHBFunc ), 1 )
aeval( aBdy, {|e| aadd( aClsEx, e ) } )
NEXT
aadd( aClsEx, '' )
aadd( aClsEx, 'static HB_USHORT hbqt_' + cObj + 'ClassCreate( void )' )
aadd( aClsEx, '{' )
aadd( aClsEx, ' HB_USHORT usClassH = hb_clsCreate( 1, "Q' + uObj + '" );' )
aadd( aClsEx, '' )
//aadd( aClsEx, ' hb_clsAdd( usClassH, "PPTR", HB_FUNCNAME( Q' + uObj + '_PPTR ) );' )
//aadd( aClsEx, ' hb_clsAdd( usClassH, "_PPTR", HB_FUNCNAME( Q' + uObj + '__PPTR ) );' )
FOR EACH oMtd IN ::aMethods
aadd( aClsEx, ' hb_clsAdd( usClassH, "' + oMtd:cHBFunc +'", HB_FUNCNAME( Q' + uObj + '_' + upper( oMtd:cHBFunc ) + ' ) );' )
NEXT
aadd( aClsEx, '' )
aadd( aClsEx, ' return usClassH;' )
aadd( aClsEx, '}' )
aadd( aClsEx, '' )
aadd( aClsEx, 'void hbqt_' + cObj + 'Init( void )' )
aadd( aClsEx, '{' )
aadd( aClsEx, ' hb_dynsymNew( &s_sym' + cNew + ' );' )
aadd( aClsEx, ' s_p' + cObj + ' = hb_itemNew( NULL );' )
aadd( aClsEx, ' hb_clsAssociate( hbqt_' + cObj + 'ClassCreate() );' )
aadd( aClsEx, ' hb_itemMove( s_p' + cObj + ', hb_stackReturnItem() );' )
aadd( aClsEx, '}' )
aadd( aClsEx, '' )
aadd( aClsEx, 'PHB_ITEM hbqt_' + cNew + '( void )' )
aadd( aClsEx, '{' )
aadd( aClsEx, ' if( ! s_p' + cObj + ' || ! HB_IS_OBJECT( s_p' + cObj + ' ) )' )
aadd( aClsEx, ' hbqt_errRT_ARG();' )
aadd( aClsEx, ' return hb_arrayClone( s_p' + cObj + ' );' )
aadd( aClsEx, '}' )
aadd( aClsEx, '' )
aadd( aClsEx, 'HB_FUNC( ' + uNew + ' )' )
aBdy := ::getConstructor( 1 )
aeval( aBdy, {|e| aadd( aClsEx, e ) } )
RETURN aClsEx
/*----------------------------------------------------------------------*/
METHOD HbQtSource:buildClass()
LOCAL s, n, cM, cC, oMtd, oArg, cP, txt_:={}, a_, cMtd, lClub
@@ -2171,6 +2320,7 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
LOCAL aArg, n, nn, cHBIdx, nIndex, s, ss, cFirstParamCast, cArg
LOCAL oMtd, oRet, oArg, k, cKey, cVal
LOCAL cRef
LOCAL cHBIdxN := "1", sN := ""
IF ( n := at( "(", cProto ) ) == 0
RETURN .f.
@@ -2238,7 +2388,9 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
oMtd:hArgs[ nIndex ] := oArg
oMtd:nHBIdx := nIndex + 1 // iif( oMtd:isConstructor, 0, 1 )
oMtd:nHBIdxN := nIndex
cHBIdx := hb_ntos( oMtd:nHBIdx )
cHBIdxN := hb_ntos( nIndex )
oMtd:cDocNM := HBQTGEN_THIS_PROPER( oArg:cName )
oMtd:nArgs++
@@ -2256,42 +2408,53 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
DO CASE
CASE oArg:cCast == "..."
oArg:cBody := "..."
oArg:cBodyN := "..."
oArg:cDoc := "..."
oArg:cTypeHB := "..."
CASE oArg:cCast == "PHB_ITEM"
oArg:cBody := "hb_param( " + cHBIdx + ", HB_IT_ANY )"
oArg:cBodyN := "hb_param( " + cHBIdxN + ", HB_IT_ANY )"
oArg:cDoc := "x" + oMtd:cDocNM
oArg:cTypeHB := "PB"
CASE oArg:cCast == "T"
oArg:cBody := "hb_param( " + cHBIdx + ", HB_IT_ANY )"
oArg:cBodyN := "hb_param( " + cHBIdxN + ", HB_IT_ANY )"
oArg:cDoc := "x" + oMtd:cDocNM
oArg:cTypeHB := "P"
CASE oArg:cCast $ ::cInt .and. oArg:lFar
aadd( oMtd:aPre, { oArg:cCast + " i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "i" + oMtd:cDocNM, "hb_storni" } )
aadd( oMtd:aPreN, { oArg:cCast + " i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdxN, "i" + oMtd:cDocNM, "hb_storni" } )
oArg:cBody := "&i" + oMtd:cDocNM
oArg:cBodyN := "&i" + oMtd:cDocNM
oArg:cDoc := "@n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast $ ::cIntLong .and. oArg:lFar
aadd( oMtd:aPre, { oArg:cCast + " i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "i" + oMtd:cDocNM, "hb_stornl" } )
aadd( oMtd:aPreN, { oArg:cCast + " i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdxN, "i" + oMtd:cDocNM, "hb_stornl" } )
oArg:cBody := "&i" + oMtd:cDocNM
oArg:cBodyN := "&i" + oMtd:cDocNM
oArg:cDoc := "@n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast $ ::cIntLongLong .and. oArg:lFar
aadd( oMtd:aPre, { oArg:cCast + " i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "i" + oMtd:cDocNM, "hb_stornint" } )
aadd( oMtd:aPreN, { oArg:cCast + " i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdxN, "i" + oMtd:cDocNM, "hb_stornint" } )
oArg:cBody := "&i" + oMtd:cDocNM
oArg:cBodyN := "&i" + oMtd:cDocNM
oArg:cDoc := "@n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast $ ::cInt
IF !empty( oArg:cDefault ) .AND. !( oArg:cDefault == "0" )
oArg:cBody := "hb_parnidef( " + cHBIdx + ", " + oArg:cDefault + " )"
oArg:cBodyN := "hb_parnidef( " + cHBIdxN + ", " + oArg:cDefault + " )"
ELSE
oArg:cBody := "hb_parni( " + cHBIdx + " )"
oArg:cBodyN := "hb_parni( " + cHBIdxN + " )"
ENDIF
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
@@ -2299,8 +2462,10 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
CASE oArg:cCast $ ::cIntLong
IF !empty( oArg:cDefault ) .AND. !( oArg:cDefault == "0" )
oArg:cBody := "hb_parnldef( " + cHBIdx + ", " + oArg:cDefault + " )"
oArg:cBodyN := "hb_parnldef( " + cHBIdxN + ", " + oArg:cDefault + " )"
ELSE
oArg:cBody := "hb_parnl( " + cHBIdx + " )"
oArg:cBodyN := "hb_parnl( " + cHBIdxN + " )"
ENDIF
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
@@ -2308,8 +2473,10 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
CASE oArg:cCast $ "qlonglong,qulonglong"
IF !empty( oArg:cDefault ) .AND. !( oArg:cDefault == "0" )
oArg:cBody := "( " + oArg:cCast + " ) hb_parnintdef( " + cHBIdx + ", " + oArg:cDefault + " )"
oArg:cBodyN := "( " + oArg:cCast + " ) hb_parnintdef( " + cHBIdxN + ", " + oArg:cDefault + " )"
ELSE
oArg:cBody := "( " + oArg:cCast + " ) hb_parnint( " + cHBIdx + " )"
oArg:cBodyN := "( " + oArg:cCast + " ) hb_parnint( " + cHBIdxN + " )"
ENDIF
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
@@ -2317,58 +2484,71 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
CASE oArg:cCast $ ::cIntLongLong
IF !empty( oArg:cDefault ) .AND. !( oArg:cDefault == "0" )
oArg:cBody := "hb_parnintdef( " + cHBIdx + ", " + oArg:cDefault + " )"
oArg:cBodyN := "hb_parnintdef( " + cHBIdxN + ", " + oArg:cDefault + " )"
ELSE
oArg:cBody := "hb_parnint( " + cHBIdx + " )"
oArg:cBodyN := "hb_parnint( " + cHBIdxN + " )"
ENDIF
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast $ "double,qreal" .and. oArg:lFar
aadd( oMtd:aPre, { "qreal qr" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "qr" + oMtd:cDocNM, "hb_stornd" } )
aadd( oMtd:aPreN, { "qreal qr" + oMtd:cDocNM + " = 0;", oMtd:nHBIdxN, "qr" + oMtd:cDocNM, "hb_stornd" } )
oArg:cBody := "&qr" + oMtd:cDocNM
oArg:cBodyN := "&qr" + oMtd:cDocNM
oArg:cDoc := "@n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast $ "double,qreal,float"
oArg:cBody := "hb_parnd( " + cHBIdx + " )"
oArg:cBodyN := "hb_parnd( " + cHBIdxN + " )"
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast == "uchar" .and. oArg:lFar .and. ! oArg:lConst
/* TOFIX: Such code is not valid and should never be generated (const->non-const) [vszakats] */
oArg:cBody := "( uchar * ) hb_parc( " + cHBIdx + " )"
oArg:cBodyN := "( uchar * ) hb_parc( " + cHBIdxN + " )"
oArg:cDoc := "c" + oMtd:cDocNM
oArg:cTypeHB := "C"
CASE oArg:cCast == "uchar" .and. ! oArg:lFar .and. ! oArg:lConst
oArg:cBody := "( uchar ) hb_parni( " + cHBIdx + " )"
oArg:cBodyN := "( uchar ) hb_parni( " + cHBIdxN + " )"
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast == "char" .and. oArg:lFar .and. ! oArg:lConst
/* TOFIX: Such code is not valid and should never be generated (const->non-const) [vszakats] */
oArg:cBody := "( char * ) hb_parc( " + cHBIdx + " )"
oArg:cBodyN := "( char * ) hb_parc( " + cHBIdxN + " )"
oArg:cDoc := "c" + oMtd:cDocNM
oArg:cTypeHB := "C"
CASE oArg:cCast == "char" .and. oArg:lFar .and. oArg:lConst
oArg:cBody := "( const char * ) hb_parc( " + cHBIdx + " )"
oArg:cBodyN := "( const char * ) hb_parc( " + cHBIdxN + " )"
oArg:cDoc := "c" + oMtd:cDocNM
oArg:cTypeHB := "C"
CASE oArg:cCast == "char" .and. ! oArg:lFar .and. ! oArg:lConst
oArg:cBody := "( char ) hb_parni( " + cHBIdx + " )"
oArg:cBodyN := "( char ) hb_parni( " + cHBIdxN + " )"
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE ( "::" $ oArg:cCast ) .and. oArg:lFar
aadd( oMtd:aPre, { oArg:cCast + " i" + oMtd:cDocNM + " = ( " + oArg:cCast + " ) 0;", oMtd:nHBIdx, "i" + oMtd:cDocNM, "hb_storni" } )
aadd( oMtd:aPreN, { oArg:cCast + " i" + oMtd:cDocNM + " = ( " + oArg:cCast + " ) 0;", oMtd:nHBIdxN, "i" + oMtd:cDocNM, "hb_storni" } )
oArg:cBody := "&i" + oMtd:cDocNM
oArg:cBodyN := "&i" + oMtd:cDocNM
oArg:cDoc := "@n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE ( "::" $ oArg:cCast )
s := "( " + oArg:cCast + " ) hb_parni( " + cHBIdx + " )"
sN := "( " + oArg:cCast + " ) hb_parni( " + cHBIdxN + " )"
IF !empty( oArg:cDefault ) .AND. !( oArg:cDefault == "0" )
IF ascan( ::enum_, oArg:cDefault ) > 0
ss := ::cQtObject + "::" + oArg:cDefault
@@ -2378,53 +2558,66 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
ENDIF
ss := "( " + oArg:cCast + " ) " + ss
oArg:cBody := "( HB_ISNUM( " + cHBIdx + " ) ? " + s + " : " + ss + " )"
oArg:cBodyN := "( HB_ISNUM( " + cHBIdxN + " ) ? " + sN + " : " + ss + " )"
ELSE
oArg:cBody := s
oArg:cBodyN := sN
ENDIF
oArg:cDoc := "n" + oMtd:cDocNM
oArg:cTypeHB := "N"
CASE oArg:cCast == "bool" .and. oArg:lFar
aadd( oMtd:aPre, { "bool i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdx, "i" + oMtd:cDocNM, "hb_stornl" } )
aadd( oMtd:aPreN, { "bool i" + oMtd:cDocNM + " = 0;", oMtd:nHBIdxN, "i" + oMtd:cDocNM, "hb_stornl" } )
oArg:cBody := "&i" + oMtd:cDocNM
oArg:cBodyN := "&i" + oMtd:cDocNM
oArg:cDoc := "@l" + oMtd:cDocNM
oArg:cTypeHB := "L"
CASE oArg:cCast == "bool"
oArg:cBody := "hb_parl( " + cHBIdx + " )"
oArg:cBodyN := "hb_parl( " + cHBIdxN + " )"
oArg:cDoc := "l" + oMtd:cDocNM
oArg:cTypeHB := "L"
CASE oArg:cCast == "QString"
oArg:cBody := "hb_parstr_utf8( " + cHBIdx + ", &pText, NULL )"
oArg:cBodyN := "hb_parstr_utf8( " + cHBIdxN + ", &pText, NULL )"
oArg:cDoc := "c" + oMtd:cDocNM // oArg:cCast - W R O N G
oArg:cTypeHB := "C"
CASE oArg:cCast == "FT_Face"
oArg:cBody := "hbqt_par_FT_Face( " + cHBIdx + " )"
oArg:cBodyN := "hbqt_par_FT_Face( " + cHBIdxN + " )"
oArg:cDoc := "c" + oMtd:cDocNM
oArg:cTypeHB := "C"
CASE oArg:cCast == "QIcon"
cRef := "QIcon"
s := "*hbqt_par_QIcon( " + cHBIdx + " )"
sN := "*hbqt_par_QIcon( " + cHBIdxN + " )"
oArg:cBody := "( HB_ISCHAR( " + cHBIdx + " ) ? " + "QIcon( hbqt_par_QString( " + cHBIdx + " ) )" + " : " + s + ")"
oArg:cBodyN := "( HB_ISCHAR( " + cHBIdxN + " ) ? " + "QIcon( hbqt_par_QString( " + cHBIdxN + " ) )" + " : " + sN + ")"
oArg:cDoc := "co" + oArg:cCast //oMtd:cDocNM // "p"
oArg:cTypeHB := "CO" // "PCO"
CASE oArg:lFar
cRef := oArg:cCast
oArg:cBody := "hbqt_par_" + oArg:cCast + "( " + cHBIdx + " )"
oArg:cBodyN := "hbqt_par_" + oArg:cCast + "( " + cHBIdxN + " )"
oArg:cDoc := "o" + oArg:cCast //oMtd:cDocNM
oArg:cTypeHB := "O" // "PO"
CASE oArg:lAnd .AND. oArg:lConst
cRef := oArg:cCast
s := "*hbqt_par_" + oArg:cCast + "( " + cHBIdx + " )"
sN := "*hbqt_par_" + oArg:cCast + "( " + cHBIdxN + " )"
IF !empty( oArg:cDefault ) .and. ( "(" $ oArg:cDefault )
oArg:cBody := "( HB_ISOBJECT( " + cHBIdx + " ) ? " + s + " : " + oArg:cDefault + " )"
oArg:cBodyN := "( HB_ISOBJECT( " + cHBIdxN + " ) ? " + sN + " : " + oArg:cDefault + " )"
ELSE
oArg:cBody := s
oArg:cBodyN := sN
ENDIF
oArg:cDoc := "o" + oArg:cCast //oMtd:cDocNM
oArg:cTypeHB := "O" //"PO"
@@ -2432,17 +2625,20 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
CASE oArg:lAnd
cRef := oArg:cCast
oArg:cBody := "*hbqt_par_" + oArg:cCast + "( " + cHBIdx + " )"
oArg:cBodyN := "*hbqt_par_" + oArg:cCast + "( " + cHBIdxN + " )"
oArg:cDoc := "o" + oArg:cCast //oMtd:cDocNM //p
oArg:cTypeHB := "O" //"PO"
CASE oArg:cCast == "QChar"
cRef := oArg:cCast
oArg:cBody := "*hbqt_par_" + oArg:cCast + "( " + cHBIdx + " )"
oArg:cBodyN := "*hbqt_par_" + oArg:cCast + "( " + cHBIdxN + " )"
oArg:cDoc := "o" + oArg:cCast //oMtd:cDocNM
oArg:cTypeHB := "O" //"PO"
OTHERWISE
oArg:cBody := "" /* Just in case */
oArg:cBodyN := "" /* Just in case */
oArg:cDoc := ""
oArg:cTypeHB := ""
@@ -2451,6 +2647,7 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
hbqtgen_AddRef( ::hRef, cRef )
oMtd:cParas += oArg:cBody + ", "
oMtd:cParasN += oArg:cBodyN + ", "
oMtd:cDocs += oArg:cDoc + ", "
NEXT
ENDIF
@@ -2476,11 +2673,19 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
oMtd:cParas := substr( oMtd:cParas, 1, len( oMtd:cParas ) - 2 )
oMtd:cDocs := substr( oMtd:cDocs , 1, len( oMtd:cDocs ) - 2 )
ENDIF
IF right( oMtd:cParasN, 2 ) == ", "
oMtd:cParasN := substr( oMtd:cParasN, 1, len( oMtd:cParasN ) - 2 )
ENDIF
::buildCppCode( oMtd )
HB_SYMBOL_UNUSED( cHBIdxN )
HB_SYMBOL_UNUSED( sN )
RETURN oMtd:lValid
/*----------------------------------------------------------------------*/
STATIC PROCEDURE hbqtgen_AddRef( hRef, cRef )
IF ! Empty( cRef ) .AND. !( ">" $ cRef ) .AND. !( cRef $ "uchar|QString|QRgb|Bool|char" )
@@ -2492,100 +2697,124 @@ STATIC PROCEDURE hbqtgen_AddRef( hRef, cRef )
/*----------------------------------------------------------------------*/
METHOD HbQtSource:buildCppCode( oMtd )
LOCAL oRet := oMtd:oRet
LOCAL cPara := oMtd:cParas
LOCAL oRet := oMtd:oRet
LOCAL cPara := oMtd:cParas
LOCAL cParaN := oMtd:cParasN
LOCAL cRef
oMtd:cWdg := "hbqt_par_" + ::cQtObject + "( 1 )->"
oMtd:cParas := iif( oMtd:isVariable(), "", "( " + oMtd:cParas + " )" )
oMtd:cParasN := iif( oMtd:isVariable(), "", "( " + oMtd:cParasN + " )" )
oMtd:cCmn := oMtd:cWdg + oMtd:cFun + oMtd:cParas
oMtd:cCmnN := "( p )->" + oMtd:cFun + oMtd:cParasN
oMtd:cDocNMRet := HBQTGEN_THIS_PROPER( oRet:cName )
DO CASE
CASE oMtd:isConstructor
oMtd:cCmd := "hb_retptrGC( hbqt_gcAllocate_" + ::cQtObject + "( new " + oRet:cCast + "( " + cPara + " ), true ) )"
oMtd:cCmdN := "hb_retptrGC( hbqt_gcAllocate_" + ::cQtObject + "( new " + oRet:cCast + "( " + cParaN + " ), true ) )"
oMtd:cPrgRet := "o" + ::cQtObject // "p"
CASE "<" $ oRet:cCast
DO CASE
CASE ! ( "QList" $ oRet:cCast )
oMtd:cCmd := ""
oMtd:cCmdN := ""
oMtd:cPrgRet := ""
CASE "::" $ oRet:cCast
oMtd:cCmd := ""
oMtd:cCmdN := ""
oMtd:cPrgRet := ""
CASE "QPair" $ oRet:cCast
oMtd:cCmd := ""
oMtd:cCmdN := ""
oMtd:cPrgRet := ""
CASE "<T>" $ oRet:cCast
oMtd:cCmd := ""
oMtd:cCmdN := ""
oMtd:cPrgRet := ""
OTHERWISE
cRef := "QList"
oMtd:cCmd := "hb_retptrGC( hbqt_gcAllocate_QList( new " + oRet:cCast + "( " + oMtd:cCmn + " ), true ) )"
oMtd:cCmdN := "hb_retptrGC( hbqt_gcAllocate_QList( new " + oRet:cCast + "( " + oMtd:cCmnN + " ), true ) )"
oMtd:cPrgRet := "o" + oMtd:cDocNMRet
ENDCASE
CASE oRet:cCast == "T"
/* TOFIX: Such code is not valid and should never be generated [vszakats] */
oMtd:cCmd := "hb_retptr( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retptr( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "p" + oMtd:cDocNMRet
CASE oRet:cCast == "void"
oMtd:cCmd := oMtd:cCmn
oMtd:cCmdN := oMtd:cCmnN
oMtd:cPrgRet := "NIL"
CASE oRet:cCast $ ::cInt
oMtd:cCmd := "hb_retni( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retni( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "n" + oMtd:cDocNMRet
CASE oRet:cCast $ ::cIntLong
oMtd:cCmd := "hb_retnl( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retnl( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "n" + oMtd:cDocNMRet
CASE oRet:cCast $ ::cIntLongLong
oMtd:cCmd := "hb_retnint( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retnint( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "n" + oMtd:cDocNMRet
CASE oRet:cCast $ "double,qreal,float"
oMtd:cCmd := "hb_retnd( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retnd( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "n" + oMtd:cDocNMRet
CASE "::" $ oRet:cCast
oMtd:cCmd := "hb_retni( ( " + oRet:cCast + " ) " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retni( ( " + oRet:cCast + " ) " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "n" + oMtd:cDocNMRet
CASE oRet:cCast == "bool"
oMtd:cCmd := "hb_retl( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retl( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "l" + oMtd:cDocNMRet
CASE oRet:cCast == "char" .AND. oRet:lFar
oMtd:cCmd := "hb_retc( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retc( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "c" + oMtd:cDocNMRet
CASE oRet:cCast == "char"
oMtd:cCmd := "hb_retni( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retni( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "c" + oMtd:cDocNMRet
CASE oRet:cCast == "QString"
oMtd:cCmd := "hb_retstr_utf8( " + oMtd:cCmn + ".toUtf8().data()" + " )"
oMtd:cCmdN := "hb_retstr_utf8( " + oMtd:cCmnN + ".toUtf8().data()" + " )"
oMtd:cPrgRet := "c" + oMtd:cDocNMRet
CASE oRet:cCast == "FT_Face"
oMtd:cCmd := "hb_retc( " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retc( " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "c" + oMtd:cDocNMRet
CASE oRet:lFar .AND. ( oRet:cCast $ "uchar" )
oMtd:cCmd := "hb_retc( ( const char * ) " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retc( ( const char * ) " + oMtd:cCmnN + " )"
oMtd:cPrgRet := "c" + oMtd:cDocNMRet //p
CASE oRet:lFar .AND. ! oRet:lConst
IF hbqtgen_isAqtObject( oRet:cCast )
cRef := oRet:cCast
oMtd:cCmd := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmn, .F. )
oMtd:cCmdN := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmnN, .F. )
ELSE
/* TOFIX: Such code is not valid and should never be generated [vszakats] */
oMtd:cCmd := "hb_retptr( ( " + oRet:cCast + "* ) " + oMtd:cCmn + " )"
oMtd:cCmdN := "hb_retptr( ( " + oRet:cCast + "* ) " + oMtd:cCmnN + " )"
ENDIF
oMtd:cPrgRet := "o" + oMtd:cDocNMRet
@@ -2595,6 +2824,7 @@ METHOD HbQtSource:buildCppCode( oMtd )
"Abstract" $ oRet:cCast
cRef := oRet:cCast
oMtd:cCmd := "hb_retptrGC( hbqt_gcAllocate_" + oRet:cCast + "( ( void * ) " + oMtd:cCmn + ", false ) )"
oMtd:cCmdN := "hb_retptrGC( hbqt_gcAllocate_" + oRet:cCast + "( ( void * ) " + oMtd:cCmnN + ", false ) )"
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
CASE hbqtgen_isAqtObject( oRet:cCast ) .AND. ;
@@ -2603,6 +2833,7 @@ METHOD HbQtSource:buildCppCode( oMtd )
oRet:lVirt
cRef := oRet:cCast
oMtd:cCmd := "hb_retptrGC( hbqt_gcAllocate_" + oRet:cCast + "( ( void * ) " + oMtd:cCmn + ", false ) )"
oMtd:cCmdN := "hb_retptrGC( hbqt_gcAllocate_" + oRet:cCast + "( ( void * ) " + oMtd:cCmnN + ", false ) )"
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
CASE hbqtgen_isAqtObject( oRet:cCast ) .AND. ;
@@ -2611,21 +2842,25 @@ METHOD HbQtSource:buildCppCode( oMtd )
oRet:lConstL
cRef := oRet:cCast
oMtd:cCmd := hbqtgen_Get_Command_1( oRet:cCast, oMtd:cCmn )
oMtd:cCmdN := hbqtgen_Get_Command_1( oRet:cCast, oMtd:cCmnN )
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
CASE oRet:lAnd .AND. oRet:lConst
cRef := oRet:cCast
oMtd:cCmd := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmn )
oMtd:cCmdN := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmnN )
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
CASE oRet:lConst
cRef := oRet:cCast
oMtd:cCmd := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmn )
oMtd:cCmdN := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmnN )
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
CASE oRet:lAnd
cRef := oRet:cCast
oMtd:cCmd := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmn )
oMtd:cCmdN := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmnN )
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
OTHERWISE
@@ -2633,11 +2868,13 @@ METHOD HbQtSource:buildCppCode( oMtd )
IF hbqtgen_isAqtObject( oRet:cCast )
cRef := oRet:cCast
oMtd:cCmd := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmn )
oMtd:cCmdN := hbqtgen_Get_Command( oRet:cCast, oMtd:cCmnN )
oMtd:cPrgRet := "o" + oMtd:cDocNMRet //p
ELSE
oMtd:cError := "<<< " + oMtd:cProto + " | " + oRet:cCast + " >>>"
oMtd:cCmd := ""
oMtd:cCmdN := ""
oMtd:cPrgRet := ""
//OutStd( oMtd:cError + hb_eol() )
@@ -2647,6 +2884,7 @@ METHOD HbQtSource:buildCppCode( oMtd )
/* Lists to be disabled in parameters - TODO */
IF "<" $ oMtd:cPar
oMtd:cCmd := ""
oMtd:cCmdN := ""
ENDIF
IF ( oMtd:lValid := ! Empty( oMtd:cCmd ) )
@@ -2684,13 +2922,16 @@ CREATE CLASS HbqtMethod
DATA cRet INIT ""
DATA cParas INIT ""
DATA cParasN INIT ""
DATA cDocs INIT ""
DATA cDoc INIT "" // Qt_QWidget_setSize_1( nWidth, nHeight ) -> NIL
DATA cError INIT ""
DATA cCmd INIT ""
DATA cCmdN INIT ""
DATA cCmn INIT ""
DATA cCmnN INIT ""
DATA cDocNM INIT ""
DATA cDocNMRet INIT ""
DATA cPrgRet INIT ""
@@ -2698,7 +2939,9 @@ CREATE CLASS HbqtMethod
DATA cHBFunc INIT ""
DATA aPre INIT {}
DATA aPreN INIT {}
DATA nHBIdx
DATA nHBIdxN
DATA nArgQCast INIT 0 // First argument position of type Q*Class
DATA nArgHBObj INIT 0 // First argument position of type Q*Class
@@ -2735,6 +2978,7 @@ CREATE CLASS HbqtArgument
DATA cName
DATA cCast INIT ""
DATA cBody
DATA cBodyN
DATA cDoc
DATA lRet INIT .f.
@@ -2900,7 +3144,7 @@ STATIC FUNCTION hbqtgen_BuildCopyrightText( nMode, cQtVer )
aadd( txt_, "/* WARNING: Automatically generated source file. DO NOT EDIT! */" )
aadd( txt_, "" )
aadd( txt_, "/* Harbour Project QT wrapper" )
aadd( txt_, " Copyright 2009-2010 Pritpal Bedi <bedipritpal@hotmail.com>" )
aadd( txt_, " Copyright 2009-2011 Pritpal Bedi <bedipritpal@hotmail.com>" )
aadd( txt_, " www - http://harbour-project.org */" )
aadd( txt_, "" )
IF nMode == 0

View File

@@ -59,7 +59,7 @@ bool insertRow ( int row, const QModelIndex & parent = QModelIndex() )
virtual bool insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
virtual QMap<int, QVariant> itemData ( const QModelIndex & index ) const
// virtual QModelIndexList match ( const QModelIndex & start, int role, const QVariant & value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags( Qt::MatchStartsWith | Qt::MatchWrap ) ) const
// virtual QMimeData * mimeData ( const QModelIndexList & indexes ) const
// virtual QMimeData * mimeData ( const QModelIndexList & indexes ) const [*A=1*]
virtual QStringList mimeTypes () const
virtual QModelIndex parent ( const QModelIndex & index ) const = 0
bool removeColumn ( int column, const QModelIndex & parent = QModelIndex() )

View File

@@ -63,7 +63,7 @@ void insertStretch ( int index, int stretch = 1 )
qreal itemSpacing ( int index ) const
Qt::Orientation orientation () const
virtual void removeAt ( int index )
void removeItem ( QGraphicsLayoutItem * item )
void removeItem ( QGraphicsLayoutItem * item ) [*A=1*]
void setAlignment ( QGraphicsLayoutItem * item, Qt::Alignment alignment )
void setItemSpacing ( int index, qreal spacing )
void setOrientation ( Qt::Orientation orientation )

View File

@@ -50,19 +50,19 @@ virtual QSize maximumSize () const
QWidget * menuBar () const
virtual QSize minimumSize () const
QWidget * parentWidget () const
void removeItem ( QLayoutItem * item )
void removeWidget ( QWidget * widget )
void removeItem ( QLayoutItem * item ) [*A=1*]
void removeWidget ( QWidget * widget ) [*A=1*]
bool setAlignment ( QWidget * w, Qt::Alignment alignment )
void setAlignment ( Qt::Alignment alignment )
bool setAlignment ( QLayout * l, Qt::Alignment alignment )
void setContentsMargins ( int left, int top, int right, int bottom )
void setEnabled ( bool enable )
void setMenuBar ( QWidget * widget )
void setMenuBar ( QWidget * widget ) [*D=1*]
void setSizeConstraint ( SizeConstraint )
void setSpacing ( int )
SizeConstraint sizeConstraint () const
int spacing () const
virtual QLayoutItem * takeAt ( int index ) = 0
virtual QLayoutItem * takeAt ( int index ) = 0 [*A=1*]
void update ()
QSize closestAcceptableSize ( const QWidget * widget, const QSize & size )

View File

@@ -53,7 +53,7 @@ Icon icon () const
QPixmap iconPixmap () const
QString informativeText () const
void open ( QObject * receiver, const char * member )
void removeButton ( QAbstractButton * button )
void removeButton ( QAbstractButton * button ) [*A=1*]
void setDefaultButton ( QPushButton * button )
void setDefaultButton ( StandardButton button )
void setDetailedText ( const QString & text )

View File

@@ -35,9 +35,9 @@ Qt::Alignment alignment () const
void ensureVisible ( int x, int y, int xmargin = 50, int ymargin = 50 )
void ensureWidgetVisible ( QWidget * childWidget, int xmargin = 50, int ymargin = 50 )
void setAlignment ( Qt::Alignment )
void setWidget ( QWidget * widget )
void setWidget ( QWidget * widget ) [*D=1*]
void setWidgetResizable ( bool resizable )
QWidget * takeWidget ()
QWidget * takeWidget () [*A=1*]
QWidget * widget () const
bool widgetResizable () const
</PROTOS>

View File

@@ -51,8 +51,8 @@ enum ItemType { Type, UserType }
</ENUMS>
<PROTOS>
void addChild ( QTreeWidgetItem * child ) [*D=1*]
void addChildren ( const QList<QTreeWidgetItem *> & children )
void addChild ( QTreeWidgetItem * child ) [*D=1*]
void addChildren ( const QList<QTreeWidgetItem *> & children ) [*D=1*]
QBrush background ( int column ) const
Qt::CheckState checkState ( int column ) const
QTreeWidgetItem * child ( int index ) const
@@ -75,7 +75,7 @@ bool isHidden () const
bool isSelected () const
QTreeWidgetItem * parent () const
virtual void read ( QDataStream & in )
void removeChild ( QTreeWidgetItem * child )
void removeChild ( QTreeWidgetItem * child ) [*A=1*]
void setBackground ( int column, const QBrush & brush )
void setCheckState ( int column, Qt::CheckState state )
void setChildIndicatorPolicy ( QTreeWidgetItem::ChildIndicatorPolicy policy )
@@ -98,8 +98,8 @@ void setWhatsThis ( int column, const QString & whatsThis )
QSize sizeHint ( int column ) const
void sortChildren ( int column, Qt::SortOrder order )
QString statusTip ( int column ) const
QTreeWidgetItem * takeChild ( int index ) [*A=1*]
QList<QTreeWidgetItem *> takeChildren ()
QTreeWidgetItem * takeChild ( int index ) [*A=1*]
QList<QTreeWidgetItem *> takeChildren () [*A=1*]
QString text ( int column ) const
int textAlignment ( int column ) const
QString toolTip ( int column ) const