From 847fd913ab2eab04c3b2f4c428c53668eec6b358 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Fri, 13 Jul 2012 23:04:02 +0000 Subject: [PATCH] 2012-07-13 15:57 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtgui/hbqtgui.ch * contrib/hbqt/hbmk2_qt.hb + Applied: patch received from Ryszard Glab ( with my fixes of one overlook ). fixes: - some issues with QApplication:translation method - it allows for binding QAction to a window for wchich the action was deined, for example, if SomeDialog.ui file has actions defined then virtual methods: _triggered is added to UI_SomeDialog class. Thanks Ryszard, it is pleasure to see you on-board again. --- harbour/ChangeLog | 13 ++ harbour/contrib/hbqt/hbmk2_qt.hb | 211 +++++++++++++++++++++----- harbour/contrib/hbqt/qtgui/hbqtgui.ch | 24 +++ 3 files changed, 206 insertions(+), 42 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 734429f254..a3edf41318 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,19 @@ The license applies to all entries newer than 2009-04-28. */ +2012-07-13 15:57 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbqt/qtgui/hbqtgui.ch + * contrib/hbqt/hbmk2_qt.hb + + Applied: patch received from Ryszard Glab ( with my fixes of one overlook ). + fixes: + - some issues with QApplication:translation method + - it allows for binding QAction to a window for wchich the action + was deined, for example, + if SomeDialog.ui file has actions defined then virtual methods: + _triggered is added to UI_SomeDialog class. + + Thanks Ryszard, it is pleasure to see you on-board again. + 2012-07-12 23:33 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/idebrowse.prg * contrib/hbide/ideeditor.prg diff --git a/harbour/contrib/hbqt/hbmk2_qt.hb b/harbour/contrib/hbqt/hbmk2_qt.hb index 6721158c27..2ecdbd054c 100644 --- a/harbour/contrib/hbqt/hbmk2_qt.hb +++ b/harbour/contrib/hbqt/hbmk2_qt.hb @@ -32,6 +32,7 @@ #include "directry.ch" #include "hbclass.ch" +#include "error.ch" #define I_( x ) hb_i18n_gettext( x ) @@ -573,7 +574,7 @@ STATIC FUNCTION uic_to_prg( hbmk, cFileNameSrc, cFileNameDst, cName ) #define HBQTUI_STRINGIFY( cStr ) '"' + cStr + '"' #define HBQTUI_PAD_30( cStr ) PadR( cStr, Max( Len( cStr ), 35 ) ) -#define HBQTUI_STRIP_SQ( cStr ) StrTran( StrTran( StrTran( StrTran( s, "[", " " ), "]", " " ), "\n", " " ), Chr( 10 ), " " ) +#define HBQTUI_STRIP_SQ( cStr ) StrTran( StrTran( StrTran( StrTran( cStr, "[", " " ), "]", " " ), "\n", " " ), Chr( 10 ), " " ) STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) LOCAL s @@ -588,6 +589,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) LOCAL cCmd LOCAL aReg LOCAL aLinesPRG + LOCAL aMethodCalls := { { "QObject_connect( ", {| s | hbqtui_qobject_connect( s ) } } } LOCAL regEx := hb_regexComp( "\bQ[A-Za-z_]+ \b" ) @@ -595,6 +597,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) LOCAL aWidgets := {} LOCAL aCommands := {} + LOCAL aCalls := {} lCreateFinished := .F. @@ -623,13 +626,18 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) ENDIF NEXT + FOR EACH s IN aLines + IF ! Empty( s ) + hbqtui_replaceConstants( @s ) /* Replace Qt::* with Harbour constants */ + ENDIF + NEXT + FOR EACH s IN aLines IF ! Empty( s ) /* Replace Qt::* with actual values */ - hbqtui_replaceConstants( @s ) - hbqtui_QAppTranslate( @s ) +// hbqtui_replaceConstants( @s ) IF "setupUi" $ s lCreateFinished := .T. @@ -638,6 +646,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) /* It is the test for main widget's objectName, leave it. */ ELSEIF Left( s, 1 ) == "Q" .AND. ! lCreateFinished .AND. ( n := At( "*", s ) ) > 0 + HB_SYMBOL_UNUSED( n ) /* We will deal later - just skip */ ELSEIF hbqtui_notAString( s ) .AND. ! Empty( aReg := hb_regex( regEx, s ) ) @@ -654,13 +663,16 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) ELSEIF hbqtui_isNonImplementedMethod( s ) /* Do nothing */ + ELSEIF ( n := hbqtui_isSupportedMethodCall( s, aMethodCalls ) ) > 0 + AAdd( aCalls, Eval( aMethodCalls[ n ][ 2 ], s ) ) + ELSEIF ! Empty( cText := hbqtui_pullSetToolTip( aLines, s:__enumIndex() ) ) n := At( "->", cText ) cNam := AllTrim( SubStr( cText, 1, n - 1 ) ) cCmd := hbqtui_formatCommand( SubStr( cText, n + 2 ), .T., aWidgets ) - AAdd( aCommands, { cNam, cCmd } ) + AAdd( aCommands, { cNam, hbqtui_pullTranslate( cCmd ) } ) - ELSEIF ! Empty( cText := hbqui_pullText( aLines, s:__enumIndex() ) ) + ELSEIF ! Empty( cText := hbqtui_pullText( aLines, s:__enumIndex() ) ) n := At( "->", cText ) cNam := AllTrim( SubStr( cText, 1, n - 1 ) ) cCmd := hbqtui_formatCommand( SubStr( cText, n + 2 ), .T., aWidgets ) @@ -688,7 +700,7 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) cNam := SubStr( s, 1, n - 1 ) cCmd := hbqtui_formatCommand( SubStr( s, n + 2 ), .F., aWidgets ) cCmd := hbqtui_setObjects( cCmd, aWidgets ) - AAdd( aCommands, { cNam, cCmd } ) + AAdd( aCommands, { cNam, hbqtui_pullTranslate( cCmd ) } ) ELSEIF ( n := At( "= new", s ) ) > 0 IF ( n1 := At( "*", s ) ) > 0 .AND. n1 < n @@ -719,12 +731,12 @@ STATIC FUNCTION hbqtui_gen_prg( cFile, cFuncName ) AAdd( aLinesPRG, " RETURN " + StrTran( cFuncName, "hbqtui_", "ui_" ) + "():new( oParent )" ) AAdd( aLinesPRG, "" ) - hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aLinesPRG ) + hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aCalls, aLinesPRG ) RETURN aLinesPRG -STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aLinesPRG ) - LOCAL item, cClass, cNam, cCmd, s +STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aCalls, aLinesPRG ) + LOCAL item, cClass, cNam, cCmd cClass := strtran( cFuncName, "hbqtui_", "ui_" ) @@ -738,10 +750,16 @@ STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aL NEXT AAdd( aLinesPRG, "" ) AAdd( aLinesPRG, " METHOD init( oParent )" ) - AAdd( aLinesPRG, " METHOD destroy() INLINE ::oWidget:setParent( QWidget() )" ) + AAdd( aLinesPRG, " METHOD destroy() INLINE ::oWidget:setParent( QWidget() )" ) AAdd( aLinesPRG, "" ) AAdd( aLinesPRG, " ERROR HANDLER __OnError( ... )" ) AAdd( aLinesPRG, "" ) + FOR EACH item IN aWidgets + IF At( "QAction", item[ 1 ] ) > 0 + AAdd( aLinesPRG, " MESSAGE " + PadR( item[ 2 ] + "_triggered()", max( 38, Len( item[ 2 ] + "_triggered()" ) ) ) + " VIRTUAL" ) + ENDIF + NEXT + AAdd( aLinesPRG, "" ) AAdd( aLinesPRG, "ENDCLASS" ) AAdd( aLinesPRG, "" ) AAdd( aLinesPRG, "" ) @@ -765,6 +783,7 @@ STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aL AAdd( aLinesPRG, " ::" + PadR( item[ 2 ], 34 ) + " := " + hbqtui_hashToObj( item[ 4 ] ) ) ELSE AAdd( aLinesPRG, " ::" + PadR( item[ 2 ], 34 ) + " := " + "::oWidget" ) + AAdd( aLinesPRG, "" ) ENDIF NEXT AAdd( aLinesPRG, "" ) @@ -776,32 +795,45 @@ STATIC FUNCTION hbqtui_buildClassCode( cFuncName, cMCls, aWidgets, aCommands, aL cCmd := StrTran( cCmd, "false", ".F." ) IF "setToolTip(" $ cCmd - s := hbqtui_pullToolTip( cCmd ) - AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setToolTip( [" + HBQTUI_STRIP_SQ( s ) + "] )" ) + AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_pullTranslate( cCmd ) ) ELSEIF "setPlainText(" $ cCmd - s := hbqtui_pullToolTip( cCmd ) - AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setPlainText( [" + HBQTUI_STRIP_SQ( s ) + "] )" ) + AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + cCmd ) ELSEIF "setStyleSheet(" $ cCmd - s := hbqtui_pullToolTip( cCmd ) - AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setStyleSheet( [" + HBQTUI_STRIP_SQ( s ) + "] )" ) + hbqtui_stripFront( @cCmd, "(" ) + hbqtui_stripRear( @cCmd, ")" ) + AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setStyleSheet( " + HBQTUI_STRIP_SQ( cCmd ) + " )" ) + + ELSEIF "setText(" $ cCmd + AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_pullTranslate( cCmd ) ) ELSEIF "setWhatsThis(" $ cCmd - s := hbqtui_pullToolTip( cCmd ) - AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": setWhatsThis( [" + HBQTUI_STRIP_SQ( s ) + "] )" ) + AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_pullTranslate( cCmd ) ) ELSEIF "header()->" $ cCmd /* TODO: how to handle : __qtreeviewitem->header()->setVisible( .F. ) */ - ELSEIF cCmd == "pPtr" /* Nothing TO DO */ - ELSE AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( cNam ) + ": " + hbqtui_hashToObj( cCmd ) ) ENDIF NEXT + AAdd( aLinesPRG, "" ) + + FOR EACH item IN aWidgets + IF item[ 1 ] == "QAction" + AAdd( aLinesPRG, " ::" + HBQTUI_PAD_30( item[ 2 ] ) + ": connect( " + '"triggered()", {|| ::' + item[ 2 ] + "_triggered() } )" ) + ENDIF + NEXT + + /* supported method calls */ + AAdd( aLinesPRG, "" ) + FOR EACH item IN aCalls + AAdd( aLinesPRG, " " + item ) + NEXT + AAdd( aLinesPRG, "" ) AAdd( aLinesPRG, " RETURN Self" ) AAdd( aLinesPRG, "" ) @@ -854,12 +886,6 @@ STATIC FUNCTION hbqtui_hashToObj( cCmd ) RETURN cCmd -STATIC FUNCTION hbqtui_QAppTranslate( cCmd ) - IF "QApplication_translate" $ cCmd - cCmd := hbqtui_pullTranslate( cCmd ) - ENDIF - RETURN cCmd - STATIC FUNCTION hbqtui_formatCommand( cCmd, lText, widgets ) LOCAL regDefine LOCAL aDefine @@ -874,14 +900,10 @@ STATIC FUNCTION hbqtui_formatCommand( cCmd, lText, widgets ) lText := .T. ENDIF -// cCmd := StrTran( cCmd, "QApplication_translate" , "q__tr" ) - cCmd := StrTran( cCmd, "QApplication::UnicodeUTF8", '"UTF8"' ) - cCmd := StrTran( cCmd, "QString()" , '""' ) - cCmd := StrTran( cCmd, "QSize(" , "QSize(" ) - cCmd := StrTran( cCmd, "QRect(" , "QRect(" ) + cCmd := StrTran( cCmd, "QString()", ' "" ' ) IF "::" $ cCmd - regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z_]+\b" ) + regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z0-9_]+\b" ) aDefine := hb_regex( regDefine, cCmd ) IF ! Empty( aDefine ) cCmd := StrTran( cCmd, "::", "_" ) /* Qt Defines - how to handle */ @@ -905,24 +927,90 @@ STATIC FUNCTION hbqtui_formatCommand( cCmd, lText, widgets ) STATIC FUNCTION hbqtui_pullTranslate( cCmd ) LOCAL n, n1, n2, n3, n4, cArgs, cText + LOCAL cName + LOCAL cEnd + LOCAL cDisamb + LOCAL oError - IF ( n := at( "QApplication_translate", cCmd ) ) > 0 + /* Examples: + object->setWindowTitle(QApplication_translate("DialogName", "[Dialog Title]\"\303\263Title\"", 0, QApplication_UnicodeUTF8)) + object->setWindowTitle(QApplication::translate("FormEnvironments", "Form", 0, QApplication::UnicodeUTF8)); + object->setToolTip(QString()); + object->setWhatsThis(QApplication::translate("FormEnvironments", "\n" + "\n" + "

HBIDE employes the concept of keeping everything tied together. It means all complier specific environments are kept together in a convinient way and applied as per need.

\n" + "

\n" + "

So here you view/edit all the environments you employ in your applications. At the time you will build the project, a list of stated environments will be presented to choose from.

\n" + "

\n" + "

This opens up the possibility to experiment with different compilers without re-opening the IDE or setting up the envvars manually.

", 0, QApplication::UnicodeUTF8)); + */ + + IF ( n := At( "QApplication_translate", cCmd ) ) > 0 n1 := hb_at( "(", cCmd, n ) n2 := hb_rat( ")", cCmd ) cArgs := SubStr( cCmd, n1 + 1, n2 - n1 - 2 ) + /* "DialogName", "[Dialog Title]\"\303\263Title\"", 0, QApplication_UnicodeUTF8 */ n3 := at( ",", cArgs ) - n4 := hb_at( ",", cArgs, n3 + 1 ) - cText := StrTran( AllTrim( SubStr( cArgs, n3 + 1, n4 - n3 - 2 ) ), '"' ) + cName := SubStr( cArgs, 2, n3 - 3 ) + cArgs := SubStr( cArgs, n3 + 1 ) + /* "[Dialog Title]\"\303\263Title\"", 0, QApplication_UnicodeUTF8 */ + IF ( n4 := At( "QApplication_UnicodeUTF8", cArgs ) ) > 0 + cEnd := SubStr( cArgs, n4 ) /* "QApplication_UnicodeUTF8" */ + ELSEIF ( n4 := At( "QApplication_CodecForTr", cArgs ) ) > 0 + cEnd := SubStr( cArgs, n4 ) /* "QApplication_CodecForTr" */ + ELSE + oError := ErrorNew() + oError:severity := ES_ERROR + oError:genCode := EG_ARG + oError:subSystem := "HBMK2" + oError:subCode := 1001 + oError:canRetry := .F. + oError:canDefault := .F. + oError:Args := cCmd + oError:operation := ProcName() + oError:Description := "Unsupported QT-encoding in QApplication:translate() call" + Eval( ErrorBlock(), oError ) + ENDIF - cCmd := SubStr( cCmd, 1, n - 1 ) + ' "' + cText + '" ' + ")" + IF ! Empty( cEnd ) + /* Known translation */ + cArgs := Left( cArgs, n4 - 1 ) + /* "[Dialog Title]\"\303\263Title\"", 0, */ + n4 := hb_RAt( ",", cArgs ) + cArgs := Left( cArgs, n4 - 1 ) + /* "[Dialog Title]\"\303\263Title\"", 0 */ + n4 := hb_RAt( ",", cArgs ) + cDisamb := AllTrim( SubStr( cArgs, n4 + 1 ) ) + IF cDisamb == "0" + cDisamb := '""' + ENDIF + cArgs := AllTrim( Left( cArgs, n4 - 1 ) ) + // cArgs := HB_STRDECODESCAPE( SubStr( cArgs, 2, Len( cArgs ) - 2 ) ) + + IF "DOCTYPE HTML PUBLIC" $ cArgs + cArgs := StrTran( cArgs, '\"', '"' ) + cArgs := StrTran( cArgs, '\n', " " ) + cArgs := StrTran( cArgs, '""' ) + cArgs := "[" + Substr( cArgs, 2, Len( cArgs ) - 2 ) + "]" + cText := ' QApplication():translate( "' + cName + '", ' + cArgs + ', ' + cDisamb + ', ' + cEnd + " )" + ELSE + cText := ' QApplication():translate( "' + cName + '", e' + cArgs + ', ' + cDisamb + ', ' + cEnd + " )" + ENDIF + /* Finally translate to CP used by application */ + cCmd := SubStr( cCmd, 1, n - 1 ) + cText + " )" + ENDIF ENDIF + RETURN cCmd STATIC FUNCTION hbqtui_isNonImplementedMethod( cString ) LOCAL cMethod, aMethods := {} - AAdd( aMethods, "setAccessibleName" ) + AAdd( aMethods, "setAccessibleName" ) /* Add other methods which could not been implemented in HbQt */ FOR EACH cMethod IN aMethods IF cMethod $ cString @@ -955,6 +1043,36 @@ STATIC FUNCTION hbqtui_occurs( cString, cCharToFind ) RETURN nCount +STATIC FUNCTION hbqtui_isSupportedMethodCall( cString, aMethodCalls ) + LOCAL aMethod + + FOR EACH aMethod IN aMethodCalls + IF aMethod[ 1 ] $ cString + RETURN aMethod:__enumIndex() + ENDIF + NEXT + + RETURN 0 + +STATIC FUNCTION hbqtui_qobject_connect( cString ) + LOCAL cCall + LOCAL n, n2, n4 + LOCAL aPar + + /* QObject::connect( buttonOK, SIGNAL( clicked() ), actionName, SLOT( trigger() ) ); */ + cString := StrTran( cString, "QObject_connect", "hbqt_connect" ) + n := At( "(", cString ) + aPar := hb_aTokens( SubStr( cString, n + 1, Len( cString ) - n - 1 ), "," ) + n2 := At( "(", aPar[ 2 ] ) + n4 := At( "(", aPar[ 4 ] ) + cCall := Left( cString, n ) +; + "::" + AllTrim( aPar[ 1 ] ) + ', ' +; + '"' + SubStr( aPar[ 2 ], n2 + 1, Len( aPar[ 2 ] ) - n2 - 1 ) + '", ' +; + "::" + AllTrim( aPar[ 3 ] ) + ', ' +; + '"' + SubStr( aPar[ 4 ], n4 + 1, Len( aPar[ 4 ] ) - n4 - 1 ) + '" ) ' + + RETURN cCall + STATIC FUNCTION hbqtui_pullColumn( cCmd, nCol ) IF "(0," $ cCmd @@ -989,13 +1107,22 @@ STATIC PROCEDURE hbqtui_replaceConstants( /* @ */ cString ) LOCAL cCmdB LOCAL cCmdE LOCAL cOR - LOCAL n, n1 + LOCAL n, n1, n2, n3 - LOCAL regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z_]+\b" ) + LOCAL regDefine := hb_regexComp( "\b[A-Za-z_]+\:\:[A-Za-z0-9_]+\b" ) - IF ( n := At( "QString::fromUtf8(", cString ) ) > 0 + IF At( 'QString::fromUtf8("")', cString ) > 0 + cString := StrTran( cString, 'QString::fromUtf8("")', '""' ) + + ELSEIF ( n := At( "QString::fromUtf8(", cString ) ) > 0 + n2 := hb_At( '"', cString, n ) + n3 := hb_At( '"', cString, n2 + 1 ) n1 := hb_At( ")", cString, n ) - cString := SubStr( cString, 1, n - 1 ) + SubStr( cString, n + Len( "QString::fromUtf8(" ), n1 - ( n + Len( "QString::fromUtf8(" ) ) ) + SubStr( cString, n1 + 1 ) + IF n2 < n1 .AND. n1 < n3 + n1 := hb_At( ")", cString, n3 + 1 ) + ENDIF + cString := SubStr( cString, 1, n - 1 ) + substr( cString, n + len( "QString::fromUtf8(" ), n1 - ( n + len( "QString::fromUtf8(" ) ) ) + SubStr( cString, n1 + 1 ) + ENDIF IF hbqtui_occurs( cString, "|" ) > 0 @@ -1051,7 +1178,7 @@ STATIC FUNCTION hbqtui_setObjects( cCmd, aWidgets ) RETURN cCmd -STATIC FUNCTION hbqui_pullText( aLines, nFrom ) +STATIC FUNCTION hbqtui_pullText( aLines, nFrom ) LOCAL cString := "" LOCAL nLen := Len( aLines ) LOCAL aKeyword := { "setText(", "setPlainText(", "setStyleSheet(", "setWhatsThis(" } diff --git a/harbour/contrib/hbqt/qtgui/hbqtgui.ch b/harbour/contrib/hbqt/qtgui/hbqtgui.ch index d87198bddd..c799afd204 100644 --- a/harbour/contrib/hbqt/qtgui/hbqtgui.ch +++ b/harbour/contrib/hbqt/qtgui/hbqtgui.ch @@ -1407,6 +1407,15 @@ #define Qt_WMacNoSheet 0 // No longer needed. +//Input Methods Hints +#define Qt_ImhHiddenText 0x1 // Characters should be hidden, as is typically used when entering passwords. This is automatically set when setting QLineEdit::echoMode to Password. +#define Qt_ImhNoAutoUppercase 0x2 // The input method should not try to automatically switch to upper case when a sentence ends. +#define Qt_ImhPreferNumbers 0x4 // Numbers are preferred (but not required). +#define Qt_ImhPreferUppercase 0x8 // Upper case letters are preferred (but not required). +#define Qt_ImhPreferLowercase 0x10 // Lower case letters are preferred (but not required). +#define Qt_ImhNoPredictiveText 0x20 // Do not use predictive text (i.e. dictionary lookup) while typing. + + // Frame Shadow #define QFrame_Plain 0x0010 // the frame and contents appear level with the surroundings; draws using the palette QPalette::WindowText color (without any 3D effect) #define QFrame_Raised 0x0020 // the frame and contents appear raised; draws a 3D raised line using the light and dark colors of the current color group @@ -2353,6 +2362,20 @@ #define QDeclarativeEngine_CppOwnership 0 // The object is owned by C++ code, and will never be deleted by QML. The JavaScript destroy() method cannot be used on objects with CppOwnership. This option is similar to QScriptEngine::QtOwnership. #define QDeclarativeEngine_JavaScriptOwnership 1 // The object is owned by JavaScript. When the object is returned to QML as the return value of a method call or property access, QML will delete the object if there are no remaining JavaScript references to it and it has no QObject::parent(). This option is similar to QScriptEngine::ScriptOwnership. + +//MenuRole of Qaction +#define QAction_NoRole 0 // This action should not be put into the application menu +#define QAction_TextHeuristicRole 1 // This action should be put in the application menu based on the action's text as described in the QMenuBar documentation. +#define QAction_ApplicationSpecificRole 2 // This action should be put in the application menu with an application specific role +#define QAction_AboutQtRole 3 // This action matches handles the "About Qt" menu item. +#define QAction_AboutRole 4 // This action should be placed where the "About" menu item is in the application menu. The text of the menu item will be set to "About ". The application name is fetched from the Info.plist file in the application's bundle (See Deploying an Application on Mac OS X). +#define QAction_PreferencesRole 5 // This action should be placed where the "Preferences..." menu item is in the application menu. +#define QAction_QuitRole 6 // This action should be placed where the Quit menu item is in the application menu. + +//QApplication:Translate +#define QApplication_CodecForTr 0 // The encoding specified by QTextCodec::codecForTr() (Latin-1 if none has been set). +#define QApplication_UnicodeUTF8 1 // UTF-8 + #define QLCDNumber_Hex 0 // Hexadecimal #define QLCDNumber_Dec 1 // Decimal #define QLCDNumber_Oct 2 // Octal @@ -2366,6 +2389,7 @@ #define QValidator_Intermediate 1 // The string is a plausible intermediate value. #define QValidator_Acceptable 2 // The string is acceptable as a final result; i.e. it is valid. + /*----------------------------------------------------------------------*/ // HBQT Defined Constants /*----------------------------------------------------------------------*/