2010-09-07 01:05 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbxbp/hbpprocess.prg
+ Prepared to route stdOut and stdErr outputs accordingly.
* contrib/hbxbp/xbprtf.prg
! Minor.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Implemented: first error reported by hbMK2 when a project is built,
is made visible in the "Output Console" after compile/link cycle is
finished. This facilitates to track errors instantly without naviaging
the contents of output console.
This commit is contained in:
@@ -16,6 +16,20 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-09-07 01:05 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbxbp/hbpprocess.prg
|
||||
+ Prepared to route stdOut and stdErr outputs accordingly.
|
||||
|
||||
* contrib/hbxbp/xbprtf.prg
|
||||
! Minor.
|
||||
|
||||
* contrib/hbide/idemisc.prg
|
||||
* contrib/hbide/ideprojmanager.prg
|
||||
+ Implemented: first error reported by hbMK2 when a project is built,
|
||||
is made visible in the "Output Console" after compile/link cycle is
|
||||
finished. This facilitates to track errors instantly without naviaging
|
||||
the contents of output console.
|
||||
|
||||
2010-09-07 09:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/contrib/hbmysql/hbmysql.hbp
|
||||
* harbour/contrib/gtalleg/gtalleg.hbm
|
||||
|
||||
@@ -761,9 +761,7 @@ FUNCTION hbide_parseFNfromStatusMsg( cText, cFileName, nLine, lValidText )
|
||||
*/
|
||||
FUNCTION hbide_convertBuildStatusMsgToHtml( cText, oWidget )
|
||||
LOCAL aColors := { CLR_MSG_ERR, CLR_MSG_INFO, CLR_MSG_WARN }
|
||||
LOCAL aLines
|
||||
LOCAL cLine
|
||||
LOCAL nPos
|
||||
LOCAL aLines, cIfError, cLine, nPos
|
||||
|
||||
IF aRegList == NIL
|
||||
aRegList := {}
|
||||
@@ -773,6 +771,7 @@ FUNCTION hbide_convertBuildStatusMsgToHtml( cText, oWidget )
|
||||
cText := StrTran( cText, Chr( 13 ) + Chr( 10 ), Chr( 10 ) )
|
||||
cText := StrTran( cText, Chr( 13 ) , Chr( 10 ) )
|
||||
cText := StrTran( cText, Chr( 10 ) + Chr( 10 ), Chr( 10 ) )
|
||||
cText := StrTran( cText, " ", " " )
|
||||
|
||||
/* Convert some chars to valid HTML chars */
|
||||
DO WHILE "<" $ cText
|
||||
@@ -787,18 +786,21 @@ FUNCTION hbide_convertBuildStatusMsgToHtml( cText, oWidget )
|
||||
|
||||
IF !Empty( cLine )
|
||||
IF ( nPos := aScan( aRegList, {| reg | !Empty( hb_RegEx( reg[ 2 ], cLine ) ) } ) ) > 0
|
||||
IF aRegList[ nPos,1 ] == MSG_TYPE_ERR
|
||||
cIfError := cLine
|
||||
ENDIF
|
||||
cLine := '<font color=' + aColors[ aRegList[nPos,1] ] + '>' + cLine + '</font>'
|
||||
ELSEIF "XBT" $ cLine
|
||||
cLine := '<font color=' + aColors[ aRegList[nPos,1] ] + '>' + cLine + '</font>'
|
||||
ELSE
|
||||
cLine := "<font color = black>" + cLine + "</font>"
|
||||
cLine := "<font color=black>" + cLine + "</font>"
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
oWidget:append( cLine )
|
||||
NEXT
|
||||
|
||||
RETURN cText
|
||||
RETURN cIfError
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -224,6 +224,8 @@ CLASS IdeProjManager INHERIT IdeObject
|
||||
DATA lFetch INIT .T.
|
||||
DATA lUpdateTree INIT .F.
|
||||
|
||||
DATA cIfError INIT NIL
|
||||
|
||||
METHOD new( oIDE )
|
||||
METHOD create( oIDE )
|
||||
METHOD destroy()
|
||||
@@ -1469,18 +1471,22 @@ METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:showOutput( cOutput, mp2, oProcess )
|
||||
LOCAL cIfError
|
||||
|
||||
HB_SYMBOL_UNUSED( mp2 )
|
||||
HB_SYMBOL_UNUSED( oProcess )
|
||||
|
||||
hbide_convertBuildStatusMsgToHtml( cOutput, ::oOutputResult:oWidget )
|
||||
cIfError := hbide_convertBuildStatusMsgToHtml( cOutput, ::oOutputResult:oWidget )
|
||||
IF ! empty( cIfError ) .AND. empty( ::cIfError )
|
||||
::cIfError := cIfError
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:finished( nExitCode, nExitStatus, oProcess )
|
||||
LOCAL cTmp, n, n1, cTkn, cExe
|
||||
LOCAL cTmp, n, n1, cTkn, cExe, qDoc, qCursor
|
||||
|
||||
HB_SYMBOL_UNUSED( oProcess )
|
||||
|
||||
@@ -1492,6 +1498,21 @@ METHOD IdeProjManager:finished( nExitCode, nExitStatus, oProcess )
|
||||
|
||||
ferase( ::cBatch )
|
||||
|
||||
IF ! empty( ::cIfError )
|
||||
::oOutputResult:SelStart := 0
|
||||
::oOutputResult:find( ::cIfError )
|
||||
::oOutputResult:SelBold := .T.
|
||||
|
||||
qDoc := QTextDocument():from( ::oOutputResult:document() )
|
||||
FOR n := 0 TO qDoc:blockCount() - 1
|
||||
IF ::cIfError == QTextBlock():from( qDoc:findBlockByNumber( n ) ):text()
|
||||
qCursor := QTextCursor():from( qDoc:find_2( ::cIfError ) )
|
||||
::oOutputResult:setTextCursor( qCursor )
|
||||
EXIT
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
IF ::lLaunch
|
||||
cTmp := ::oOutputResult:oWidget:toPlainText()
|
||||
cExe := ""
|
||||
@@ -1535,6 +1556,12 @@ METHOD IdeProjManager:finished( nExitCode, nExitStatus, oProcess )
|
||||
::editSource( ::cPPO )
|
||||
ENDIF
|
||||
|
||||
::cIfError := NIL
|
||||
::oOutputResult:ensureCursorVisible()
|
||||
IF !empty( qCursor )
|
||||
qCursor:clearSelection()
|
||||
::oOutputResult:setTextCursor( qCursor )
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -1620,8 +1647,9 @@ METHOD IdeProjManager:runAsScript()
|
||||
|
||||
METHOD IdeProjManager:outputText( cText )
|
||||
|
||||
::oOutputResult:oWidget:append( cText )
|
||||
::oOutputResult:oWidget:append( "<font color=black>" + cText + "</font>" )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ CLASS HbpProcess
|
||||
DATA bOutput
|
||||
|
||||
METHOD read( nMode, i, ii )
|
||||
METHOD outputMe( cLine )
|
||||
METHOD outputMe( cLine, nMode )
|
||||
METHOD finish()
|
||||
|
||||
ENDCLASS
|
||||
@@ -243,19 +243,19 @@ METHOD HbpProcess:read( nMode, i, ii )
|
||||
|
||||
DO CASE
|
||||
CASE nMode == CHN_BGN
|
||||
::outputMe( "CurDir() => " + CurDir() + " Starting in => " + ::qProcess:workingDirectory() )
|
||||
::outputMe( "CurDir() => " + CurDir() + " Starting in => " + ::qProcess:workingDirectory(), CHN_BGN )
|
||||
|
||||
CASE nMode == CHN_OUT
|
||||
::qProcess:setReadChannel( 0 )
|
||||
cLine := space( nSize )
|
||||
::qProcess:read( @cLine, nSize )
|
||||
::outputMe( cLine )
|
||||
::outputMe( cLine, CHN_OUT )
|
||||
|
||||
CASE nMode == CHN_ERR
|
||||
::qProcess:setReadChannel( 1 )
|
||||
cLine := space( nSize )
|
||||
::qProcess:read( @cLine, nSize )
|
||||
::outputMe( cLine )
|
||||
::outputMe( cLine, CHN_ERR )
|
||||
|
||||
CASE nMode == CHN_FIN
|
||||
::nExitCode := i
|
||||
@@ -269,7 +269,9 @@ METHOD HbpProcess:read( nMode, i, ii )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbpProcess:outputMe( cLine )
|
||||
METHOD HbpProcess:outputMe( cLine, nMode )
|
||||
|
||||
HB_SYMBOL_UNUSED( nMode )
|
||||
|
||||
IF hb_isBlock( ::bOutput ) .AND. !empty( cLine )
|
||||
eval( ::bOutput, trim( cLine ), NIL, Self )
|
||||
|
||||
@@ -308,6 +308,7 @@ METHOD XbpRtf:find( cSearchString, nStart, nEnd, nOptions )
|
||||
::oTextDocument:pPtr := ::oWidget:document()
|
||||
::oTextCursor:pPtr := ::oTextDocument:find_2( cSearchString )
|
||||
::oCurCursor := ::oTextCursor
|
||||
nPos := ::oTextCursor:position()
|
||||
ENDIF
|
||||
RETURN nPos
|
||||
|
||||
|
||||
Reference in New Issue
Block a user