From 48b261587e0c3e3fe4c92d9d00f24d31eede8d18 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Sat, 19 Dec 2009 21:55:00 +0000 Subject: [PATCH] 2009-12-19 13:45 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbide/hbide.prg ! Made functional based on XbpQtUiLoader() class. * contrib/hbqt/hbqt.ch % QT_PTROF( obj ) ( obj:pPtr ) => ( obj ). Converted to dummy for backward compatibility. * contrib/hbxbp/xbpqtuiloader.prg ! Minor. --- harbour/ChangeLog | 11 ++ harbour/contrib/hbide/hbide.prg | 192 +++++++----------------- harbour/contrib/hbqt/hbqt.ch | 2 +- harbour/contrib/hbxbp/xbpqtuiloader.prg | 1 - 4 files changed, 63 insertions(+), 143 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 234d4e0ccb..a7dc35282b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,17 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-12-19 13:54 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + * contrib/hbide/hbide.prg + ! Made functional based on XbpQtUiLoader() class. + + * contrib/hbqt/hbqt.ch + % QT_PTROF( obj ) ( obj:pPtr ) => ( obj ). + Converted to dummy for backward compatibility. + + * contrib/hbxbp/xbpqtuiloader.prg + ! Minor. + 2009-12-19 22:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbwin/hbwapi.h ! Fixed some wapi_ret_*() macros. This caused that several WAPI_TREEVIEW*() diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg index 0b9d75315d..9e9a65b480 100644 --- a/harbour/contrib/hbide/hbide.prg +++ b/harbour/contrib/hbide/hbide.prg @@ -206,7 +206,6 @@ CLASS HbIde METHOD updateFuncList() METHOD gotoFunction() METHOD fetchProjectProperties() - METHOD fetchProjectPropertiesViaUI() METHOD loadProjectProperties() METHOD appendProjectInTree() METHOD manageItemSelected() @@ -1421,7 +1420,7 @@ METHOD HbIde:printPreview() qDlg:setWindowTitle( "Harbour-QT Preview Dialog" ) Qt_Connect_Signal( qDlg, "paintRequested(QPrinter)", {|o,p| ::paintRequested( p,o ) } ) qDlg:exec() - Qt_DisConnect_Signal( qDlg:pPtr, "paintRequested(QPrinter)" ) + Qt_DisConnect_Signal( qDlg, "paintRequested(QPrinter)" ) RETURN self @@ -1601,7 +1600,6 @@ METHOD HbIde:loadProjectProperties( cProject, lNew, lFetch ) IF lFetch ::cSaveTo := "" ::fetchProjectProperties() - //::fetchProjectPropertiesViaUI() IF !empty( ::cSaveTo ) .and. file( ::cSaveTo ) cProject := ::cSaveTo /* Reload from file */ @@ -1619,9 +1617,8 @@ METHOD HbIde:loadProjectProperties( cProject, lNew, lFetch ) /*----------------------------------------------------------------------*/ -METHOD HbIde:fetchProjectPropertiesViaUI() - LOCAL cPrjLoc := hb_dirBase() + "projects" - LOCAL aPrjProps := ::aPrjProps +METHOD HbIde:fetchProjectProperties() + LOCAL cPrjLoc := hb_dirBase() + "projects" ::oProps := XbpQtUiLoader():new( ::oDlg ) ::oProps:file := s_resPath + "projectproperties.ui" @@ -1638,7 +1635,7 @@ METHOD HbIde:fetchProjectPropertiesViaUI() ::oProps:signal( "tabWidget" , "currentChanged(int)", {|o,p| ::updateHbp( p, o ) } ) - IF empty( aPrjProps ) + IF empty( ::aPrjProps ) ::oProps:qObj[ "editPrjTitle" ]:setText( "untitled" ) ::oProps:qObj[ "editPrjLoctn" ]:setText( cPrjLoc ) ::oProps:qObj[ "editWrkFolder" ]:setText( hb_dirBase() ) @@ -1646,15 +1643,15 @@ METHOD HbIde:fetchProjectPropertiesViaUI() ::oProps:qObj[ "editOutName" ]:setText( "untitled" ) ELSE - ::oProps:qObj[ "editPrjTitle" ]:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_TITLE ] ) - ::oProps:qObj[ "editPrjLoctn" ]:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_LOCATION ] ) - ::oProps:qObj[ "editWrkFolder" ]:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_WRKFOLDER ] ) - ::oProps:qObj[ "editDstFolder" ]:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_DSTFOLDER ] ) - ::oProps:qObj[ "editOutName" ]:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_OUTPUT ] ) + ::oProps:qObj[ "editPrjTitle" ]:setText( ::aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_TITLE ] ) + ::oProps:qObj[ "editPrjLoctn" ]:setText( ::aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_LOCATION ] ) + ::oProps:qObj[ "editWrkFolder" ]:setText( ::aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_WRKFOLDER ] ) + ::oProps:qObj[ "editDstFolder" ]:setText( ::aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_DSTFOLDER ] ) + ::oProps:qObj[ "editOutName" ]:setText( ::aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_OUTPUT ] ) - ::oProps:qObj[ "editFlags" ]:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_FLAGS , 1 ] ) ) - ::oProps:qObj[ "editSources" ]:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_SOURCES , 1 ] ) ) - ::oProps:qObj[ "editMetaData" ]:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_METADATA, 1 ] ) ) + ::oProps:qObj[ "editFlags" ]:setPlainText( ArrayToMemo( ::aPrjProps[ PRJ_PRP_FLAGS , 1 ] ) ) + ::oProps:qObj[ "editSources" ]:setPlainText( ArrayToMemo( ::aPrjProps[ PRJ_PRP_SOURCES , 1 ] ) ) + ::oProps:qObj[ "editMetaData" ]:setPlainText( ArrayToMemo( ::aPrjProps[ PRJ_PRP_METADATA, 1 ] ) ) ::oProps:qObj[ "editCompilers" ]:setPlainText( memoread( hb_dirBase() + "hbide.env" ) ) #if 0 @@ -1674,107 +1671,63 @@ METHOD HbIde:fetchProjectPropertiesViaUI() /*----------------------------------------------------------------------*/ -METHOD HbIde:fetchProjectProperties() - LOCAL qPrpDlg, qPrjType, oPrjTtl, oPBOk, oPBCn, oTabWidget, oPBSv, oPBSelect - LOCAL oPrjLoc, oPrjWrk, oPrjDst, oPrjOut, oPrjInc, oPrjLau, oPrjLEx, oPrjSrc, oPrjMta, oPrjHbp, oPrjCmp - LOCAL cPrjLoc := hb_dirBase() + "projects" - LOCAL aPrjProps := ::aPrjProps +METHOD HbIde:saveProject() + LOCAL a_, a4_1 + LOCAL typ_:= { "Executable", "Lib", "Dll" } + LOCAL txt_:= {} - IF !empty( qPrpDlg := ::loadUI( "projectproperties" ) ) + aadd( txt_, "[ PROPERTIES ]" ) + aadd( txt_, "Type = " + typ_[ ::oProps:qObj[ "comboPrjType" ]:currentIndex()+1 ] ) + aadd( txt_, "Title = " + ::oProps:qObj[ "editPrjTitle" ]:text() ) + aadd( txt_, "Location = " + ::oProps:qObj[ "editPrjLoctn" ]:text() ) + aadd( txt_, "WorkingFolder = " + ::oProps:qObj[ "editWrkFolder" ]:text() ) + aadd( txt_, "DestinationFolder = " + ::oProps:qObj[ "editDstFolder" ]:text() ) + aadd( txt_, "Output = " + ::oProps:qObj[ "editOutName" ]:text() ) + aadd( txt_, "LaunchParams = " + ::oProps:qObj[ "editLaunchParams" ]:text() ) + aadd( txt_, "LaunchProgram = " + ::oProps:qObj[ "editLaunchExe" ]:text() ) + aadd( txt_, " " ) - qPrjType := QComboBox():configure( Qt_findChild( qPrpDlg, "comboPrjType" ) ) - qPrjType:addItem( "Executable" ) - qPrjType:addItem( "Library" ) - qPrjType:addItem( "Dll" ) + aadd( txt_, "[ FLAGS ]" ) + a_:= MemoToArray( ::oProps:qObj[ "editFlags" ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " ) + aadd( txt_, "[ SOURCES ]" ) + a_:= MemoToArray( ::oProps:qObj[ "editSources" ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " ) + aadd( txt_, "[ METADATA ]" ) + a_:= MemoToArray( ::oProps:qObj[ "editMetaData" ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " ) - oPrjTtl := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editPrjTitle" ) ) - oPrjLoc := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editPrjLoctn" ) ) - oPrjWrk := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editWrkFolder" ) ) - oPrjDst := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editDstFolder" ) ) - oPrjOut := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editOutName" ) ) - oPrjInc := QTextEdit():configure( Qt_FindChild( qPrpDlg, "editFlags" ) ) - oPrjLau := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editLaunchParams" ) ) - oPrjLEx := QLineEdit():configure( Qt_FindChild( qPrpDlg, "editLaunchExe" ) ) - oPrjSrc := QTextEdit():configure( Qt_FindChild( qPrpDlg, "editSources" ) ) - oPrjMta := QTextEdit():configure( Qt_FindChild( qPrpDlg, "editMetaData" ) ) - oPrjHbp := QTextEdit():configure( Qt_FindChild( qPrpDlg, "editHbp" ) ) - oPrjCmp := QTextEdit():configure( Qt_FindChild( qPrpDlg, "editCompilers" ) ) + /* Setup Meta Keys */ + a4_1 := SetupMetaKeys( a_ ) - ::aPrpObjs := { qPrjType, oPrjTtl, oPrjLoc, oPrjWrk, oPrjDst, oPrjOut, oPrjLau, oPrjLEx, oPrjInc, oPrjSrc, oPrjMta, oPrjHbp, oPrjCmp } + ::cSaveTo := ParseWithMetaData( ::oProps:qObj[ "editPrjLoctn" ]:text(), a4_1 ) + ; + hb_OsPathSeparator() + ; + ParseWithMetaData( ::oProps:qObj[ "editOutName" ]:text(), a4_1 ) + ; + ".hbi" - oPBCn := XbpPushButton():new():hbCreateFromQtPtr( , , , , , , Qt_findChild( qPrpDlg, "buttonCn" ) ) - oPBCn:activate := {|| qPrpDlg:close() } - oPBSv := XbpPushButton():new():hbCreateFromQtPtr( , , , , , , Qt_findChild( qPrpDlg, "buttonSave" ) ) - oPBSv:activate := {|| ::saveProject() } - oPBOk := XbpPushButton():new():hbCreateFromQtPtr( , , , , , , Qt_findChild( qPrpDlg, "buttonSaveExit" ) ) - oPBOk:activate := {|| ::saveProject(), qPrpDlg:close() } - oPBSelect := XbpPushButton():new():hbCreateFromQtPtr( , , , , , , Qt_findChild( qPrpDlg, "buttonSelect" ) ) - oPBSelect:activate := {|| ::addSourcesToProject() } + CreateTarget( ::cSaveTo, txt_ ) + hb_MemoWrit( hb_dirBase() + "hbide.env", ::oProps:qObj[ "editCompilers" ]:toPlainText() ) - oTabWidget := QTabWidget():configure( Qt_FindChild( qPrpDlg, "tabWidget" ) ) - Qt_Connect_Signal( oTabWidget, "currentChanged(int)", {|o,p| ::updateHbp( p, o ) } ) - - IF empty( aPrjProps ) - oPrjTtl:setText( "untitled" ) - oPrjLoc:setText( cPrjLoc ) - oPrjWrk:setText( hb_dirBase() ) - oPrjDst:setText( cPrjLoc ) - oPrjOut:setText( "untitled" ) - - ELSE - oPrjTtl:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_TITLE ] ) - oPrjLoc:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_LOCATION ] ) - oPrjWrk:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_WRKFOLDER ] ) - oPrjDst:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_DSTFOLDER ] ) - oPrjOut:setText( aPrjProps[ PRJ_PRP_PROPERTIES, 1, PRJ_PRP_OUTPUT ] ) - - oPrjInc:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_FLAGS , 1 ] ) ) - oPrjSrc:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_SOURCES , 1 ] ) ) - oPrjMta:setPlainText( ArrayToMemo( aPrjProps[ PRJ_PRP_METADATA, 1 ] ) ) - oPrjCmp:setPlainText( memoread( hb_dirBase() + "hbide.env" ) ) - - ENDIF - - qPrpDlg:exec() - - Qt_DisConnect_Signal( oTabWidget, "currentChanged(int)" ) - - oPBOk:destroy() - oPBSv:destroy() - oPBCn:destroy() - oPBSelect:destroy() - - ::aPrpObjs := {} - ENDIF - - ::manageFocusInEditor() - - RETURN Self + RETURN Nil /*----------------------------------------------------------------------*/ METHOD HbIde:updateHbp( iIndex ) - LOCAL a_, a4_1, o_, txt_, s + LOCAL a_, a4_1, txt_, s LOCAL cExt IF iIndex != 3 RETURN nil ENDIF - IF empty( o_:= ::aPrpObjs ) - RETURN nil - ENDIF - a_:= hb_atokens( strtran( o_[ E_oPrjMta ]:toPlainText(), chr( 13 ) ), _EOL ) + a_:= hb_atokens( strtran( ::oProps:qObj[ "editMetaData" ]:toPlainText(), chr( 13 ) ), _EOL ) a4_1 := SetupMetaKeys( a_ ) txt_:= {} /* This block will be absent when submitting to hbmk engine */ - aadd( txt_, "# " + ParseWithMetaData( o_[ E_oPrjWrk ]:text(), a4_1 ) + s_pathSep + ; - ParseWithMetaData( o_[ E_oPrjOut ]:text(), a4_1 ) + ".hbp" ) + aadd( txt_, "# " + ParseWithMetaData( ::oProps:qObj[ "editWrkFolder" ]:text(), a4_1 ) + s_pathSep + ; + ParseWithMetaData( ::oProps:qObj[ "editOutName" ]:text(), a4_1 ) + ".hbp" ) aadd( txt_, " " ) /* Flags */ - a_:= hb_atokens( o_[ E_oPrjInc ]:toPlainText(), _EOL ) + a_:= hb_atokens( ::oProps:qObj[ "editFlags" ]:toPlainText(), _EOL ) FOR EACH s IN a_ s := alltrim( s ) IF !( "#" == left( s,1 ) ) .and. !empty( s ) @@ -1785,7 +1738,7 @@ METHOD HbIde:updateHbp( iIndex ) aadd( txt_, " " ) /* Sources */ - a_:= hb_atokens( o_[ E_oPrjSrc ]:toPlainText(), _EOL ) + a_:= hb_atokens( ::oProps:qObj[ "editSources" ]:toPlainText(), _EOL ) FOR EACH s IN a_ s := alltrim( s ) IF !( "#" == left( s,1 ) ) .and. !empty( s ) @@ -1799,63 +1752,20 @@ METHOD HbIde:updateHbp( iIndex ) aadd( txt_, " " ) /* Final assault */ - ::aPrpObjs[ E_oPrjHbp ]:setPlainText( ArrayToMemo( txt_ ) ) + ::oProps:qObj[ "editHbp" ]:setPlainText( ArrayToMemo( txt_ ) ) RETURN txt_ /*----------------------------------------------------------------------*/ -METHOD HbIde:saveProject() - LOCAL txt_, a_, a4_1, o_//, s, b_, i, j - LOCAL typ_:= { "Executable", "Lib", "Dll" } - - IF empty( o_:= ::aPrpObjs ) - RETURN nil - ENDIF - - txt_:= {} - - aadd( txt_, "[ PROPERTIES ]" ) - aadd( txt_, "Type = " + typ_[ o_[ E_qPrjType ]:currentIndex()+1 ] ) - aadd( txt_, "Title = " + o_[ E_oPrjTtl ]:text() ) - aadd( txt_, "Location = " + o_[ E_oPrjLoc ]:text() ) - aadd( txt_, "WorkingFolder = " + o_[ E_oPrjWrk ]:text() ) - aadd( txt_, "DestinationFolder = " + o_[ E_oPrjDst ]:text() ) - aadd( txt_, "Output = " + o_[ E_oPrjOut ]:text() ) - aadd( txt_, "LaunchParams = " + o_[ E_oPrjLau ]:text() ) - aadd( txt_, "LaunchProgram = " + o_[ E_oPrjLEx ]:text() ) - aadd( txt_, " " ) - - aadd( txt_, "[ FLAGS ]" ) - a_:= MemoToArray( o_[ E_oPrjInc ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " ) - aadd( txt_, "[ SOURCES ]" ) - a_:= MemoToArray( o_[ E_oPrjSrc ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " ) - aadd( txt_, "[ METADATA ]" ) - a_:= MemoToArray( o_[ E_oPrjMta ]:toPlainText() ); aeval( a_, {|e| aadd( txt_, e ) } ) ; aadd( txt_, " " ) - - /* Setup Meta Keys */ - a4_1 := SetupMetaKeys( a_ ) - - ::cSaveTo := ParseWithMetaData( o_[ E_oPrjLoc ]:text(), a4_1 ) + ; - hb_OsPathSeparator() + ; - ParseWithMetaData( o_[ E_oPrjOut ]:text(), a4_1 ) + ; - ".hbi" - - CreateTarget( ::cSaveTo, txt_ ) - hb_MemoWrit( hb_dirBase() + "hbide.env", o_[ E_oPrjCmp ]:toPlainText() ) - - RETURN Nil - -/*----------------------------------------------------------------------*/ - METHOD HbIde:addSourcesToProject() LOCAL aFiles, a_, b_, a4_1, s IF !empty( aFiles := ::selectSource( "openmany" ) ) - a_:= MemoToArray( ::aPrpObjs[ E_oPrjMta ]:toPlainText() ) + a_:= MemoToArray( ::oProps:qObj[ "editMetaData" ]:toPlainText() ) a4_1 := SetupMetaKeys( a_ ) - a_:= MemoToArray( ::aPrpObjs[ E_oPrjSrc ]:toPlainText() ) + a_:= MemoToArray( ::oProps:qObj[ "editSources" ]:toPlainText() ) b_:={} aeval( aFiles, {|e| aadd( b_, ApplyMetaData( e, a4_1 ) ) } ) @@ -1866,7 +1776,7 @@ METHOD HbIde:addSourcesToProject() ENDIF NEXT - ::aPrpObjs[ E_oPrjSrc ]:setPlainText( ArrayToMemo( a_ ) ) + ::oProps:qObj[ "editSources" ]:setPlainText( ArrayToMemo( a_ ) ) ENDIF RETURN Self diff --git a/harbour/contrib/hbqt/hbqt.ch b/harbour/contrib/hbqt/hbqt.ch index 322cb2a696..511f6155fd 100644 --- a/harbour/contrib/hbqt/hbqt.ch +++ b/harbour/contrib/hbqt/hbqt.ch @@ -73,7 +73,7 @@ #xtranslate HBQT_DEBUG( [] ) => iif( .T.,, ) #endif -#define QT_PTROF( oObj ) ( oObj:pPtr ) +#define QT_PTROF( oObj ) ( oObj ) #define HBQT_RELEASE_WITH_DELETE 0 // Release the QObject with delete operator #define HBQT_RELEASE_WITH_DESTRUTOR 1 // Release the QObject with his destructor diff --git a/harbour/contrib/hbxbp/xbpqtuiloader.prg b/harbour/contrib/hbxbp/xbpqtuiloader.prg index db618f9828..383924d689 100644 --- a/harbour/contrib/hbxbp/xbpqtuiloader.prg +++ b/harbour/contrib/hbxbp/xbpqtuiloader.prg @@ -140,7 +140,6 @@ METHOD XbpQtUiLoader:destroy() NEXT ::oWidget:hide() - ::oWidget:close() ::oWidget:pPtr := 0 RETURN NIL