diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 4e2c09f473..d9eb751856 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,17 @@ The license applies to all entries newer than 2009-04-28. */ +2011-03-09 10:51 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * contrib/hbqt/hbmk2_qt.hbs + * contrib/hbqt/qtcore/hbqt_pointer.cpp + % Deleted HB_FUNC_EXTERN for locally defined function. Pls review me. + ! Fixed formatting in generated code. + + Added local __instantiate() function. Commented yet. + % Converted method names to uppercase on invocation. + + Added QUESTION about 'return;' in HB_() functions. + "INSTANCE" method is not called the first + time this function is called. + 2011-03-09 09:30 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbqt/qtgui/hbqtgui.hbx * contrib/hbqt/qtwebkit/hbqtwebkit.hbx diff --git a/harbour/contrib/hbqt/hbmk2_qt.hbs b/harbour/contrib/hbqt/hbmk2_qt.hbs index b2a65d5d36..c55928e004 100644 --- a/harbour/contrib/hbqt/hbmk2_qt.hbs +++ b/harbour/contrib/hbqt/hbmk2_qt.hbs @@ -1378,8 +1378,8 @@ METHOD HbQtSource:build() aadd( aLine, "HB_FUNC_EXTERN( " + uQtObject + " );" ) aadd( aLine, "" ) aadd( aLine, "HB_INIT_SYMBOLS_BEGIN( __HBQT_CLS_" + uQtObject + "__ )" ) - // aadd( aLine, ' { "' + uQtObject + '", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( ' + uQtObject + ' ) }, NULL },' ) - aadd( aLine, ' { "HB_' + uQtObject + '", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( HB_' + uQtObject + ' ) }, NULL }' ) +// aadd( aLine, ' { "' + uQtObject + '", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( ' + uQtObject + ' ) }, NULL },' ) + aadd( aLine, ' { "HB_' + uQtObject + '", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( HB_' + uQtObject + ' ) }, NULL }' ) aadd( aLine, "HB_INIT_SYMBOLS_END( __HBQT_CLS_" + uQtObject + "__ )" ) aadd( aLine, "" ) @@ -1389,32 +1389,54 @@ METHOD HbQtSource:build() n := ascan( ::cls_, {|e_| left( lower( e_[ 1 ] ), 7 ) == "inherit" .and. !empty( e_[ 2 ] ) } ) s := upper( "HbQtObjectHandler" + iif( n > 0, ", " + strtran( ::cls_[ n, 2 ], "Q", "HB_Q" ), "" ) ) FOR EACH k IN hb_aTokens( s, "," ) - aadd( aLine, "HB_FUNC_EXTERN( " + upper(alltrim(k)) + " );" ) + aadd( aLine, "HB_FUNC_EXTERN( " + upper( alltrim( k ) ) + " );" ) NEXT - aadd( aLine, "HB_FUNC_EXTERN( HB_" + uQtObject + " );" ) +// aadd( aLine, "HB_FUNC_EXTERN( HB_" + uQtObject + " );" ) aadd( aLine, "" ) +#if 0 + aadd( aLine, "static PHB_ITEM __instantiate()" ) + aadd( aLine, "{" ) + aadd( aLine, " static PHB_ITEM s_oClass = NULL;" ) + aadd( aLine, " if( s_oClass == NULL )" ) + aadd( aLine, " {" ) + aadd( aLine, " s_oClass = hb_itemNew( NULL );" ) + FOR EACH k IN hb_aTokens( s, "," ) + aadd( aLine, " HB_FUNC_EXEC( " + Upper( AllTrim( k ) ) + " );" ) + NEXT + aadd( aLine, ' PHB_ITEM oClass = hbqt_defineClassBegin( "' + uQtObject + '", s_oClass, "' + s + '" );' ) + aadd( aLine, " if( oClass )" ) + aadd( aLine, " {" ) + aadd( aLine, " s_registerMethods( hb_objGetClass( hb_stackReturnItem() ) );" ) + aadd( aLine, " hbqt_defineClassEnd( s_oClass, oClass );" ) + aadd( aLine, " }" ) + aadd( aLine, " return;" ) /* QUESTION: Is this intended here? */ + aadd( aLine, " }" ) + aadd( aLine, ' return s_oClass;' ) + aadd( aLine, "}" ) + aadd( aLine, "" ) +#endif aadd( aLine, "HB_FUNC( HB_" + uQtObject + " )" ) aadd( aLine, "{" ) - aadd( aLine, " static PHB_ITEM s_oClass = NULL;" ) - aadd( aLine, " if( s_oClass == NULL )" ) - aadd( aLine, " {" ) - aadd( aLine, " s_oClass = hb_itemNew( NULL );" ) + aadd( aLine, " static PHB_ITEM s_oClass = NULL;" ) + aadd( aLine, " if( s_oClass == NULL )" ) + aadd( aLine, " {" ) + aadd( aLine, " s_oClass = hb_itemNew( NULL );" ) FOR EACH k IN hb_aTokens( s, "," ) - aadd( aLine, " HB_FUNC_EXEC( " + upper( alltrim( k ) ) + " );" ) + aadd( aLine, " HB_FUNC_EXEC( " + Upper( AllTrim( k ) ) + " );" ) NEXT - aadd( aLine, ' PHB_ITEM oClass = hbqt_defineClassBegin( "' + uQtObject + '", s_oClass, "' + s + '" );' ) - aadd( aLine, " if( oClass )" ) - aadd( aLine, " {" ) - aadd( aLine, " s_registerMethods( hb_objGetClass( hb_stackReturnItem() ) );" ) - aadd( aLine, " hbqt_defineClassEnd( s_oClass, oClass );" ) - aadd( aLine, " }" ) - aadd( aLine, " return;" ) - aadd( aLine, " }" ) - aadd( aLine, ' hb_objSendMsg( s_oClass, "Instance", 0 );' ) + aadd( aLine, ' PHB_ITEM oClass = hbqt_defineClassBegin( "' + uQtObject + '", s_oClass, "' + s + '" );' ) + aadd( aLine, " if( oClass )" ) + aadd( aLine, " {" ) + aadd( aLine, " s_registerMethods( hb_objGetClass( hb_stackReturnItem() ) );" ) + aadd( aLine, " hbqt_defineClassEnd( s_oClass, oClass );" ) + aadd( aLine, " }" ) + aadd( aLine, " return;" ) /* QUESTION: Is this intended here? */ + aadd( aLine, " }" ) + aadd( aLine, ' hb_objSendMsg( s_oClass, "INSTANCE", 0 );' ) aadd( aLine, "}" ) - + aadd( aLine, "" ) FOR EACH s IN ::hRef IF s:__enumKey() == "QList" /* TOFIX: Ugly hack */ @@ -1434,7 +1456,7 @@ METHOD HbQtSource:build() /* Insert user defined code - INCLUDEs */ aadd( aLine, "#include " ) IF !empty( ::code_ ) - aeval( ::code_, {|e| aadd( aLine, strtran( e, chr( 13 ) ) ) } ) + aeval( ::code_, {| e | aadd( aLine, StrTran( e, chr( 13 ) ) ) } ) aadd( aLine, "" ) ENDIF diff --git a/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp b/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp index d78a0606c4..a5885bfc2b 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp @@ -451,7 +451,7 @@ PHB_ITEM hbqt_defineClassBegin( const char* szClsName, PHB_ITEM s_oClass, const static PHB_DYNS s___HBCLASS = NULL; char * pszParentClsBuffer = hb_strdup( szParentClsStr ); - char* szSingleClsName; + char * szSingleClsName; if( s___HBCLASS == NULL ) s___HBCLASS = hb_dynsymGetCase( "HBCLASS" ); @@ -491,7 +491,7 @@ PHB_ITEM hbqt_defineClassBegin( const char* szClsName, PHB_ITEM s_oClass, const hb_itemPutSymbol( pSym_ClsFunc, hb_dynsymGetCase( test )->pSymbol ); - hb_objSendMsg( hb_stackReturnItem(), "New", 3, pClsName, pSuper, pSym_ClsFunc ); + hb_objSendMsg( hb_stackReturnItem(), "NEW", 3, pClsName, pSuper, pSym_ClsFunc ); oClass = hb_itemNew( hb_stackReturnItem() ); @@ -499,8 +499,8 @@ PHB_ITEM hbqt_defineClassBegin( const char* szClsName, PHB_ITEM s_oClass, const hb_itemRelease( pSuper ); hb_itemRelease( pClsName ); - hb_objSendMsg( oClass, "Create", 0 ); - hb_objSendMsg( oClass, "Instance", 0 ); + hb_objSendMsg( oClass, "CREATE", 0 ); + hb_objSendMsg( oClass, "INSTANCE", 0 ); } return oClass;