2010-06-03 18:22 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Minor.
* contrib/hbide/resources/buildsource.png
+ Icon for "Build Source" action.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Implemeted: to compile a source, source is not saved
if in modified state. Action was already defined but inactive.
+ Implemented: to build a source, current defined environment is
used and build process stays in the folder where source resides.
Also source is not saved. hbIDE attempts to executable it also.
Action defines a new icon on the top-toolbar and also an entry
into the "Build" menu.
% Few more fixes in selections and find processes.
NOTE: new setup is also uploaded on my site.
This commit is contained in:
@@ -17,6 +17,33 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-06-03 18:22 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
|
||||
! Minor.
|
||||
|
||||
* contrib/hbide/resources/buildsource.png
|
||||
+ Icon for "Build Source" action.
|
||||
|
||||
* contrib/hbide/hbide.prg
|
||||
* contrib/hbide/ideactions.prg
|
||||
* contrib/hbide/idedocks.prg
|
||||
* contrib/hbide/ideedit.prg
|
||||
* contrib/hbide/idefindreplace.prg
|
||||
* contrib/hbide/idemisc.prg
|
||||
* contrib/hbide/ideprojmanager.prg
|
||||
+ Implemeted: to compile a source, source is not saved
|
||||
if in modified state. Action was already defined but inactive.
|
||||
|
||||
+ Implemented: to build a source, current defined environment is
|
||||
used and build process stays in the folder where source resides.
|
||||
Also source is not saved. hbIDE attempts to executable it also.
|
||||
Action defines a new icon on the top-toolbar and also an entry
|
||||
into the "Build" menu.
|
||||
|
||||
% Few more fixes in selections and find processes.
|
||||
|
||||
NOTE: new setup is also uploaded on my site.
|
||||
|
||||
2010-06-04 01:23 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
! Fixed typo in recent header detection changes causing -inc
|
||||
|
||||
@@ -666,6 +666,7 @@ METHOD HbIde:execAction( cKey )
|
||||
CASE "NewProject"
|
||||
CASE "LoadProject"
|
||||
CASE "LaunchProject"
|
||||
CASE "BuildSource"
|
||||
CASE "Build"
|
||||
CASE "BuildLaunch"
|
||||
CASE "Rebuild"
|
||||
@@ -922,6 +923,9 @@ METHOD HbIde:execProjectAction( cKey )
|
||||
CASE "LaunchProject"
|
||||
::oPM:launchProject()
|
||||
EXIT
|
||||
CASE "BuildSource"
|
||||
::oPM:buildSource( .t. )
|
||||
EXIT
|
||||
CASE "Build"
|
||||
::oPM:buildProject( '', .F., .F. )
|
||||
EXIT
|
||||
@@ -935,7 +939,7 @@ METHOD HbIde:execProjectAction( cKey )
|
||||
::oPM:buildProject( '', .T., .T. )
|
||||
EXIT
|
||||
CASE "Compile"
|
||||
//
|
||||
::oPM:buildSource( .f. )
|
||||
EXIT
|
||||
CASE "CompilePPO"
|
||||
::oPM:buildProject( '', .F., .F., .T., .T. )
|
||||
|
||||
@@ -183,6 +183,7 @@ METHOD IdeActions:loadActions()
|
||||
aadd( aAct, { "TB_Print" , "~Print" , "print" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Compile" , "Co~mpile" , "compile" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_CompilePPO" , "Com~pile to PPO" , "ppo" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_BuildSource" , "Build Source" , "buildsource" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Build" , "Build Project" , "build" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_BuildLaunch" , "Build and Launch" , "buildlaunch" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Rebuild" , "Rebuild Project" , "rebuild" , "" , "No", "Yes" } )
|
||||
@@ -220,6 +221,7 @@ METHOD IdeActions:loadActions()
|
||||
aadd( aAct, { "Compile" , "Co~mpile" , "compile" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "CompilePPO" , "Com~pile to PPO" , "ppo" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "Build" , "Build Project" , "build" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "BuildSource" , "Build Source" , "buildsource" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "BuildLaunch" , "Build and Launch" , "buildlaunch" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "Rebuild" , "Rebuild Project" , "rebuild" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "RebuildLaunch" , "Rebuild and Launch" , "rebuildlaunch" , "" , "No", "Yes" } )
|
||||
@@ -266,7 +268,7 @@ METHOD IdeActions:loadActions()
|
||||
aadd( aAct, { "BuildLaunch" , "Build and Launch Project" , "buildlaunch" , "F9" , "No", "Yes" } )
|
||||
aadd( aAct, { "ReBuild" , "Rebuild Project" , "rebuild" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "ReBuildLaunch" , "Rebuild and Launch Project" , "rebuildlaunch" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "CompileCurrent" , "Compile Current Source" , "compile" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "Compile" , "Compile Current Source" , "compile" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "CompilePPO" , "Compile Current Source to PPO", "ppo" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "LaunchProject" , "Launch Project" , "" , "^F10" , "No", "Yes" } )
|
||||
aadd( aAct, { "ConfigureTools" , "Configure Tools...*" , "" , "" , "No", "Yes" } )
|
||||
@@ -344,6 +346,7 @@ METHOD IdeActions:buildToolBar()
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
oTBar:addItem( ::getAction( "TB_Compile" ), , , , , , "Compile" )
|
||||
oTBar:addItem( ::getAction( "TB_CompilePPO" ), , , , , , "CompilePPO" )
|
||||
oTBar:addItem( ::getAction( "TB_BuildSource" ), , , , , , "BuildSource" )
|
||||
oTBar:addItem( ::getAction( "TB_Build" ), , , , , , "Build" )
|
||||
oTBar:addItem( ::getAction( "TB_BuildLaunch" ), , , , , , "BuildLaunch" )
|
||||
oTBar:addItem( ::getAction( "TB_Rebuild" ), , , , , , "Rebuild" )
|
||||
@@ -576,14 +579,15 @@ METHOD IdeActions:buildMainMenu()
|
||||
/*----------------------------------------------------------------------------*/
|
||||
oSubMenu := XbpMenu():new( oMenuBar ):create()
|
||||
oSubMenu:title := "~Build"
|
||||
oSubMenu:addItem( { ::getAction( "Compile" ), {|| oIde:execAction( "Compile" ) } } )
|
||||
oSubMenu:addItem( { ::getAction( "CompilePPO" ), {|| oIde:execAction( "CompilePPO" ) } } )
|
||||
oSubMenu:addItem( { ::getAction( "BuildSource" ), {|| oIde:execAction( "BuildSource" ) } } )
|
||||
hbide_menuAddSep( oSubMenu )
|
||||
oSubMenu:addItem( { ::getAction( "Build" ), {|| oIde:execAction( "Build" ) } } )
|
||||
oSubMenu:addItem( { ::getAction( "BuildLaunch" ), {|| oIde:execAction( "BuildLaunch" ) } } )
|
||||
oSubMenu:addItem( { ::getAction( "Rebuild" ), {|| oIde:execAction( "Rebuild" ) } } )
|
||||
oSubMenu:addItem( { ::getAction( "RebuildLaunch" ), {|| oIde:execAction( "RebuildLaunch" ) } } )
|
||||
hbide_menuAddSep( oSubMenu )
|
||||
oSubMenu:addItem( { ::getAction( "SaveCompileCurrent" ), {|| oIde:execAction( "SaveCompileCurrent" ) } } )
|
||||
oSubMenu:addItem( { ::getAction( "CompilePPO" ), {|| oIde:execAction( "CompilePPO" ) } } )
|
||||
hbide_menuAddSep( oSubMenu )
|
||||
oSubMenu:addItem( { ::getAction( "LaunchProject" ), {|| oIde:execAction( "LaunchProject" ) } } )
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ METHOD IdeDocks:buildDialog()
|
||||
::oDlg:oWidget:setTabPosition( Qt_BottomDockWidgetArea, QTabWidget_South )
|
||||
::oDlg:oWidget:setCorner( Qt_BottomLeftCorner, Qt_LeftDockWidgetArea )
|
||||
::oDlg:oWidget:setCorner( Qt_BottomRightCorner, Qt_RightDockWidgetArea )
|
||||
::oDlg:oWidget:resize( 868,470 )
|
||||
::oDlg:oWidget:resize( 900,470 )
|
||||
|
||||
::oIde:oDa := ::oDlg:drawingArea
|
||||
|
||||
|
||||
@@ -230,6 +230,7 @@ CLASS IdeEdit INHERIT IdeObject
|
||||
METHOD spaces2tabs()
|
||||
METHOD removeTrailingSpaces()
|
||||
METHOD formatBraces()
|
||||
METHOD findEx( cText, nFlags )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -1160,12 +1161,16 @@ METHOD IdeEdit:blockConvert( cMode )
|
||||
|
||||
DO CASE
|
||||
CASE nMode == selectionMode_stream
|
||||
IF i == nT
|
||||
cLine := substr( cLine, 1, nL ) + hbide_convertALine( substr( cLine, nL + 1 ), cMode )
|
||||
ELSEIF i == nB
|
||||
cLine := hbide_convertALine( substr( cLine, 1, nR ), cMode ) + substr( cLine, nR + 1 )
|
||||
IF nT == nB
|
||||
cLine := substr( cLine, 1, nL ) + hbide_convertALine( substr( cLine, nL + 1, nW ), cMode ) + substr( cLine, nL + 1 + nW )
|
||||
ELSE
|
||||
cLine := hbide_convertALine( cLine, cMode )
|
||||
IF i == nT
|
||||
cLine := substr( cLine, 1, nL ) + hbide_convertALine( substr( cLine, nL + 1 ), cMode )
|
||||
ELSEIF i == nB
|
||||
cLine := hbide_convertALine( substr( cLine, 1, nR ), cMode ) + substr( cLine, nR + 1 )
|
||||
ELSE
|
||||
cLine := hbide_convertALine( cLine, cMode )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
CASE nMode == selectionMode_column
|
||||
@@ -1463,6 +1468,23 @@ METHOD IdeEdit:find( cText, nPosFrom )
|
||||
|
||||
RETURN lFound
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* nFlags will decide the position, case sensitivity and direction
|
||||
*/
|
||||
METHOD IdeEdit:findEx( cText, nFlags )
|
||||
LOCAL qCursor, lFound, cT
|
||||
|
||||
IF ( lFound := ::qEdit:find( cText, nFlags ) )
|
||||
::qEdit:centerCursor()
|
||||
qCursor := ::getCursor()
|
||||
cT := qCursor:selectedText()
|
||||
::qEdit:hbSetSelectionInfo( { qCursor:blockNumber(), qCursor:columnNumber() - len( cT ), ;
|
||||
qCursor:blockNumber(), qCursor:columnNumber(), 1 } )
|
||||
::qEdit:setTextCursor( qCursor )
|
||||
ENDIF
|
||||
|
||||
RETURN lFound
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEdit:refresh()
|
||||
|
||||
@@ -483,7 +483,7 @@ METHOD IdeFindReplace:find( lWarn )
|
||||
nFlags += iif( ::oUI:q_checkMatchCase:isChecked(), QTextDocument_FindCaseSensitively, 0 )
|
||||
nFlags += iif( ::oUI:q_radioUp:isChecked(), QTextDocument_FindBackward, 0 )
|
||||
|
||||
IF !( lFound := ::oEM:getEditCurrent():find( cText, nFlags ) ) .AND. lWarn
|
||||
IF !( lFound := ::oEM:getEditObjectCurrent():findEx( cText, nFlags ) ) .AND. lWarn
|
||||
hbide_showWarning( "Cannot find : " + cText )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -988,7 +988,7 @@ FUNCTION hbide_help( nOption )
|
||||
AAdd( txt_, "<b>Harbour Developers Mailing List</b>" )
|
||||
AAdd( txt_, "" )
|
||||
AAdd( txt_, "Please visit the home page:" )
|
||||
AAdd( txt_, "<a href='http://lists.harbour-project.org/pipermail/harbour/'>http://lists.harbour-project.org/pipermail/harbour/</a>" )
|
||||
AAdd( txt_, "<a href='http://groups.google.com/group/harbour-devel/'>http://groups.google.com/group/harbour-devel/</a>" )
|
||||
EXIT
|
||||
|
||||
CASE 3
|
||||
@@ -996,7 +996,7 @@ FUNCTION hbide_help( nOption )
|
||||
AAdd( txt_, "<b>Harbour Users Mailing List</b>" )
|
||||
AAdd( txt_, "" )
|
||||
AAdd( txt_, "Please visit the home page:" )
|
||||
AAdd( txt_, "<a href='http://lists.harbour-project.org/pipermail/harbour/'>http://lists.harbour-project.org/pipermail/harbour/</a>" )
|
||||
AAdd( txt_, "<a href='http://groups.google.com/group/harbour-users/'>http://groups.google.com/group/harbour-users/</a>" )
|
||||
EXIT
|
||||
|
||||
CASE 4
|
||||
|
||||
@@ -207,6 +207,7 @@ METHOD IdeProject:new( oIDE, aProps )
|
||||
|
||||
CLASS IdeProjManager INHERIT IdeObject
|
||||
|
||||
DATA cargo
|
||||
DATA cSaveTo
|
||||
DATA aPrjProps INIT {}
|
||||
|
||||
@@ -257,6 +258,7 @@ CLASS IdeProjManager INHERIT IdeObject
|
||||
METHOD removeProject( cProjectTitle )
|
||||
METHOD closeProject( cProjectTitle )
|
||||
METHOD promptForPath( cObjPathName, cTitle, cObjFileName, cObjPath2, cObjPath3 )
|
||||
METHOD buildSource( lExecutable )
|
||||
METHOD buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
|
||||
METHOD launchProject( cProject, cExe )
|
||||
METHOD showOutput( cOutput, mp2, oProcess )
|
||||
@@ -1209,6 +1211,88 @@ METHOD IdeProjManager:promptForPath( cObjPathName, cTitle, cObjFileName, cObjPat
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:buildSource( lExecutable )
|
||||
LOCAL oEdit, cTmp, cExeHbMk2, cCmd, cC, cCmdParams, cBuf
|
||||
LOCAL cbRed := "<font color=blue>", ceRed := "</font>"
|
||||
LOCAL lRebuild := .T.
|
||||
LOCAL aHbp := {}
|
||||
|
||||
::lPPO := .t.
|
||||
::lLaunch := lExecutable
|
||||
::cProjectInProcess := NIL
|
||||
|
||||
IF !empty( oEdit := ::oEM:getEditorCurrent() )
|
||||
IF ! hbide_isSourcePRG( oEdit:sourceFile )
|
||||
MsgBox( 'Operation not supported for this file type: "' + oEdit:sourceFile + '"' )
|
||||
RETURN Self
|
||||
ENDIF
|
||||
ELSE
|
||||
MsgBox( "No active editing source available !" )
|
||||
RETURN Self
|
||||
ENDIF
|
||||
::cargo := oEdit
|
||||
|
||||
aadd( aHbp, "-q" )
|
||||
aadd( aHbp, "-trace" )
|
||||
aadd( aHbp, "-info" )
|
||||
aadd( aHbp, "-lang=en" )
|
||||
aadd( aHbp, "-width=512" )
|
||||
aadd( aHbp, "-rebuild" )
|
||||
IF lExecutable
|
||||
aadd( aHbp, "-hbexe" )
|
||||
ELSE
|
||||
aadd( aHbp, "-s" )
|
||||
ENDIF
|
||||
aadd( aHbp, hbide_pathToOSPath( oEdit:sourceFile ) )
|
||||
|
||||
::oDockB2:show()
|
||||
::oOutputResult:oWidget:clear()
|
||||
|
||||
::oOutputResult:oWidget:append( hbide_outputLine() )
|
||||
cTmp := "Project [ " + oEdit:sourceFile + " ] " + ;
|
||||
"Launch [ " + iif( ::lLaunch , 'Yes', 'No' ) + " ] " + ;
|
||||
"Rebuild [ " + iif( lRebuild, 'Yes', 'No' ) + " ] " + ;
|
||||
"Started [ " + time() + " ]"
|
||||
::oOutputResult:oWidget:append( cTmp )
|
||||
::oOutputResult:oWidget:append( hbide_outputLine() )
|
||||
|
||||
::oIDE:oEV := IdeEnvironments():new():create( ::oIDE )
|
||||
::cBatch := ::oEV:prepareBatch( ::cWrkEnvironment )
|
||||
aeval( ::oEV:getHbmk2Commands( ::cWrkEnvironment ), {|e| aadd( aHbp, e ) } )
|
||||
|
||||
cExeHbMk2 := "hbmk2"
|
||||
|
||||
cCmdParams := hbide_array2cmdParams( aHbp )
|
||||
|
||||
::oProcess := HbpProcess():new()
|
||||
//
|
||||
::oProcess:output := {|cOut, mp2, oHbp| ::showOutput( cOut,mp2,oHbp ) }
|
||||
::oProcess:finished := {|nEC , nES, oHbp| ::finished( nEC ,nES,oHbp ) }
|
||||
::oProcess:workingPath := hbide_pathToOSPath( oEdit:cPath )
|
||||
//
|
||||
cCmd := hbide_getShellCommand()
|
||||
cC := iif( hbide_getOS() == "nix", "", "/C " )
|
||||
|
||||
IF hb_fileExists( ::cBatch )
|
||||
cBuf := memoread( ::cBatch )
|
||||
cBuf += hb_osNewLine() + cExeHbMk2 + " " + cCmdParams + hb_osNewLine()
|
||||
hb_memowrit( ::cBatch, cBuf )
|
||||
ENDIF
|
||||
//
|
||||
::outputText( cbRed + "Batch File " + iif( hb_fileExists( ::cBatch ), " Exists", " : doesn't Exist" ) + " => " + ceRed + trim( ::cBatch ) )
|
||||
::outputText( cbRed + "Batch File Contents => " + ceRed )
|
||||
::outputText( memoread( ::cBatch ) )
|
||||
::outputText( cbRed + "Command => " + ceRed + cCmd )
|
||||
::outputText( cbRed + "Arguments => " + ceRed + cC + ::cBatch )
|
||||
::outputText( hbide_outputLine() )
|
||||
//
|
||||
::oProcess:addArg( cC + ::cBatch )
|
||||
::oProcess:start( cCmd )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
|
||||
LOCAL cHbpPath, oEdit, cHbpFN, cTmp, cExeHbMk2, aHbp, cCmd, cC, oSource, cCmdParams, cBuf
|
||||
LOCAL cbRed := "<font color=blue>", ceRed := "</font>"
|
||||
@@ -1390,14 +1474,18 @@ METHOD IdeProjManager:finished( nExitCode, nExitStatus, oProcess )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
cExe := hbide_PathProc( cExe, hbide_pathToOSPath( ::oProject:location ) )
|
||||
IF empty( ::cProjectInProcess )
|
||||
cExe := hbide_PathProc( cExe, hbide_pathToOSPath( ::cargo:cPath ) )
|
||||
ELSE
|
||||
cExe := hbide_PathProc( cExe, hbide_pathToOSPath( ::oProject:location ) )
|
||||
ENDIF
|
||||
|
||||
::outputText( " " )
|
||||
IF empty( cExe )
|
||||
::outputText( "<font color=red>" + "Executable could not been detected from linker output!" + "</font>" )
|
||||
ELSE
|
||||
cExe := alltrim( cExe )
|
||||
::outputText( "<font color=blue>" + "Detected exeutable => " + cExe + "</font>" )
|
||||
::outputText( "<font color=blue>" + "Detected executable => " + cExe + "</font>" )
|
||||
ENDIF
|
||||
::outputText( " " )
|
||||
|
||||
|
||||
BIN
harbour/contrib/hbide/resources/buildsource.png
Normal file
BIN
harbour/contrib/hbide/resources/buildsource.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 164 B |
@@ -381,11 +381,13 @@ void HBQPlainTextEdit::hbGetViewportInfo()
|
||||
void HBQPlainTextEdit::hbSetSelectionInfo( PHB_ITEM selectionInfo )
|
||||
{
|
||||
rowBegins = hb_arrayGetNI( selectionInfo, 1 );
|
||||
rowEnds = hb_arrayGetNI( selectionInfo, 2 );
|
||||
columnBegins = hb_arrayGetNI( selectionInfo, 3 );
|
||||
columnBegins = hb_arrayGetNI( selectionInfo, 2 );
|
||||
rowEnds = hb_arrayGetNI( selectionInfo, 3 );
|
||||
columnEnds = hb_arrayGetNI( selectionInfo, 4 );
|
||||
selectionMode = hb_arrayGetNI( selectionInfo, 5 );
|
||||
|
||||
emit selectionChanged();
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@@ -1209,7 +1211,6 @@ bool HBQPlainTextEdit::hbKeyPressSelection( QKeyEvent * event )
|
||||
}
|
||||
}
|
||||
}
|
||||
selectionState = 0;
|
||||
return false;
|
||||
|
||||
#if 0
|
||||
|
||||
Reference in New Issue
Block a user