diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index 0134ad3160..9231eb8129 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -17,6 +17,18 @@
past entries belonging to author(s): Viktor Szakats.
*/
+2010-01-10 02:16 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
+ * contrib/hbide/hbide.prg
+ * contrib/hbide/idedocks.prg
+ * contrib/hbide/ideeditor.prg
+ * contrib/hbide/ideobject.prg
+ * contrib/hbide/ideprojmanager.prg
+ * contrib/hbide/idesources.prg
+ * contrib/hbide/idethemes.prg
+ * contrib/hbide/resources/projectproperties.ui
+ ! Some fixes and code optimizations.
+ Please report if some feature is not working ok.
+
2010-01-09 15:39 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg
index 02fe5170d4..06602e74ff 100644
--- a/harbour/contrib/hbide/hbide.prg
+++ b/harbour/contrib/hbide/hbide.prg
@@ -116,19 +116,19 @@ CLASS HbIde
DATA oPM /* Project Manager */
DATA oDK /* Main Window Components Manager */
DATA oAC /* Actions Manager */
- DATA oED /* Editor Tabs Manager */
+ DATA oEM /* Editor Tabs Manager */
DATA oSM /* Souces Manager */
DATA oFR /* Find Replace Manager */
- DATA aMeta INIT {} /* Holds current definition only */
+ DATA aMeta INIT {} /* Holds current definition only */
DATA mp1, mp2, oXbp, nEvent
- DATA aTabs INIT {}
+ DATA aTabs INIT {}
DATA cProjIni
- DATA oCurTab INIT NIL
- DATA nCurTab INIT 0
- DATA aIni INIT {}
+ DATA oCurTab INIT NIL
+ DATA nCurTab INIT 0
+ DATA aIni INIT {}
/* HBQT Objects */
DATA qLayout
@@ -174,41 +174,40 @@ CLASS HbIde
DATA oExes
DATA oLibs
DATA oDlls
- DATA aProjData INIT {}
- DATA aPrpObjs INIT {}
- DATA aEditorPath INIT {}
+ DATA aProjData INIT {}
+ DATA aPrpObjs INIT {}
+ DATA aEditorPath INIT {}
- DATA lProjTreeVisible INIT .t.
- DATA lDockRVisible INIT .f.
- DATA lDockBVisible INIT .f.
- DATA lTabCloseRequested INIT .f.
+ DATA lProjTreeVisible INIT .t.
+ DATA lDockRVisible INIT .f.
+ DATA lDockBVisible INIT .f.
+ DATA lTabCloseRequested INIT .f.
- DATA cSaveTo INIT ""
+ DATA cSaveTo INIT ""
DATA oOpenedSources
- DATA resPath INIT hb_DirBase() + "resources" + hb_OsPathSeparator()
- DATA pathSep INIT hb_OsPathSeparator()
+ DATA resPath INIT hb_DirBase() + "resources" + hb_OsPathSeparator()
+ DATA pathSep INIT hb_OsPathSeparator()
- DATA aTags INIT {}
- DATA aText INIT {}
- DATA aSources INIT {}
- DATA aFuncList INIT {}
- DATA aLines INIT {}
- DATA aComments INIT {}
- DATA aProjects INIT {}
- DATA cWrkProject INIT ''
- DATA cWrkTheme INIT ''
+ DATA aTags INIT {}
+ DATA aText INIT {}
+ DATA aSources INIT {}
+ DATA aFuncList INIT {}
+ DATA aLines INIT {}
+ DATA aComments INIT {}
+ DATA aProjects INIT {}
+ DATA cWrkProject INIT ''
+ DATA cWrkTheme INIT ''
DATA oProps
DATA cProcessInfo
DATA qProcess
- DATA aEdits INIT {}
+ DATA aEdits INIT {}
DATA cIniThemes
DATA oThemes
-
METHOD new( cProjectOrSource )
METHOD create( cProjectOrSource )
METHOD destroy()
@@ -216,29 +215,21 @@ CLASS HbIde
METHOD setPosAndSizeByIni()
METHOD setPosByIni()
METHOD setSizeByIni()
-
METHOD execAction()
METHOD manageFuncContext()
METHOD manageProjectContext()
-
METHOD updateFuncList()
METHOD gotoFunction()
-
METHOD updateProjectMenu()
METHOD updateProjectTree()
-
METHOD manageItemSelected()
METHOD getCurrentTab()
METHOD getCurCursor()
METHOD addSourceInTree()
-
METHOD createTags()
-
METHOD manageFocusInEditor()
METHOD loadUI()
-
METHOD setCodec()
-
METHOD updateTitleBar()
ENDCLASS
@@ -273,34 +264,35 @@ METHOD HbIde:create( cProjIni )
/* Load IDE Settings */
hbide_loadINI( Self, cProjIni )
- /* Setup DOCKing windows and ancilliary windows */
+ /* DOCKing windows and ancilliary windows */
::oDK := IdeDocks():new():create( Self )
- /* Build IDE's Main Window */
+ /* IDE's Main Window */
::oDK:buildDialog()
- /* Build Actions */
+ /* Actions */
::oAC := IdeActions():new( Self ):create()
- /* Build Toolbar */
+ /* Toolbar */
::oAC:buildToolBar()
- /* Build Main Menu */
+ /* Main Menu */
::oAC:buildMainMenu()
- //::oDK:buildMainMenu()
+ /* StatusBar */
::oDK:buildStatusBar()
+ /* Docking Widgets */
::oDK:buildDockWidgets()
/* Once create Find/Replace dialog */
- ::oFR := IdeFindReplace():new():create( Self )
+ ::oFR := IdeFindReplace():new( Self ):create()
/* Sources Manager */
::oSM := IdeSourcesManager():new( Self ):create()
/* Edits Manager */
- ::oED := IdeEditsManager():new( Self ):create()
+ ::oEM := IdeEditsManager():new( Self ):create()
/* Load IDE|User defined Themes */
hbide_loadThemes( Self )
/* Prepare Editor's Tabs */
- ::oED:prepareTabWidget()
+ ::oEM:prepareTabWidget()
/* Attach GRID Layout to Editor Area - Futuristic */
::qLayout := QGridLayout():new()
@@ -365,7 +357,7 @@ METHOD HbIde:create( cProjIni )
::oSM:closeSource()
CASE ::mp1 == xbeK_CTRL_G
- ::oED:goto()
+ ::oEM:goto()
CASE ::mp1 == xbeK_CTRL_F
IF !empty( ::qCurEdit )
@@ -436,7 +428,7 @@ METHOD HbIde:execAction( cKey )
::oPM:buildProject( '', .F., .F., .T., .T. )
CASE cKey == "Properties"
IF Empty( ::cWrkProject )
- MsgBox( 'No active project detected!' )
+ MsgBox( 'No active project detected' )
ENDIF
cTmp := ::oPM:getCurrentProject()
IF ( n := ascan( ::aProjects, {|e_| e_[ 3, PRJ_PRP_PROPERTIES, 2, E_oPrjTtl ] == cTmp } ) ) > 0
@@ -458,7 +450,7 @@ METHOD HbIde:execAction( cKey )
CASE cKey == "Open"
::oSM:openSource()
CASE cKey == "Save"
- ::saveSource( ::getCurrentTab(), .f., .f. )
+ ::oSM:saveSource( ::getCurrentTab(), .f., .f. )
CASE cKey == "SaveAs"
::oSM:saveSource( ::getCurrentTab(), .t., .t. )
CASE cKey == "SaveAll"
@@ -475,22 +467,22 @@ METHOD HbIde:execAction( cKey )
::oSM:closeAllOthers()
CASE cKey == "Print"
- ::oED:printPreview()
+ ::oEM:printPreview()
CASE cKey == "Undo"
- ::oED:undo()
+ ::oEM:undo()
CASE cKey == "Redo"
- ::oED:redo()
+ ::oEM:redo()
CASE cKey == "Cut"
- ::oED:cut()
+ ::oEM:cut()
CASE cKey == "Copy"
- ::oED:copy()
+ ::oEM:copy()
CASE cKey == "Paste"
- ::oED:paste()
+ ::oEM:paste()
CASE cKey == "SelectAll"
- ::oED:selectAll()
+ ::oEM:selectAll()
CASE cKey == "switchReadOnly"
- ::oED:switchToReadOnly()
+ ::oEM:switchToReadOnly()
CASE cKey == "Find"
IF !Empty( ::qCurEdit )
::oFR:show()
@@ -500,23 +492,23 @@ METHOD HbIde:execAction( cKey )
CASE cKey == "GotoMark"
//
CASE cKey == "Goto"
- ::oED:goto()
+ ::oEM:goto()
CASE cKey == "ToUpper"
- ::oED:convertSelection( cKey )
+ ::oEM:convertSelection( cKey )
CASE cKey == "ToLower"
- ::oED:convertSelection( cKey )
+ ::oEM:convertSelection( cKey )
CASE cKey == "Invert"
- ::oED:convertSelection( cKey )
+ ::oEM:convertSelection( cKey )
CASE cKey == "InsertDateTime"
- ::oED:insertText( cKey )
+ ::oEM:insertText( cKey )
CASE cKey == "InsertRandomName"
- ::oED:insertText( cKey )
+ ::oEM:insertText( cKey )
CASE cKey == "InsertExternalFile"
- ::oED:insertText( cKey )
+ ::oEM:insertText( cKey )
CASE cKey == "ZoomIn"
- ::oED:zoom( cKey )
+ ::oEM:zoom( cKey )
CASE cKey == "ZoomOut"
- ::oED:zoom( cKey )
+ ::oEM:zoom( cKey )
CASE cKey == "ToggleProjectTree"
::oDK:toggleLeftDocks()
@@ -796,10 +788,10 @@ METHOD HbIde:manageItemSelected( oXbpTreeItem )
::oPM:loadProperties( cHbi, .f., .t., .f. )
CASE ::aProjData[ n, TRE_TYPE ] == "Source File"
- ::editSource( ::aProjData[ n, TRE_ORIGINAL ] )
+ ::oSM:editSource( ::aProjData[ n, TRE_ORIGINAL ] )
CASE ::aProjData[ n, TRE_TYPE ] == "Opened Source"
- ::oED:setSourceVisible( ::aProjData[ n, TRE_DATA ] )
+ ::oEM:setSourceVisible( ::aProjData[ n, TRE_DATA ] )
CASE ::aProjData[ n, TRE_TYPE ] == "Path"
@@ -864,11 +856,11 @@ METHOD HbIde:manageProjectContext( mp1, mp2, oXbpTreeItem )
cSource := ::aProjData[ n, 5 ]
n := ascan( ::aTabs, {|e_| hbide_pathNormalized( e_[ 5 ] ) == cSource } )
//
- aadd( aPops, { "Save" , {|| ::saveSource( n ) } } )
- aadd( aPops, { "Save As" , {|| ::saveSource( n, , .t. ) } } )
+ aadd( aPops, { "Save" , {|| ::oSM:saveSource( n ) } } )
+ aadd( aPops, { "Save As" , {|| ::oSM:saveSource( n, , .t. ) } } )
aadd( aPops, { "" } )
- aadd( aPops, { "Close" , {|| ::closeSource( n ) } } )
- aadd( aPops, { "Close Others" , {|| ::closeAllOthers( n ) } } )
+ aadd( aPops, { "Close" , {|| ::oSM:closeSource( n ) } } )
+ aadd( aPops, { "Close Others" , {|| ::oSM:closeAllOthers( n ) } } )
aadd( aPops, { "" } )
aadd( aPops, { "Apply Theme" , {|| ::aTabs[ n, TAB_OEDITOR ]:applyTheme() } } )
//
@@ -903,7 +895,7 @@ METHOD HbIde:gotoFunction( mp1, mp2, oListBox )
IF ( n := ascan( ::aTags, {|e_| mp2 == e_[ 7 ] } ) ) > 0
cAnchor := trim( ::aText[ ::aTags[ n,3 ] ] )
- IF !empty( oEdit := ::oED:getEditorCurrent() )
+ IF !empty( oEdit := ::oEM:getEditorCurrent() )
IF !( oEdit:qEdit:find( cAnchor, QTextDocument_FindCaseSensitively ) )
oEdit:qEdit:find( cAnchor, QTextDocument_FindBackward + QTextDocument_FindCaseSensitively )
ENDIF
@@ -947,7 +939,7 @@ METHOD HbIde:CreateTags()
aSumData := {}
cComments := CheckComments( ::aText )
- aSummary := Summarize( ::aText, cComments, @aSumData , IIf( Upper( cExt ) == ".PRG", 9, 1 ) )
+ aSummary := Summarize( ::aText, cComments, @aSumData , iif( Upper( cExt ) == ".PRG", 9, 1 ) )
::aTags := UpdateTags( ::aSources[ i ], aSummary, aSumData, @::aFuncList, @::aLines )
#if 0
@@ -1019,7 +1011,7 @@ METHOD HbIde:updateTitleBar()
cTitle += " [" + ::cWrkProject + "] "
ENDIF
- IF !empty( oEdit := ::oED:getEditorCurrent() )
+ IF !empty( oEdit := ::oEM:getEditorCurrent() )
IF Empty( oEdit:sourceFile )
cTitle += "[" + oEdit:oTab:caption + "]"
ELSE
diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg
index 9da9b60f87..9630760d24 100644
--- a/harbour/contrib/hbide/idedocks.prg
+++ b/harbour/contrib/hbide/idedocks.prg
@@ -370,7 +370,7 @@ METHOD IdeDocks:buildOutputResults()
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB2:oWidget, Qt_Horizontal )
::oDockB2:hide()
- Qt_Slots_Connect( ::pSlots, ::oOutputResult:oWidget, "copyAvailable(bool)", {|o,l| ::outputDoubleClicked( l, o ) } )
+ ::connect( ::oIde:oOutputResult:oWidget, "copyAvailable(bool)", {|o,l| ::outputDoubleClicked( l, o ) } )
RETURN Self
@@ -387,7 +387,7 @@ METHOD IdeDocks:outputDoubleClicked( lSelected )
cText := QTextBlock():configure( qCursor:block() ):text()
IF hbide_parseFNfromStatusMsg( cText, @cSource, @nLine, .T. )
- ::oIde:editSource( cSource, 0, 0, 0, NIL, .f. )
+ ::oEM:editSource( cSource, 0, 0, 0, NIL, .f. )
qCursor := QTextCursor():configure( ::oIde:qCurEdit:textCursor() )
nLine := iif( nLine < 1, 0, nLine - 1 )
@@ -395,6 +395,8 @@ METHOD IdeDocks:outputDoubleClicked( lSelected )
qCursor:movePosition( QTextCursor_Down, QTextCursor_MoveAnchor, nLine )
::oIde:qCurEdit:setTextCursor( qCursor )
::oIde:manageFocusInEditor()
+
+hbide_dbg( "............", cSource, cText )
ENDIF
ENDIF
IF ::nPass >= 2
diff --git a/harbour/contrib/hbide/ideeditor.prg b/harbour/contrib/hbide/ideeditor.prg
index 703935cef2..46ba78ab8d 100644
--- a/harbour/contrib/hbide/ideeditor.prg
+++ b/harbour/contrib/hbide/ideeditor.prg
@@ -305,11 +305,11 @@ METHOD IdeEditsManager:setSourceVisible( cSource )
METHOD IdeEditsManager:setSourceVisibleByIndex( nIndex ) /* nIndex is 0 based */
- IF ::qTabWidget:count() > 0 .AND. ::qTabWidget:count() > nIndex
+ IF ::qTabWidget:count() == 0 .OR. nIndex >= ::qTabWidget:count()
nIndex := 0
ENDIF
- ::qTabWidget:setCurrentIndex( 0 )
- ::getEditorByIndex( 0 ):setDocumentProperties()
+ ::qTabWidget:setCurrentIndex( nIndex )
+ ::getEditorByIndex( nIndex ):setDocumentProperties()
RETURN .f.
@@ -727,7 +727,7 @@ METHOD IdeEditor:exeBlock( nMode, p, p1 )
SWITCH nMode
/* QPlainTextEdit */
CASE 1 // "customContextMenuRequested(QPoint)"
- IF !empty( pAct := ::oED:qContextMenu:exec_1( ::qEdit:mapToGlobal( p ) ) )
+ IF !empty( pAct := ::oEM:qContextMenu:exec_1( ::qEdit:mapToGlobal( p ) ) )
qAct := QAction():configure( pAct )
DO CASE
CASE qAct:text() == "Apply Theme"
@@ -784,17 +784,13 @@ METHOD IdeEditor:setDocumentProperties()
qCursor := QTextCursor():configure( ::qEdit:textCursor() )
IF !( ::lLoaded ) /* First Time */
- hbide_dbg( "......................................." )
-
::lLoaded := .T.
::qEdit:setPlainText( hb_memoRead( ::sourceFile ) )
qCursor:setPosition( ::nPos )
::qEdit:setTextCursor( qCursor )
QScrollBar():configure( ::qEdit:horizontalScrollBar() ):setValue( ::nHPos )
QScrollBar():configure( ::qEdit:verticalScrollBar() ):setValue( ::nVPos )
-
- hbide_dbg( "........................................................" )
-
+ ::qTabWidget:setTabIcon( ::qTabWidget:indexOf( ::oTab:oWidget ), ::resPath + "tabunmodified.png" )
ENDIF
::nBlock := qCursor:blockNumber()
@@ -804,6 +800,7 @@ METHOD IdeEditor:setDocumentProperties()
::oIde:createTags()
::oIde:updateFuncList()
::oIde:updateTitleBar()
+
::dispEditInfo()
::oIde:manageFocusInEditor()
@@ -817,7 +814,7 @@ METHOD IdeEditor:activateTab( mp1, mp2, oXbp )
HB_SYMBOL_UNUSED( mp1 )
- IF !empty( oEdit := ::oED:getEditorByTabObject( oXbp ) )
+ IF !empty( oEdit := ::oEM:getEditorByTabObject( oXbp ) )
::oIde:nCurTab := mp2
oEdit:setDocumentProperties()
ENDIF
@@ -956,7 +953,7 @@ METHOD IdeEditor:removeTabPage()
IF ::qTabWidget:count() == 0
IF ::lDockRVisible
::oDockR:hide()
- ::lDockRVisible := .f.
+ ::oIde:lDockRVisible := .f.
ENDIF
ENDIF
diff --git a/harbour/contrib/hbide/ideobject.prg b/harbour/contrib/hbide/ideobject.prg
index 53f0bebf75..fd60a3c068 100644
--- a/harbour/contrib/hbide/ideobject.prg
+++ b/harbour/contrib/hbide/ideobject.prg
@@ -80,7 +80,7 @@ CLASS IdeObject
DATA qContextMenu
ACCESS oFR INLINE ::oIde:oFR
- ACCESS oED INLINE ::oIde:oED
+ ACCESS oEM INLINE ::oIde:oEM
ACCESS oPM INLINE ::oIde:oPM
ACCESS oDK INLINE ::oIde:oDK
ACCESS oAC INLINE ::oIde:oAC
@@ -98,6 +98,8 @@ CLASS IdeObject
ACCESS cWrkTheme INLINE ::oIde:cWrkTheme
ACCESS aProjects INLINE ::oIde:aProjects
ACCESS aINI INLINE ::oIde:aINI
+ ACCESS aEdits INLINE ::oIde:aEdits
+ ACCESS aSources INLINE ::oIde:aSources
ACCESS oDlg INLINE ::oIde:oDlg
ACCESS qDlg INLINE ::oIde:oDlg:oWidget
@@ -136,18 +138,32 @@ CLASS IdeObject
ACCESS lTabCloseRequested INLINE ::oIde:lTabCloseRequested
ACCESS oSBar INLINE ::oIde:oSBar
- METHOD new() VIRTUAL
- METHOD create() VIRTUAL
- METHOD destroy() VIRTUAL
-
DATA aSlots INIT {}
DATA aEvents INIT {}
METHOD connect()
- ERROR HANDLER OnError()
+ METHOD getCurrentTab( ... ) INLINE ::oIde:getCurrentTab( ... )
+ METHOD getCurCursor( ... ) INLINE ::oIde:getCurCursor( ... )
+ METHOD createTags( ... ) INLINE ::oIde:createTags( ... )
+ METHOD addSourceInTree( ... ) INLINE ::oIde:addSourceInTree( ... )
+ METHOD setPosAndSizeByIni( ... ) INLINE ::oIde:setPosAndSizeByIni( ... )
+ METHOD setPosByIni( ... ) INLINE ::oIde:setPosByIni( ... )
+ METHOD setSizeByIni( ... ) INLINE ::oIde:setSizeByIni( ... )
+ METHOD execAction( ... ) INLINE ::oIde:execAction( ... )
+ METHOD manageFuncContext( ... ) INLINE ::oIde:manageFuncContext( ... )
+ METHOD manageProjectContext( ... ) INLINE ::oIde:manageProjectContext( ... )
+ METHOD updateFuncList( ... ) INLINE ::oIde:updateFuncList( ... )
+ METHOD gotoFunction( ... ) INLINE ::oIde:gotoFunction( ... )
+ METHOD updateProjectMenu( ... ) INLINE ::oIde:updateProjectMenu( ... )
+ METHOD updateProjectTree( ... ) INLINE ::oIde:updateProjectTree( ... )
+ METHOD manageItemSelected( ... ) INLINE ::oIde:manageItemSelected( ... )
+ METHOD manageFocusInEditor( ... ) INLINE ::oIde:manageFocusInEditor( ... )
+ METHOD loadUI( ... ) INLINE ::oIde:loadUI( ... )
+ METHOD setCodec( ... ) INLINE ::oIde:setCodec( ... )
+ METHOD updateTitleBar( ... ) INLINE ::oIde:updateTitleBar( ... )
- METHOD getCurrentTab() INLINE ::oIde:getCurrentTab()
- METHOD editSource( ... ) INLINE ::oIde:oSM:editSource( ... )
+ METHOD editSource( ... ) INLINE ::oSM:editSource( ... )
+ METHOD getEditorByIndex( ... ) INLINE ::oSM:getEditorByIndex( ... )
ENDCLASS
@@ -164,22 +180,3 @@ METHOD IdeObject:connect( qWidget, cSlot, bBlock )
RETURN Self
/*----------------------------------------------------------------------*/
-
-
-METHOD IdeObject:onError( ... )
- LOCAL cMsg
-
- cMsg := __GetMessage()
- IF SubStr( cMsg, 1, 1 ) == "_"
- cMsg := SubStr( cMsg, 2 )
- ENDIF
-
- IF left( cMsg, 2 ) == "Q_"
- RETURN ::oUI:&cMsg( ... )
- ELSE
- RETURN ::oIde:&cMsg( ... )
- ENDIF
-
- RETURN nil
-
-/*----------------------------------------------------------------------*/
diff --git a/harbour/contrib/hbide/ideprojmanager.prg b/harbour/contrib/hbide/ideprojmanager.prg
index 9a75ca0a60..44eea66e2d 100644
--- a/harbour/contrib/hbide/ideprojmanager.prg
+++ b/harbour/contrib/hbide/ideprojmanager.prg
@@ -268,13 +268,13 @@ METHOD IdeProjManager:loadProperties( cProjFileName, lNew, lFetch, lUpdateTree )
IF n == 0
aadd( ::oIde:aProjects, { lower( cProjFileName ), cProjFileName, aclone( ::aPrjProps ) } )
IF lUpdateTree
- ::updateProjectTree( ::aPrjProps )
+ ::oIde:updateProjectTree( ::aPrjProps )
ENDIF
hbide_mnuAddFileToMRU( ::oIde, cProjFileName, INI_RECENTPROJECTS )
ELSE
::aProjects[ n, 3 ] := aclone( ::aPrjProps )
IF lUpdateTree
- ::updateProjectTree( ::aPrjProps )
+ ::oIde:updateProjectTree( ::aPrjProps )
ENDIF
IF lUpdateTree .AND. ::aPrjProps[ PRJ_PRP_PROPERTIES, 2, E_qPrjType ] <> t
MsgBox( "::removeProjectFromTree( ::aPrjProps )" )
@@ -307,13 +307,16 @@ METHOD IdeProjManager:fetchProperties()
::oUI:q_comboPrjType:setCurrentIndex( 0 )
ENDCASE
- ::oUI:signal( "buttonCn" , "clicked()", {|| ::oUI:oWidget:close() } )
- ::oUI:signal( "buttonSave" , "clicked()", {|| ::save( .F. ) } )
- ::oUI:signal( "buttonSaveExit", "clicked()", {|| ::save( .T. ) } )
- ::oUI:signal( "buttonSelect" , "clicked()", {|| ::addSources() } )
- ::oUI:signal( "tabWidget" , "currentChanged(int)", {|o,p| ::updateHbp( p, o ) } )
+ ::oUI:q_buttonChoosePrjLoc:setIcon( ::resPath + "lookup.png" )
+ ::oUI:q_buttonChooseWd:setIcon( ::resPath + "lookup.png" )
+ ::oUI:q_buttonChooseDest:setIcon( ::resPath + "lookup.png" )
+
+ ::oUI:signal( "buttonCn" , "clicked()", {|| ::oUI:oWidget:close() } )
+ ::oUI:signal( "buttonSave" , "clicked()", {|| ::save( .F. ) } )
+ ::oUI:signal( "buttonSaveExit" , "clicked()", {|| ::save( .T. ) } )
+ ::oUI:signal( "buttonSelect" , "clicked()", {|| ::addSources() } )
+ ::oUI:signal( "tabWidget" , "currentChanged(int)", {|o,p| ::updateHbp( p, o ) } )
- // TODO: Loading lookup.png inside these buttons...
::oUI:signal( "buttonChoosePrjLoc", "clicked()", {|| ::PromptForPath( 'editPrjLoctn', 'Choose the Project Location...', 'editOutName', "editWrkFolder", "editDstFolder" ) } )
::oUI:signal( "buttonChooseWd" , "clicked()", {|| ::PromptForPath( 'editWrkFolder', 'Choose a Working Folder...' ) } )
::oUI:signal( "buttonChooseDest" , "clicked()", {|| ::PromptForPath( 'editDstFolder', 'Choose a Destination Folder...' ) } )
@@ -367,10 +370,9 @@ METHOD IdeProjManager:fetchProperties()
/*----------------------------------------------------------------------*/
METHOD IdeProjManager:save( lCanClose )
- LOCAL a_, a4_1
+ LOCAL a_, a4_1, lOk
LOCAL typ_:= { "Executable", "Lib", "Dll" }
LOCAL txt_:= {}
- LOCAL lOk
* Validate certain parameters before continuing ... (vailtom)
IF Empty( ::oUI:q_editOutName:text() )
@@ -733,7 +735,7 @@ METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
::lLaunch := lLaunch
::cProjectInProcess := cProject
- IF ::lPPO .AND. ::getCurrentTab() == 0
+ IF ::lPPO .AND. ::oIde:getCurrentTab() == 0
MsgBox( 'No source available to be compiled' )
RETURN Self
ENDIF
@@ -790,7 +792,7 @@ METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
aeval( hbide_filesToSources( ::oProject:sources ), {|e| aadd( aHbp, e ) } )
ELSE
- IF !empty( oEdit := ::oED:getEditorCurrent() )
+ IF !empty( oEdit := ::oEM:getEditorCurrent() )
IF hbide_isSourcePRG( oEdit:sourceFile )
aadd( aHbp, "-hbcmp" )
aadd( aHbp, "-s" )
@@ -816,7 +818,7 @@ METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
ENDIF
ENDIF
- ::lDockBVisible := .t.
+ ::oIde:lDockBVisible := .t.
::oDockB2:show()
::oOutputResult:oWidget:clear()
@@ -854,6 +856,9 @@ METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
#else
qStringList := QStringList():new()
+ IF ::lPPO
+ qStringList:append( "-hbraw" )
+ ENDIF
qStringList:append( cHbpPath )
//
::qProcess:setWorkingDirectory( ::oProject:wrkDirectory() )
@@ -862,7 +867,7 @@ METHOD IdeProjManager:buildProject( cProject, lLaunch, lRebuild, lPPO, lViaQt )
#endif
ELSE
cOutput := "" ; cErrors := ""
- nResult := hb_processRun( ( "hbmk2 " + cHbpPath ), , @cOutput, @cErrors )
+ nResult := hb_processRun( ( "hbmk2 " + iif( ::lPPO, "-hbraw ", "" ) + cHbpPath ), , @cOutput, @cErrors )
cTmp := cOutput + CRLF
cTmp += IIF( empty( cErrors ), "", cErrors ) + CRLF
diff --git a/harbour/contrib/hbide/idesources.prg b/harbour/contrib/hbide/idesources.prg
index bfea5ff4c0..a013c8d7d5 100644
--- a/harbour/contrib/hbide/idesources.prg
+++ b/harbour/contrib/hbide/idesources.prg
@@ -118,7 +118,8 @@ METHOD IdeSourcesManager:loadSources()
/* File nPos nVPos nHPos cTheme lAlert lVisible */
::editSource( a_[ 1 ], a_[ 2 ], a_[ 3 ], a_[ 4 ], a_[ 5 ], .t., .f. )
NEXT
- ::oED:setSourceVisibleByIndex( val( ::aIni[ INI_HBIDE, RecentTabIndex ] ) )
+
+ ::oEM:setSourceVisibleByIndex( val( ::aIni[ INI_HBIDE, RecentTabIndex ] ) )
ENDIF
RETURN Self
@@ -128,16 +129,17 @@ METHOD IdeSourcesManager:loadSources()
* Save selected Tab on harddisk and return .T. if successfull!
*/
METHOD IdeSourcesManager:saveSource( nTab, lCancel, lAs )
- LOCAL oEdit, lNew, cBuffer, qDocument, nIndex, cSource, cFile, cExt, cNewFile
- LOCAL cFileToSave
+ LOCAL oEdit, lNew, cBuffer, qDocument, nIndex, cSource
+ LOCAL cFileToSave, cFile, cExt, cNewFile
- DEFAULT nTab TO ::getCurrentTab()
+ DEFAULT nTab TO ::oIde:getCurrentTab()
DEFAULT lAs TO .F.
lCancel := .F.
- IF !empty( oEdit := ::oED:getEditorByTabPosition( nTab ) )
+ IF !empty( oEdit := ::oEM:getEditorByTabPosition( nTab ) )
cSource := oEdit:sourceFile
+
lNew := Empty( cSource ) .OR. lAs
IF lNew
cNewFile := ::selectSource( 'save', ;
@@ -185,7 +187,7 @@ METHOD IdeSourcesManager:saveSource( nTab, lCancel, lAs )
ENDIF
qDocument:setModified( .f. )
- ::aSources := { oEdit:sourceFile }
+ ::oIde:aSources := { oEdit:sourceFile }
::createTags()
::updateFuncList()
nIndex := ::qTabWidget:indexOf( oEdit:oTab:oWidget )
@@ -210,14 +212,14 @@ METHOD IdeSourcesManager:editSource( cSourceFile, nPos, nHPos, nVPos, cTheme, lA
MsgBox( 'File not found: ' + cSourceFile )
RETURN Self
ENDIF
- IF ::oED:isOpen( cSourceFile )
+ IF ::oEM:isOpen( cSourceFile )
IF lAlert
IF hbide_getYesNo( cSourceFile + " is already open.", ;
"Want to re-load it again ?", "File Open Info!" )
- ::oED:reLoad( cSourceFile )
+ ::oEM:reLoad( cSourceFile )
ENDIF
ENDIF
- ::oED:setSourceVisible( cSourceFile )
+ ::oEM:setSourceVisible( cSourceFile )
RETURN Self
ENDIF
ENDIF
@@ -226,9 +228,9 @@ METHOD IdeSourcesManager:editSource( cSourceFile, nPos, nHPos, nVPos, cTheme, lA
DEFAULT nHPos TO 0
DEFAULT nVPos TO 0
- ::oED:buildEditor( cSourceFile, nPos, nHPos, nVPos, cTheme )
+ ::oEM:buildEditor( cSourceFile, nPos, nHPos, nVPos, cTheme )
IF lVisible
- ::oED:setSourceVisible( cSourceFile )
+ ::oEM:setSourceVisible( cSourceFile )
ENDIF
IF !Empty( cSourceFile ) .AND. !hbide_isSourcePPO( cSourceFile )
@@ -242,9 +244,9 @@ METHOD IdeSourcesManager:editSource( cSourceFile, nPos, nHPos, nVPos, cTheme, lA
METHOD IdeSourcesManager:closeSource( nTab, lCanCancel, lCanceled )
LOCAL lSave, n, oEdit
- DEFAULT nTab TO ::getCurrentTab()
+ DEFAULT nTab TO ::oIde:getCurrentTab()
- IF !empty( oEdit := ::oED:getEditorByTabPosition( nTab ) )
+ IF !empty( oEdit := ::oEM:getEditorByTabPosition( nTab ) )
DEFAULT lCanCancel TO .F.
lCanceled := .F.
@@ -352,7 +354,7 @@ METHOD IdeSourcesManager:saveAndExit()
*/
METHOD IdeSourcesManager:revertSource( nTab )
- DEFAULT nTab TO ::getCurrentTab()
+ DEFAULT nTab TO ::oIde:getCurrentTab()
IF nTab < 1
RETURN .F.
diff --git a/harbour/contrib/hbide/idethemes.prg b/harbour/contrib/hbide/idethemes.prg
index f16b90a477..62d72a5826 100644
--- a/harbour/contrib/hbide/idethemes.prg
+++ b/harbour/contrib/hbide/idethemes.prg
@@ -182,8 +182,9 @@ METHOD IdeThemes:create( oIde, cIniFile )
'do','while','exit',;
'for','each','next','step','to',;
'class','endclass','method','data','var','destructor','inline','assign','access',;
- 'inherit','init','create','virtual',;
- 'begin','sequence','try','catch','always','recover','hb_symbol_unused' }
+ 'inherit','init','create','virtual','message',;
+ 'begin','sequence','try','catch','always','recover','hb_symbol_unused', ;
+ 'error','handler' }
s := ""; aeval( b_, {|e| s += iif( empty( s ), "", "|" ) + "\b" + upper( e ) + "\b|\b" + e + "\b" } )
aadd( ::aPatterns, { "HarbourKeywords" , s } )
diff --git a/harbour/contrib/hbide/resources/projectproperties.ui b/harbour/contrib/hbide/resources/projectproperties.ui
index 3a6a805eb9..b450646731 100644
--- a/harbour/contrib/hbide/resources/projectproperties.ui
+++ b/harbour/contrib/hbide/resources/projectproperties.ui
@@ -134,7 +134,7 @@ p, li { white-space: pre-wrap; }
124
80
- 191
+ 181
20
@@ -167,7 +167,7 @@ p, li { white-space: pre-wrap; }
124
112
- 191
+ 181
20
@@ -200,7 +200,7 @@ p, li { white-space: pre-wrap; }
124
144
- 191
+ 181
20
@@ -234,7 +234,7 @@ p, li { white-space: pre-wrap; }
124
176
- 191
+ 181
20
@@ -340,14 +340,14 @@ p, li { white-space: pre-wrap; }
- 320
+ 316
110
- 24
+ 29
24
- ...
+
@@ -359,14 +359,14 @@ p, li { white-space: pre-wrap; }
- 320
+ 316
78
- 24
+ 29
24
- ...
+
@@ -381,14 +381,14 @@ p, li { white-space: pre-wrap; }
- 320
+ 316
141
- 24
+ 29
24
- ...
+