diff --git a/harbour/ChangeLog b/harbour/ChangeLog index cacbc234d7..5d7f7e50cf 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,17 @@ The license applies to all entries newer than 2009-04-28. */ +2010-07-22 10:15 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbxbp/hbpprocess.prg + + Added: :waitForFinished() method. + + * contrib/hbide/idebrowse.prg + % Reworked: ideDBU:formView - now it is presented in a scrollable widget. + + * contrib/hbide/ideprojmanager.prg + + Added: "xbuild" project files .xbp as basis for project conversion. + ! Changed: hb_processRun() => QProcess(). + 2010-07-22 16:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) - contrib/hbqt/hbqt_hbdbfmodel.cpp * contrib/hbqt/generator/qt45.qtp diff --git a/harbour/contrib/hbide/idebrowse.prg b/harbour/contrib/hbide/idebrowse.prg index 2640b3fd49..823ec0b85b 100644 --- a/harbour/contrib/hbide/idebrowse.prg +++ b/harbour/contrib/hbide/idebrowse.prg @@ -471,11 +471,11 @@ METHOD IdeBrowseManager:execEvent( cEvent, p, p1 ) CASE "buttonShowForm_clicked" IF !empty( ::oCurBrw ) - IF ::oCurBrw:qForm:isHidden() - ::oCurBrw:qForm:show() + IF ::oCurBrw:qScrollArea:isHidden() + ::oCurBrw:qScrollArea:show() ::aToolBtns[ 3 ]:setChecked( .t. ) ELSE - ::oCurBrw:qForm:hide() + ::oCurBrw:qScrollArea:hide() ::aToolBtns[ 3 ]:setChecked( .f. ) ENDIF ENDIF @@ -1236,6 +1236,7 @@ CLASS IdeBrowse INHERIT IdeObject DATA qSplitter DATA qTimer DATA qStatus + DATA qScrollArea DATA nID INIT 0 @@ -1465,32 +1466,6 @@ METHOD IdeBrowse:destroy() /*----------------------------------------------------------------------*/ -METHOD IdeBrowse:configure() - LOCAL nOff - LOCAL nRowPos := ::oBrw:rowPos() - LOCAL nColPos := ::oBrw:colPos() - - ::oBrw:configure() - - IF nRowPos > ::oBrw:rowCount() - nOff := nRowPos - ::oBrw:rowCount() - ::oBrw:rowPos := ::oBrw:rowCount() - ELSE - nOff := 0 - ENDIF - ::oBrw:colPos := nColPos - - ::oBrw:refreshAll() - ::oBrw:forceStable() - ::oBrw:setCurrentIndex( nRowPos > ::oBrw:rowCount() ) - IF nOff > 0 - SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, nOff, ::oBrw ) - ENDIF - - RETURN Self - -/*------------------------------------------------------------------------*/ - METHOD IdeBrowse:buildBrowser() LOCAL qLayout, oWnd, oXbpBrowse @@ -1530,17 +1505,23 @@ METHOD IdeBrowse:buildBrowser() /* Form View */ ::qForm := QWidget():new() + ::qForm:setMinimumSize( QSize():new( 300 , len( ::aStruct ) * 34 ) ) + ::qForm:setMaximumSize( QSize():new( 12000, 48000 ) ) + ::qFLayout := QFormLayout():new() ::qForm:setLayout( ::qFLayout ) - //::qSplitter:addWidget( ::qForm ) + ::qScrollArea := QScrollArea():new() + ::qScrollArea:setWidget( ::qForm ) + ::qScrollArea:hide() - ::qForm:hide() /* Form view defaults to hidden */ + ::qSplitter:addWidget( ::qScrollArea ) ::qLayout := qLayout ::oWnd := oWnd ::oBrw := oXbpBrowse +#if 0 ::qVerSpl := QSplitter():new( Qt_Vertical ) ::qSplitter:addWidget( ::qVerSpl ) @@ -1551,7 +1532,52 @@ METHOD IdeBrowse:buildBrowser() ::qClose:hide() ::qVerSpl:addWidget( ::qClose ) +#endif + RETURN Self +/*----------------------------------------------------------------------*/ + +METHOD IdeBrowse:buildColumns() + LOCAL oXbpColumn, aPresParam, a_ + + IF ::nType == BRW_TYPE_DBF + FOR EACH a_ IN ::aStruct + aPresParam := ::getPP( a_ ) + + oXbpColumn := XbpColumn():new() + oXbpColumn:dataLink := ::dataLink( a_:__enumIndex() ) + oXbpColumn:create( , , , , aPresParam ) + + ::oBrw:addColumn( oXbpColumn ) + NEXT + ELSE + FOR EACH a_ IN ::aStruct + ::getPP( a_, a_:__enumIndex() ) + + oXbpColumn := XbpColumn():new() + oXbpColumn:dataLink := ::dataLink( a_:__enumIndex() ) + oXbpColumn:create( , , , , aPresParam ) + + ::oBrw:addColumn( oXbpColumn ) + NEXT + ENDIF + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeBrowse:buildForm() + LOCAL a_, qLbl, qEdit + + IF ::nType == BRW_TYPE_DBF + FOR EACH a_ IN ::aStruct + qLbl := QLabel():new(); qLbl:setText( a_[ 1 ] ) + qEdit := QLineEdit():new() + ::qFLayout:addRow( qLbl, qEdit ) + aadd( ::aForm, { qLbl, qEdit } ) + NEXT + ELSE + ENDIF RETURN Self /*----------------------------------------------------------------------*/ @@ -1598,6 +1624,32 @@ METHOD IdeBrowse:buildMdiWindow() /*------------------------------------------------------------------------*/ +METHOD IdeBrowse:configure() + LOCAL nOff + LOCAL nRowPos := ::oBrw:rowPos() + LOCAL nColPos := ::oBrw:colPos() + + ::oBrw:configure() + + IF nRowPos > ::oBrw:rowCount() + nOff := nRowPos - ::oBrw:rowCount() + ::oBrw:rowPos := ::oBrw:rowCount() + ELSE + nOff := 0 + ENDIF + ::oBrw:colPos := nColPos + + ::oBrw:refreshAll() + ::oBrw:forceStable() + ::oBrw:setCurrentIndex( nRowPos > ::oBrw:rowCount() ) + IF nOff > 0 + SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, nOff, ::oBrw ) + ENDIF + + RETURN Self + +/*------------------------------------------------------------------------*/ + METHOD IdeBrowse:execEvent( cEvent, p, p1 ) LOCAL cIndex, a_, cPmt, nZeros @@ -1785,24 +1837,6 @@ METHOD IdeBrowse:populateForm() /*----------------------------------------------------------------------*/ -METHOD IdeBrowse:buildForm() - LOCAL a_, qLbl, qEdit - - IF ::nType == BRW_TYPE_DBF - FOR EACH a_ IN ::aStruct - qLbl := QLabel():new(); qLbl:setText( a_[ 1 ] ) - qEdit := QLineEdit():new() - ::qFLayout:addRow( qLbl, qEdit ) - aadd( ::aForm, { qLbl, qEdit } ) - NEXT - ELSE - - ENDIF - - RETURN Self - -/*----------------------------------------------------------------------*/ - METHOD IdeBrowse:saveField( nField, x ) IF ( ::cAlias )->( DbrLock() ) ( ::cAlias )->( FieldPut( nField, x ) ) @@ -1829,35 +1863,6 @@ METHOD IdeBrowse:dataLink( nField ) /*----------------------------------------------------------------------*/ -METHOD IdeBrowse:buildColumns() - LOCAL oXbpColumn, aPresParam, a_ - - IF ::nType == BRW_TYPE_DBF - FOR EACH a_ IN ::aStruct - aPresParam := ::getPP( a_ ) - - oXbpColumn := XbpColumn():new() - oXbpColumn:dataLink := ::dataLink( a_:__enumIndex() ) - oXbpColumn:create( , , , , aPresParam ) - - ::oBrw:addColumn( oXbpColumn ) - NEXT - ELSE - FOR EACH a_ IN ::aStruct - ::getPP( a_, a_:__enumIndex() ) - - oXbpColumn := XbpColumn():new() - oXbpColumn:dataLink := ::dataLink( a_:__enumIndex() ) - oXbpColumn:create( , , , , aPresParam ) - - ::oBrw:addColumn( oXbpColumn ) - NEXT - ENDIF - - RETURN Self - -/*----------------------------------------------------------------------*/ - METHOD IdeBrowse:getPP( aStruct ) LOCAL aPresParam := {} diff --git a/harbour/contrib/hbide/ideprojmanager.prg b/harbour/contrib/hbide/ideprojmanager.prg index 21627f23ef..c92cc5619b 100644 --- a/harbour/contrib/hbide/ideprojmanager.prg +++ b/harbour/contrib/hbide/ideprojmanager.prg @@ -342,7 +342,8 @@ METHOD IdeProjManager:loadProperties( cProjFileName, lNew, lFetch, lUpdateTree ) ELSE IF empty( cProjFileName ) cProjFileName := hbide_fetchAFile( ::oDlg, "Open Project...", { { "Harbour Projects", "*.hbp" } , ; - { "xMate Projects" , "*.xhp" } } ) + { "xMate Projects" , "*.xhp" } , ; + { "xBuild Projects" , "*.xbp" } } ) cProjFileName := ::synchronizeAlienProject( cProjFileName ) ::oDockPT:show() @@ -814,7 +815,7 @@ METHOD IdeProjManager:buildInterface() METHOD IdeProjManager:synchronizeAlienProject( cProjFileName ) LOCAL cPath, cFile, cExt, cHbp - LOCAL cExeHbMk2 + LOCAL cExeHbMk2, oProcess, cCmd hb_fNameSplit( cProjFileName, @cPath, @cFile, @cExt ) IF lower( cExt ) == ".hbp" /* Nothing to do */ @@ -832,23 +833,24 @@ METHOD IdeProjManager:synchronizeAlienProject( cProjFileName ) ENDIF ENDIF - cExeHbMk2 := "hbmk2" - IF ! Empty( ::oIDE:oINI:cPathHbMk2 ) - cExeHbMk2 := hbide_DirAddPathSep( ::oIDE:oINI:cPathHbMk2 ) + cExeHbMk2 - ENDIF + cExeHbMk2 := ::oINI:getHbmk2File() SWITCH lower( cExt ) CASE ".xhp" - hb_processRun( cExeHbMk2 + " -xhp=" + cProjFileName ) + cCmd := cExeHbMk2 + " -xhp=" + cProjFileName EXIT CASE ".xbp" - hb_processRun( cExeHbMk2 + " -xbp=" + cProjFileName ) + cCmd := cExeHbMk2 + " -xbp=" + cProjFileName EXIT CASE "???" - hb_processRun( cExeHbMk2 + " -hbmake=" + cProjFileName ) + cCmd := cExeHbMk2 + " -hbmake=" + cProjFileName EXIT ENDSWITCH + oProcess := QProcess():new() + oProcess:start_1( cCmd ) + oProcess:waitForFinished() + RETURN cHbp /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/hbpprocess.prg b/harbour/contrib/hbxbp/hbpprocess.prg index 6fa1765ddc..9f9177abf9 100644 --- a/harbour/contrib/hbxbp/hbpprocess.prg +++ b/harbour/contrib/hbxbp/hbpprocess.prg @@ -99,6 +99,7 @@ CLASS HbpProcess METHOD addArg( cArg ) METHOD start( cShellCmd ) + METHOD waitForFinished() INLINE ::qProcess:waitForFinished() METHOD finished( bBlock ) SETGET // Slot METHOD output( bBlock ) SETGET // Slot METHOD workingPath( cPath ) SETGET // Slot