2010-03-06 15:32 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
+ contrib/hbide/resources/fl_c.png
+ contrib/hbide/resources/fl_dll.png
+ contrib/hbide/resources/fl_exe.png
+ contrib/hbide/resources/fl_ini.png
+ contrib/hbide/resources/fl_lib.png
+ contrib/hbide/resources/fl_prg.png
+ contrib/hbide/resources/fl_res.png
+ contrib/hbide/resources/fl_txt.png
* contrib/hbide/resources/hb-16x16.png
* contrib/hbide/resources/hb-32x32.png
* contrib/hbide/resources/hbide.png
+ contrib/hbide/resources/hbidesplashwatermark.png
+ contrib/hbide/resources/panel_2.png
+ contrib/hbide/resources/panel_3.png
+ contrib/hbide/resources/panel_4.png
+ contrib/hbide/resources/panel_5.png
+ contrib/hbide/resources/panel_6.png
+ contrib/hbide/resources/panel_7.png
+ contrib/hbide/resources/source_c.png
+ contrib/hbide/resources/source_cpp.png
+ contrib/hbide/resources/source_h.png
+ contrib/hbide/resources/source_o.png
+ contrib/hbide/resources/source_prg.png
+ contrib/hbide/resources/source_res.png
+ contrib/hbide/resources/source_txt.png
+ contrib/hbide/resources/source_unknown.png
+ Added more images for user interface.
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
- Removed xMate ".xhp" project loading icon.
* contrib/hbxbp/xbpwindow.prg
! Commented out "resize" event as it was hanging the
applications without any graspable reason. Will be
investigated deeply in future.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ contrib/hbide/idethemes.prg
! This commit corrects/fixes issues reported by Viktor.
Please scratch them again. I might have missed a couple
of them.
+ Implemented: A root panel called "Stats" containing,
presently, "Welcome" and "FAQ's" tabs, detailed below.
Now hbIDE has a mechanism to hold as many informative
slots as the development will demand in future.
<Welcome>: It holds the exiting "Projects" information:
Title Type Sources Last_Modified Location
The field <Title> is a link to open detailed view of its
contents which contain fields:
Source Type Size Last_Modified Location
Clicking on a <Source> opens it in the editor under "Main" panel.
<Home> icon is added in the top-toolbar next to <Exit> icon
which leads you to <Stats> panel holding <Welcome> and <FAQs> tabs.
Projects -> Detail -> Source : backward navigation is enabled
through context menu withing browser. The options within thus
context menu has <Print> option which leads to print preview
dialog and eventually to printing on the paper.
<FAQs>: This holds short questions and answers as per the
industry standards. I could put only two of them still.
Please forward the ones you consider should go to this list.
! Changed: main window icon as previous one was not giving a
strong impression to be remember for long.
! Loading/Opening a project: now offers .hbp or .xhp options.
.xhp is converted to .hbp and is written to disk and project
is loaded as usual. This should be a one-time process.
! Click on function list now position the clicked function
in the center of the editor.
! IdeSettings.ini is now hbide.set and is saved where hbide.ini
is residing. The change is name was nessary as to avoid
wrong impression of .ini nature as a text file. It is binary
by nature.
! Many more artifacts which I tend to forget, please bear it
with my age.
@@ -17,6 +17,105 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-03-06 15:32 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
+ contrib/hbide/resources/fl_c.png
|
||||
+ contrib/hbide/resources/fl_dll.png
|
||||
+ contrib/hbide/resources/fl_exe.png
|
||||
+ contrib/hbide/resources/fl_ini.png
|
||||
+ contrib/hbide/resources/fl_lib.png
|
||||
+ contrib/hbide/resources/fl_prg.png
|
||||
+ contrib/hbide/resources/fl_res.png
|
||||
+ contrib/hbide/resources/fl_txt.png
|
||||
* contrib/hbide/resources/hb-16x16.png
|
||||
* contrib/hbide/resources/hb-32x32.png
|
||||
* contrib/hbide/resources/hbide.png
|
||||
+ contrib/hbide/resources/hbidesplashwatermark.png
|
||||
+ contrib/hbide/resources/panel_2.png
|
||||
+ contrib/hbide/resources/panel_3.png
|
||||
+ contrib/hbide/resources/panel_4.png
|
||||
+ contrib/hbide/resources/panel_5.png
|
||||
+ contrib/hbide/resources/panel_6.png
|
||||
+ contrib/hbide/resources/panel_7.png
|
||||
+ contrib/hbide/resources/source_c.png
|
||||
+ contrib/hbide/resources/source_cpp.png
|
||||
+ contrib/hbide/resources/source_h.png
|
||||
+ contrib/hbide/resources/source_o.png
|
||||
+ contrib/hbide/resources/source_prg.png
|
||||
+ contrib/hbide/resources/source_res.png
|
||||
+ contrib/hbide/resources/source_txt.png
|
||||
+ contrib/hbide/resources/source_unknown.png
|
||||
+ Added more images for user interface.
|
||||
|
||||
* contrib/hbide/resources/projectpropertiesex.ui
|
||||
* contrib/hbide/resources/projectpropertiesex.uic
|
||||
- Removed xMate ".xhp" project loading icon.
|
||||
|
||||
* contrib/hbxbp/xbpwindow.prg
|
||||
! Commented out "resize" event as it was hanging the
|
||||
applications without any graspable reason. Will be
|
||||
investigated deeply in future.
|
||||
|
||||
* contrib/hbide/hbide.hbp
|
||||
* contrib/hbide/hbide.prg
|
||||
* contrib/hbide/ideactions.prg
|
||||
* contrib/hbide/idedocks.prg
|
||||
* contrib/hbide/ideeditor.prg
|
||||
* contrib/hbide/idehome.prg
|
||||
* contrib/hbide/idemisc.prg
|
||||
* contrib/hbide/ideobject.prg
|
||||
* contrib/hbide/ideprojmanager.prg
|
||||
* contrib/hbide/idesaveload.prg
|
||||
* contrib/hbide/idestylesheets.prg
|
||||
+ contrib/hbide/idethemes.prg
|
||||
|
||||
! This commit corrects/fixes issues reported by Viktor.
|
||||
Please scratch them again. I might have missed a couple
|
||||
of them.
|
||||
|
||||
+ Implemented: A root panel called "Stats" containing,
|
||||
presently, "Welcome" and "FAQ's" tabs, detailed below.
|
||||
Now hbIDE has a mechanism to hold as many informative
|
||||
slots as the development will demand in future.
|
||||
|
||||
<Welcome>: It holds the exiting "Projects" information:
|
||||
Title Type Sources Last_Modified Location
|
||||
|
||||
The field <Title> is a link to open detailed view of its
|
||||
contents which contain fields:
|
||||
Source Type Size Last_Modified Location
|
||||
|
||||
Clicking on a <Source> opens it in the editor under "Main" panel.
|
||||
|
||||
<Home> icon is added in the top-toolbar next to <Exit> icon
|
||||
which leads you to <Stats> panel holding <Welcome> and <FAQs> tabs.
|
||||
|
||||
Projects -> Detail -> Source : backward navigation is enabled
|
||||
through context menu withing browser. The options within thus
|
||||
context menu has <Print> option which leads to print preview
|
||||
dialog and eventually to printing on the paper.
|
||||
|
||||
<FAQs>: This holds short questions and answers as per the
|
||||
industry standards. I could put only two of them still.
|
||||
Please forward the ones you consider should go to this list.
|
||||
|
||||
! Changed: main window icon as previous one was not giving a
|
||||
strong impression to be remember for long.
|
||||
|
||||
! Loading/Opening a project: now offers .hbp or .xhp options.
|
||||
.xhp is converted to .hbp and is written to disk and project
|
||||
is loaded as usual. This should be a one-time process.
|
||||
|
||||
! Click on function list now position the clicked function
|
||||
in the center of the editor.
|
||||
|
||||
! IdeSettings.ini is now hbide.set and is saved where hbide.ini
|
||||
is residing. The change is name was nessary as to avoid
|
||||
wrong impression of .ini nature as a text file. It is binary
|
||||
by nature.
|
||||
|
||||
! Many more artifacts which I tend to forget, please bear it
|
||||
with my age.
|
||||
|
||||
2010-03-06 23:44 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/src/vm/evalhb.c
|
||||
* harbour/src/vm/asort.c
|
||||
|
||||
@@ -24,6 +24,7 @@ ideprojmanager.prg
|
||||
idesources.prg
|
||||
ideharbourhelp.prg
|
||||
ideenviron.prg
|
||||
idehome.prg
|
||||
|
||||
ideparseexpr.c
|
||||
|
||||
|
||||
@@ -140,6 +140,7 @@ CLASS HbIde
|
||||
DATA oSkeltnUI
|
||||
DATA oFindDock
|
||||
DATA oHL
|
||||
DATA oHM
|
||||
|
||||
DATA oUI
|
||||
|
||||
@@ -154,7 +155,6 @@ CLASS HbIde
|
||||
DATA aProjData INIT {}
|
||||
DATA aPrpObjs INIT {}
|
||||
DATA aEditorPath INIT {}
|
||||
DATA nCurView INIT 1
|
||||
|
||||
/* HBQT Objects */
|
||||
DATA qLayout
|
||||
@@ -286,7 +286,6 @@ CLASS HbIde
|
||||
METHOD execProjectAction( cKey )
|
||||
METHOD execSourceAction( cKey )
|
||||
METHOD execEditorAction( cKey )
|
||||
METHOD execWindowsAction( cKey )
|
||||
|
||||
/* Methods to be evaluated as macros */
|
||||
METHOD getWord( lSelect )
|
||||
@@ -335,8 +334,7 @@ METHOD HbIde:showApplicationCursor( nCursor )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbIde:create( cProjIni )
|
||||
#if 1
|
||||
LOCAL qPixmap, qSplash, nStart
|
||||
LOCAL qPixmap, qSplash
|
||||
|
||||
qPixmap := QPixmap():new( hb_dirBase() + "resources" + hb_osPathSeparator() + "hbidesplash.png" )
|
||||
qSplash := QSplashScreen():new()
|
||||
@@ -345,7 +343,6 @@ METHOD HbIde:create( cProjIni )
|
||||
qSplash:show()
|
||||
::showApplicationCursor( Qt_BusyCursor )
|
||||
QApplication():processEvents()
|
||||
#endif
|
||||
|
||||
DEFAULT cProjIni TO ::cProjIni
|
||||
::cProjIni := cProjIni
|
||||
@@ -411,6 +408,9 @@ METHOD HbIde:create( cProjIni )
|
||||
/* Load Environments */
|
||||
::oEV := IdeEnvironments():new( Self, hbide_pathToOSPath( ::aINI[ INI_HBIDE, PathEnv ] + ::pathSep + "hbide.env" ) ):create()
|
||||
|
||||
/* Home Implementation */
|
||||
::oHM := IdeHome():new():create( Self )
|
||||
|
||||
/* Just to spare some GC calls */
|
||||
::qCursor := QTextCursor():new()
|
||||
::qBrushWrkProject := QBrush():new( "QColor", QColor():new( 255,0,0 ) )
|
||||
@@ -453,21 +453,16 @@ METHOD HbIde:create( cProjIni )
|
||||
::oDockB1:hide()
|
||||
::oDockB2:hide()
|
||||
::oDockB:hide()
|
||||
//::oDocViewDock:hide()
|
||||
::oDocViewDock:hide()
|
||||
|
||||
/* Request Main Window to Appear on the Screen */
|
||||
::oHM:refresh()
|
||||
::oDlg:Show()
|
||||
::oDK:setView( "Stats" )
|
||||
|
||||
nStart := seconds()
|
||||
DO WHILE .t.
|
||||
QApplication():processEvents()
|
||||
IF seconds()-nStart > 5
|
||||
::showApplicationCursor()
|
||||
qSplash:close()
|
||||
qSplash := NIL
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
::showApplicationCursor()
|
||||
qSplash:close()
|
||||
qSplash := NIL
|
||||
|
||||
DO WHILE .t.
|
||||
::nEvent := AppEvent( @::mp1, @::mp2, @::oXbp )
|
||||
@@ -531,6 +526,7 @@ METHOD HbIde:create( cProjIni )
|
||||
hbide_dbg( "Before ::oDlg:destroy()", memory( 1001 ), hbqt_getMemUsed() )
|
||||
hbide_dbg( " " )
|
||||
|
||||
::oHM:destroy()
|
||||
::oHL:destroy()
|
||||
::oThemes:destroy()
|
||||
::oFindInFiles:destroy()
|
||||
@@ -560,6 +556,10 @@ METHOD HbIde:execAction( cKey )
|
||||
CASE "Exit"
|
||||
PostAppEvent( xbeP_Close, NIL, NIL, ::oDlg )
|
||||
EXIT
|
||||
CASE "Home"
|
||||
::oDK:setView( "Stats" )
|
||||
//::oHM:refresh()
|
||||
EXIT
|
||||
CASE "NewProject"
|
||||
CASE "LoadProject"
|
||||
CASE "LaunchProject"
|
||||
@@ -628,7 +628,7 @@ METHOD HbIde:execAction( cKey )
|
||||
CASE "ToggleProjectTree"
|
||||
CASE "ToggleBuildInfo"
|
||||
CASE "ToggleFuncList"
|
||||
::execWindowsAction( cKey )
|
||||
//::execWindowsAction( cKey )
|
||||
EXIT
|
||||
CASE "Help"
|
||||
::oHelpDock:show()
|
||||
@@ -849,23 +849,6 @@ METHOD HbIde:execProjectAction( cKey )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbIde:execWindowsAction( cKey )
|
||||
|
||||
SWITCH cKey
|
||||
CASE "ToggleProjectTree"
|
||||
::oDK:toggleLeftDocks()
|
||||
EXIT
|
||||
CASE "ToggleBuildInfo"
|
||||
::oDK:toggleBottomDocks()
|
||||
EXIT
|
||||
CASE "ToggleFuncList"
|
||||
::oDK:toggleRightDocks()
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbIde:setPosAndSizeByIni( qWidget, nPart )
|
||||
LOCAL aRect
|
||||
|
||||
@@ -1029,12 +1012,12 @@ METHOD HbIde:updateProjectTree( aPrj )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbIde:manageItemSelected( oXbpTreeItem )
|
||||
LOCAL n, cHbp, aPrj
|
||||
LOCAL n, cHbp
|
||||
|
||||
IF oXbpTreeItem == ::oProjRoot
|
||||
n := -1
|
||||
n := -1
|
||||
ELSEIF oXbpTreeItem == ::oOpenedSources
|
||||
n := -2
|
||||
n := -2
|
||||
ELSE
|
||||
n := ascan( ::aProjData, {|e_| e_[ 1 ] == oXbpTreeItem } )
|
||||
ENDIF
|
||||
@@ -1044,11 +1027,7 @@ METHOD HbIde:manageItemSelected( oXbpTreeItem )
|
||||
CASE n == -2 // "Files"
|
||||
CASE n == -1
|
||||
CASE ::aProjData[ n, TRE_TYPE ] == "Project Name"
|
||||
aPrj := ::aProjData[ n, 5 ]
|
||||
|
||||
cHbp := hbide_pathToOSPath( aPrj[ PRJ_PRP_PROPERTIES, 2, PRJ_PRP_LOCATION ] + s_pathSep + ;
|
||||
aPrj[ PRJ_PRP_PROPERTIES, 2, PRJ_PRP_OUTPUT ] + ".hbp" )
|
||||
|
||||
cHbp := ::oPM:getProjectFileNameFromTitle( ::aProjData[ n, TRE_ORIGINAL ] )
|
||||
::oPM:loadProperties( cHbp, .f., .t., .f. )
|
||||
|
||||
CASE ::aProjData[ n, TRE_TYPE ] == "Source File"
|
||||
@@ -1067,7 +1046,7 @@ METHOD HbIde:manageItemSelected( oXbpTreeItem )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbIde:manageProjectContext( mp1, mp2, oXbpTreeItem )
|
||||
LOCAL n, cHbi, aPrj, s
|
||||
LOCAL n, cHbp, s
|
||||
LOCAL aPops := {}, aSub :={}
|
||||
|
||||
HB_SYMBOL_UNUSED( mp2 )
|
||||
@@ -1088,7 +1067,7 @@ METHOD HbIde:manageProjectContext( mp1, mp2, oXbpTreeItem )
|
||||
CASE n == -1 // Project Root
|
||||
aadd( aPops, { "New Project" , {|| ::oPM:loadProperties( NIL, .t., .t., .t. ) } } )
|
||||
aadd( aPops, { "" } )
|
||||
aadd( aPops, { "Load Project" , {|| ::oPM:loadProperties( NIL, .f., .f., .t. ) } } )
|
||||
aadd( aPops, { "Open Project" , {|| ::oPM:loadProperties( NIL, .f., .f., .t. ) } } )
|
||||
aadd( aPops, { "" } )
|
||||
//
|
||||
IF !empty( ::oEV:getNames() )
|
||||
@@ -1102,15 +1081,12 @@ METHOD HbIde:manageProjectContext( mp1, mp2, oXbpTreeItem )
|
||||
hbide_ExecPopup( aPops, mp1, ::oProjTree:oWidget )
|
||||
|
||||
CASE ::aProjData[ n, TRE_TYPE ] == "Project Name"
|
||||
aPrj := ::aProjData[ n, TRE_DATA ]
|
||||
cHbi := aPrj[ PRJ_PRP_PROPERTIES, 2, PRJ_PRP_LOCATION ] + s_pathSep + ;
|
||||
aPrj[ PRJ_PRP_PROPERTIES, 2, PRJ_PRP_OUTPUT ] + ".hbp"
|
||||
cHbi := hbide_pathToOSPath( cHbi )
|
||||
cHbp := hbide_pathToOSPath( ::oPM:getProjectFileNameFromTitle( ::aProjData[ n, TRE_ORIGINAL ] ) )
|
||||
//
|
||||
IF Alltrim( Upper( ::cWrkProject ) ) != Alltrim( Upper( oXbpTreeItem:caption ) )
|
||||
aadd( aPops, { "Set as Current" , {|| ::oPM:setCurrentProject( oXbpTreeItem:caption ) } } )
|
||||
End
|
||||
aadd( aPops, { "Properties" , {|| ::oPM:loadProperties( cHbi, .f., .t., .t. ) } } )
|
||||
aadd( aPops, { "Properties" , {|| ::oPM:loadProperties( cHbp, .f., .t., .t. ) } } )
|
||||
aadd( aPops, { "" } )
|
||||
aadd( aPops, { ::oAC:getAction( "BuildQt" ), {|| ::oPM:buildProject( oXbpTreeItem:caption, .F., , , .T. ) } } )
|
||||
aadd( aPops, { ::oAC:getAction( "BuildLaunchQt" ), {|| ::oPM:buildProject( oXbpTreeItem:caption, .T., , , .T. ) } } )
|
||||
@@ -1169,7 +1145,7 @@ METHOD HbIde:updateFuncList()
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD HbIde:gotoFunction( mp1, mp2, oListBox )
|
||||
LOCAL n, cAnchor, oEdit
|
||||
LOCAL n, cAnchor, oEdit, lFound
|
||||
|
||||
mp1 := oListBox:getData()
|
||||
mp2 := oListBox:getItem( mp1 )
|
||||
@@ -1177,8 +1153,11 @@ METHOD HbIde:gotoFunction( mp1, mp2, oListBox )
|
||||
IF ( n := ascan( ::aTags, {|e_| mp2 == e_[ 7 ] } ) ) > 0
|
||||
cAnchor := trim( ::aText[ ::aTags[ n,3 ] ] )
|
||||
IF !empty( oEdit := ::oEM:getEditCurrent() )
|
||||
IF !( oEdit:find( cAnchor, QTextDocument_FindCaseSensitively ) )
|
||||
oEdit:find( cAnchor, QTextDocument_FindBackward + QTextDocument_FindCaseSensitively )
|
||||
IF !( lFound := oEdit:find( cAnchor, QTextDocument_FindCaseSensitively ) )
|
||||
lFound := oEdit:find( cAnchor, QTextDocument_FindBackward + QTextDocument_FindCaseSensitively )
|
||||
ENDIF
|
||||
IF lFound
|
||||
oEdit:centerCursor()
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -173,6 +173,7 @@ METHOD IdeActions:loadActions()
|
||||
// Name Text Image Shortcut Checkable IconVisInMenu
|
||||
//
|
||||
aadd( aAct, { "TB_Exit" , "E~xit" , "exit" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Home" , "~Home" , "dc_home" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_New" , "~Source" , "new" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Open" , "~Open" , "open" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Save" , "~Save" , "save" , "" , "No", "Yes" } )
|
||||
@@ -209,10 +210,10 @@ METHOD IdeActions:loadActions()
|
||||
aadd( aAct, { "Help" , "~Help" , "help" , "F1" , "No", "Yes" } )
|
||||
aadd( aAct, { "Exit" , "E~xit" , "exit" , "Sh+^W", "No", "Yes" } )
|
||||
aadd( aAct, { "New" , "~Source" , "new" , "^N" , "No", "Yes" } )
|
||||
aadd( aAct, { "Open" , "~Open" , "open" , "^O" , "No", "Yes" } )
|
||||
aadd( aAct, { "Open" , "~Open..." , "open" , "^O" , "No", "Yes" } )
|
||||
aadd( aAct, { "Save" , "~Save" , "save" , "^S" , "No", "Yes" } )
|
||||
aadd( aAct, { "Close" , "~Close" , "close" , "^W" , "No", "Yes" } )
|
||||
aadd( aAct, { "Print" , "~Print" , "print" , "^P" , "No", "Yes" } )
|
||||
aadd( aAct, { "Print" , "~Print..." , "print" , "^P" , "No", "Yes" } )
|
||||
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" } )
|
||||
@@ -244,7 +245,7 @@ METHOD IdeActions:loadActions()
|
||||
//
|
||||
aadd( aAct, { "NewProject" , "~Project" , "project" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "LoadProject" , "Open Projec~t" , "" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "SaveAs" , "Save ~As" , "saveas" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "SaveAs" , "Save ~as..." , "saveas" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "SaveAll" , "Save A~ll" , "saveall" , "Sh+^s", "No", "Yes" } )
|
||||
aadd( aAct, { "CloseAll" , "Clos~e All" , "closeall" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "CloseOther" , "Close Ot~hers" , "closeexcept" , "" , "No", "Yes" } )
|
||||
@@ -277,7 +278,7 @@ METHOD IdeActions:loadActions()
|
||||
|
||||
aadd( aAct, { "ManageThemes" , "Manage Themes" , "" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "DefaultTheme" , "Set Default Theme" , "" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "AboutIDE" , "About Harbour IDE" , "vr-16x16" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "AboutIDE" , "About Harbour IDE" , "hbide" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "AboutHarbour" , "About Harbour" , "hb-16x16" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "HarbourUsersList" , "Harbour Users (Mailing Lists)", "list-users" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "HarbourDevList" , "Harbour Developers (Mailing Lists)", "list-developers", "", "No", "Yes" } )
|
||||
@@ -317,14 +318,14 @@ METHOD IdeActions:buildToolBar()
|
||||
oTBar:imageWidth := 22
|
||||
oTBar:imageHeight := 22
|
||||
oTBar:create( , , { 0, ::oDlg:currentSize()[ 2 ]-60 }, { ::oDlg:currentSize()[ 1 ], 60 } )
|
||||
oTBar:setStyleSheet( GetStyleSheet( "QToolBar" ) )
|
||||
* oTBar:setStyleSheet( GetStyleSheet( "QToolBar" ) )
|
||||
|
||||
oTBar:oWidget:setMaximumHeight( 28 )
|
||||
|
||||
oTBar:buttonClick := {|oButton| ::oIde:execAction( oButton:key ) }
|
||||
|
||||
oTBar:addItem( ::getAction( "TB_Exit" ), , , , , , "Exit" )
|
||||
* oTBar:addItem( ::getAction( "Help" ), , , , , , "Help" )
|
||||
oTBar:addItem( ::getAction( "TB_Home" ), , , , , , "Home" )
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
oTBar:addItem( ::getAction( "TB_New" ), , , , , , "New" )
|
||||
oTBar:addItem( ::getAction( "TB_Open" ), , , , , , "Open" )
|
||||
@@ -488,7 +489,7 @@ METHOD IdeActions:buildMainMenu()
|
||||
oSubMenu2:addItem( { ::getAction( "DeleteLine" ), {|| oIde:execAction( "DeleteLine" ) } } )
|
||||
oSubMenu2:addItem( { ::getAction( "MoveLineUp" ), {|| oIde:execAction( "MoveLineUp" ) } } )
|
||||
oSubMenu2:addItem( { ::getAction( "MoveLineDown" ), {|| oIde:execAction( "MoveLineDown" ) } } )
|
||||
oMenuBar:addItem( { oSubMenu2, _T( "~Line..." ) } )
|
||||
oMenuBar:addItem( { oSubMenu2, _T( "~Line" ) } )
|
||||
//
|
||||
oSubMenu2 := XbpMenu():new( oSubMenu ):create()
|
||||
oSubMenu2:addItem( { ::getAction( "StreamComment" ), {|| oIde:execAction( "StreamComment" ) } } )
|
||||
@@ -499,7 +500,7 @@ METHOD IdeActions:buildMainMenu()
|
||||
hbide_menuAddSep( oSubMenu2 )
|
||||
oSubMenu2:addItem( { ::getAction( "BlockSgl2Dbl" ), {|| oIde:execAction( "BlockSgl2Dbl" ) } } )
|
||||
oSubMenu2:addItem( { ::getAction( "BlockDbl2Sgl" ), {|| oIde:execAction( "BlockDbl2Sgl" ) } } )
|
||||
oMenuBar:addItem( { oSubMenu2, _T( "~Block..." ) } )
|
||||
oMenuBar:addItem( { oSubMenu2, _T( "~Block" ) } )
|
||||
|
||||
hbide_menuAddSep( oSubMenu )
|
||||
oSubMenu2 := XbpMenu():new( oSubMenu ):create()
|
||||
@@ -556,6 +557,7 @@ METHOD IdeActions:buildMainMenu()
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Tools */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
#if 0
|
||||
oSubMenu := XbpMenu():new( oMenuBar ):create()
|
||||
oSubMenu:title := "~Tools"
|
||||
oSubMenu:addItem( { ::getAction( "ConfigureTools" ), {|| oIde:execAction( "ConfigureTools" ) } } )
|
||||
@@ -566,14 +568,14 @@ METHOD IdeActions:buildMainMenu()
|
||||
oSubMenu:addItem( { ::getAction( "Terminal" ), {|| oIde:execAction( "Terminal" ) } } )
|
||||
#endif
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
|
||||
#endif
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Options */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
oSubMenu := XbpMenu():new( oMenuBar ):create()
|
||||
oSubMenu:title := "~Setup"
|
||||
oSubMenu2 := hbide_buildCodecMenu( oIde, oSubMenu )
|
||||
oSubMenu2:title := "~Codecs"
|
||||
oSubMenu2:title := "~Encoding"
|
||||
oSubMenu:addItem( { oSubMenu2, NIL } )
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
METHOD buildHelpWidget()
|
||||
METHOD buildSkeletonWidget()
|
||||
METHOD buildDialog()
|
||||
METHOD buildViewWidget()
|
||||
METHOD buildViewWidget( cObjectName )
|
||||
METHOD buildStackedWidget()
|
||||
METHOD buildSearchReplaceWidget()
|
||||
METHOD buildDockWidgets()
|
||||
@@ -114,9 +114,6 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
METHOD buildDocViewer()
|
||||
METHOD outputDoubleClicked( lSelected )
|
||||
METHOD buildStatusBar()
|
||||
METHOD toggleLeftDocks()
|
||||
METHOD toggleRightDocks()
|
||||
METHOD toggleBottomDocks()
|
||||
METHOD setStatusText( nPart, xValue )
|
||||
METHOD getMarkWidget( nIndex )
|
||||
METHOD dispEnvironment( cEnviron )
|
||||
@@ -130,19 +127,14 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:new( oIde )
|
||||
|
||||
::oIde := oIde
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:create( oIde )
|
||||
|
||||
DEFAULT oIde TO ::oIde
|
||||
|
||||
::oIde := oIde
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -195,32 +187,66 @@ METHOD IdeDocks:destroy()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
|
||||
LOCAL oDock, nBasic
|
||||
METHOD IdeDocks:buildDialog()
|
||||
LOCAL s, aSize
|
||||
|
||||
DEFAULT nFlags TO 0
|
||||
::oIde:oDlg := XbpDialog():new()
|
||||
::oDlg:icon := hbide_image( "hbide" )
|
||||
::oDlg:title := "Harbour IDE"
|
||||
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.uic" ):build()
|
||||
::oDlg:create( , , , , , .f. )
|
||||
|
||||
nBasic := hb_bitOR( QDockWidget_DockWidgetClosable, nFlags )
|
||||
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow" ) )
|
||||
|
||||
oDock := XbpWindow():new()
|
||||
oDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
oDock:oWidget:setObjectName( cObjectName )
|
||||
::oDlg:addChild( oDock )
|
||||
oDock:oWidget:setFeatures( nBasic )
|
||||
oDock:oWidget:setAllowedAreas( nArea )
|
||||
oDock:oWidget:setWindowTitle( cWindowTitle )
|
||||
oDock:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
oDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
|
||||
oDock:hide()
|
||||
::oDlg:close := {|| hbide_getYesNo( "hbIDE is about to be closed!", "Are you sure?" ) }
|
||||
::oDlg:oWidget:setDockOptions( QMainWindow_AllowTabbedDocks + QMainWindow_ForceTabbedDocks )
|
||||
::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 )
|
||||
|
||||
oDock:hbLayout := HBPLAYOUT_TYPE_VERTBOX
|
||||
oDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
|
||||
::oIde:oDa := ::oDlg:drawingArea
|
||||
|
||||
RETURN oDock
|
||||
SetAppWindow( ::oDlg )
|
||||
|
||||
// Center on Desktop and decorate
|
||||
aSize := AppDesktop():currentSize()
|
||||
::oDlg:setPos( { ( aSize[ 1 ] - ::oDlg:currentSize()[ 1 ] ) / 2, ;
|
||||
( aSize[ 2 ] - ::oDlg:currentSize()[ 2 ] ) / 2 } )
|
||||
|
||||
::oIde:setPosAndSizeByIni( ::oDlg:oWidget, MainWindowGeometry )
|
||||
//::oDlg:Show()
|
||||
|
||||
/* StatusBar */
|
||||
::buildStatusBar()
|
||||
|
||||
/* Attach GRID Layout to Editor Area - Futuristic */
|
||||
::oIde:qLayout := QGridLayout():new()
|
||||
::oIde:qLayout:setContentsMargins( 0,0,0,0 )
|
||||
::oIde:qLayout:setHorizontalSpacing( 0 )
|
||||
::oIde:qLayout:setVerticalSpacing( 0 )
|
||||
//
|
||||
::oDa:oWidget:setLayout( ::qLayout )
|
||||
|
||||
::buildStackedWidget()
|
||||
::qLayout:addWidget_1( ::oStackedWidget:oWidget, 0, 0, 1, 1 )
|
||||
// ::buildSearchReplaceWidget() ////////////////////////////////////
|
||||
// ::qLayout:addWidget_1( ::oSearchReplace:oUI, 1, 0, 1, 1 )
|
||||
|
||||
/* View Panels */
|
||||
::buildViewWidget( "Stats" ) /* At stayrtup displaying various statistics */
|
||||
::buildViewWidget( "Main" ) /* Main Panel to hold editor tabs */
|
||||
FOR EACH s IN ::aINI[ INI_VIEWS ]
|
||||
::buildViewWidget( s ) /* All other panels user created */
|
||||
NEXT
|
||||
|
||||
::setView( "Stats" ) /* Always call with name */
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildDockWidgets()
|
||||
METHOD IdeDocks:buildDockWidgets()
|
||||
|
||||
::buildProjectTree()
|
||||
::buildEditorTree()
|
||||
@@ -255,40 +281,37 @@ METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
|
||||
LOCAL oDock, nBasic
|
||||
|
||||
DEFAULT nFlags TO 0
|
||||
|
||||
nBasic := hb_bitOR( QDockWidget_DockWidgetClosable, nFlags )
|
||||
|
||||
oDock := XbpWindow():new()
|
||||
oDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
oDock:oWidget:setObjectName( cObjectName )
|
||||
::oDlg:addChild( oDock )
|
||||
oDock:oWidget:setFeatures( nBasic )
|
||||
oDock:oWidget:setAllowedAreas( nArea )
|
||||
oDock:oWidget:setWindowTitle( cWindowTitle )
|
||||
oDock:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
oDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
|
||||
oDock:hide()
|
||||
|
||||
oDock:hbLayout := HBPLAYOUT_TYPE_VERTBOX
|
||||
oDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
|
||||
|
||||
RETURN oDock
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:execEvent( nMode, p )
|
||||
LOCAL nIndex, aMenu
|
||||
|
||||
DO CASE
|
||||
CASE nMode == 1 /* StackedWidget:currentChanged(int) */
|
||||
IF p >= 0 .AND. p <= len( ::aViews )
|
||||
::oIde:nCurView := p
|
||||
|
||||
::oIde:qTabWidget := ::aViews[ ::nCurView + 1 ]:oTabWidget:oWidget
|
||||
::oIde:oTabParent := ::aViews[ ::nCurView + 1 ]
|
||||
|
||||
nIndex := ::oIde:qTabWidget:currentIndex()
|
||||
IF nIndex + 1 == ::oIde:qTabWidget:count()
|
||||
IF !( ::oIde:lClosing )
|
||||
::oIde:qTabWidget:setCurrentIndex( 0 )
|
||||
::oIde:qTabWidget:setCurrentIndex( nIndex ) /* TODO: Must be last saved */
|
||||
ENDIF
|
||||
ENDIF
|
||||
::setStatusText( SB_PNL_VIEW, iif( p == 0, "Main", ::aINI[ INI_VIEWS, ::nCurView ] ) )
|
||||
ENDIF
|
||||
|
||||
CASE nMode == 2 /* HelpWidget:contextMenuRequested(qPoint) */
|
||||
aMenu := {}
|
||||
|
||||
aadd( aMenu, { "Back" , {|| ::qHelpBrw:backward() } } )
|
||||
aadd( aMenu, { "Forward" , {|| ::qHelpBrw:forward() } } )
|
||||
aadd( aMenu, { "Home" , {|| ::qHelpBrw:home() } } )
|
||||
aadd( aMenu, { "" } )
|
||||
aadd( aMenu, { "Reload" , {|| ::qHelpBrw:reload() } } )
|
||||
aadd( aMenu, { "" } )
|
||||
aadd( aMenu, { "Select All", {|| ::qHelpBrw:selectAll() } } )
|
||||
aadd( aMenu, { "Copy" , {|| ::qHelpBrw:copy() } } )
|
||||
|
||||
hbide_execPopup( aMenu, p, ::qHelpBrw )
|
||||
hbide_popupBrwContextMenu( ::qHelpBrw, p )
|
||||
|
||||
CASE nMode == dockDocViewer_visibilityChanged
|
||||
IF p
|
||||
@@ -321,62 +344,50 @@ METHOD IdeDocks:execEvent( nMode, p )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildDialog()
|
||||
LOCAL s, aSize
|
||||
METHOD IdeDocks:setView( cView )
|
||||
LOCAL n, nIndex
|
||||
|
||||
::oIde:oDlg := XbpDialog():new()
|
||||
::oDlg:icon := hbide_image( "hbide" )
|
||||
::oDlg:title := "Harbour IDE"
|
||||
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.uic" ):build()
|
||||
::oDlg:create( , , , , , .f. )
|
||||
SWITCH cView
|
||||
|
||||
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow" ) )
|
||||
CASE "New..."
|
||||
cView := hbide_fetchAString( ::qViewsCombo, cView, "Name the View", "New View" )
|
||||
IF cView != "New..." .AND. cView != "Stats" .AND. cView != "Main"
|
||||
IF ascan( ::aINI[ INI_VIEWS ], {|e| e == cView } ) > 0
|
||||
MsgBox( "View: " + cView + ", already exists" )
|
||||
ELSE
|
||||
aadd( ::aINI[ INI_VIEWS ], cView )
|
||||
::qViewsCombo:addItem( cView )
|
||||
::buildViewWidget( cView )
|
||||
::addPanelButton( cView )
|
||||
::setView( cView )
|
||||
ENDIF
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
::oDlg:close := {|| hbide_getYesNo( "hbIDE is about to be closed!", "Are you sure?" ) }
|
||||
::oDlg:oWidget:setDockOptions( QMainWindow_AllowTabbedDocks + QMainWindow_ForceTabbedDocks )
|
||||
::oDlg:oWidget:setTabPosition( Qt_BottomDockWidgetArea, QTabWidget_South )
|
||||
::oDlg:oWidget:setCorner( Qt_BottomLeftCorner, Qt_LeftDockWidgetArea )
|
||||
::oDlg:oWidget:setCorner( Qt_BottomRightCorner, Qt_RightDockWidgetArea )
|
||||
::oDlg:oWidget:resize( 850,430 )
|
||||
OTHERWISE
|
||||
IF ( n := ascan( ::aViews, {|o| o:oWidget:objectName() == cView } ) ) > 0
|
||||
::oIde:cWrkView := cView
|
||||
|
||||
::oIde:oDa := ::oDlg:drawingArea
|
||||
IF !( cView == "Stats" )
|
||||
::oIde:qTabWidget := ::aViews[ n ]:oTabWidget:oWidget
|
||||
::oIde:oTabParent := ::aViews[ n ]
|
||||
|
||||
SetAppWindow( ::oDlg )
|
||||
nIndex := ::oIde:qTabWidget:currentIndex()
|
||||
IF nIndex + 1 == ::oIde:qTabWidget:count()
|
||||
IF !( ::oIde:lClosing )
|
||||
::oIde:qTabWidget:setCurrentIndex( 0 )
|
||||
::oIde:qTabWidget:setCurrentIndex( nIndex ) /* TODO: Must be last saved */
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
::oStackedWidget:oWidget:setCurrentIndex( n - 1 )
|
||||
::setStatusText( SB_PNL_VIEW, ::cWrkView )
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
// Center on Desktop and decorate
|
||||
aSize := AppDesktop():currentSize()
|
||||
::oDlg:setPos( { ( aSize[ 1 ] - ::oDlg:currentSize()[ 1 ] ) / 2, ;
|
||||
( aSize[ 2 ] - ::oDlg:currentSize()[ 2 ] ) / 2 } )
|
||||
ENDSWITCH
|
||||
|
||||
::oIde:setPosAndSizeByIni( ::oDlg:oWidget, MainWindowGeometry )
|
||||
//::oDlg:Show()
|
||||
|
||||
/* StatusBar */
|
||||
::buildStatusBar()
|
||||
|
||||
/* Attach GRID Layout to Editor Area - Futuristic */
|
||||
::oIde:qLayout := QGridLayout():new()
|
||||
::oIde:qLayout:setContentsMargins( 0,0,0,0 )
|
||||
::oIde:qLayout:setHorizontalSpacing( 0 )
|
||||
::oIde:qLayout:setVerticalSpacing( 0 )
|
||||
//
|
||||
::oDa:oWidget:setLayout( ::qLayout )
|
||||
|
||||
::buildStackedWidget()
|
||||
::qLayout:addWidget_1( ::oStackedWidget:oWidget, 0, 0, 1, 1 )
|
||||
// ::buildSearchReplaceWidget() ////////////////////////////////////
|
||||
// ::qLayout:addWidget_1( ::oSearchReplace:oUI, 1, 0, 1, 1 )
|
||||
|
||||
/* View Panels */
|
||||
::buildViewWidget() /* Main */
|
||||
FOR EACH s IN ::aINI[ INI_VIEWS ]
|
||||
::buildViewWidget()
|
||||
NEXT
|
||||
|
||||
/* Force to populate current widget */
|
||||
::oStackedWidget:oWidget:setCurrentIndex( 0 )
|
||||
|
||||
RETURN Self
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -389,28 +400,16 @@ METHOD IdeDocks:buildStackedWidget()
|
||||
::oStackedWidget:oWidget:setObjectName( "myStackedWidget" )
|
||||
::oDa:addChild( ::oStackedWidget )
|
||||
|
||||
::oStackedWidget:connect( ::oStackedWidget:oWidget, "currentChanged(int)", {|p| ::execEvent( 1, p ) } )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildSearchReplaceWidget()
|
||||
|
||||
::oIde:oSearchReplace := IdeSearchReplace():new( ::oIde ):create()
|
||||
::oSearchReplace:oUI:hide()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildViewWidget()
|
||||
LOCAL n := len( ::aViews ) + 1
|
||||
METHOD IdeDocks:buildViewWidget( cObjectName )
|
||||
LOCAL oFrame
|
||||
|
||||
oFrame := XbpWindow():new( ::oStackedWidget )
|
||||
oFrame:oWidget := QWidget():new( ::oStackedWidget:oWidget )
|
||||
oFrame:oWidget:setObjectName( "viewWidget" + hb_ntos( n ) )
|
||||
oFrame:oWidget:setObjectName( cObjectName ) /* This will form the basis of showing at top */
|
||||
::oStackedWidget:addChild( oFrame )
|
||||
|
||||
oFrame:hbLayout := HBPLAYOUT_TYPE_VERTBOX
|
||||
@@ -422,93 +421,20 @@ METHOD IdeDocks:buildViewWidget()
|
||||
oFrame:oTabWidget:oWidget:setMovable( .t. )
|
||||
|
||||
aadd( ::oIde:aViews, oFrame )
|
||||
oFrame:oWidget:show()
|
||||
oFrame:oTabWidget:oWidget:show()
|
||||
|
||||
::oStackedWidget:oWidget:addWidget( oFrame:oWidget )
|
||||
|
||||
::oStackedWidget:oWidget:setCurrentIndex( 0 )
|
||||
::setView( cObjectName )
|
||||
|
||||
RETURN oFrame
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:setView( cView )
|
||||
LOCAL n
|
||||
METHOD IdeDocks:buildSearchReplaceWidget()
|
||||
|
||||
SWITCH cView
|
||||
|
||||
CASE "New..."
|
||||
cView := hbide_fetchAString( ::qViewsCombo, cView, "Name the View", "New View" )
|
||||
IF cView != "New..."
|
||||
IF ascan( ::aINI[ INI_VIEWS ], {|e| e == cView } ) > 0
|
||||
MsgBox( "View: " + cView + ", already exists" )
|
||||
ELSE
|
||||
aadd( ::aINI[ INI_VIEWS ], cView )
|
||||
::qViewsCombo:addItem( cView )
|
||||
::buildViewWidget()
|
||||
::oStackedWidget:oWidget:setCurrentIndex( len( ::aINI[ INI_VIEWS ] ) )
|
||||
::oIde:cWrkView := cView
|
||||
ENDIF
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
CASE "Main"
|
||||
::oIde:nCurView := 0
|
||||
::oIde:qTabWidget := ::aViews[ ::nCurView + 1 ]:oTabWidget:oWidget
|
||||
::oIde:oTabParent := ::aViews[ ::nCurView + 1 ]
|
||||
::oStackedWidget:oWidget:setCurrentIndex( 0 )
|
||||
::oIde:cWrkView := "Main"
|
||||
EXIT
|
||||
|
||||
OTHERWISE
|
||||
IF ( n := ascan( ::aINI[ INI_VIEWS ], cView ) ) > 0
|
||||
::oStackedWidget:oWidget:setCurrentIndex( n ) /* Note: n is always base of zero as main == 1 */
|
||||
::oIde:cWrkView := cView
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:disblePanelButton( qTBtn )
|
||||
LOCAL q
|
||||
|
||||
FOR EACH q IN ::aPanels
|
||||
q:setEnabled( !( q == qTBtn ) )
|
||||
NEXT
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:addPanelButton( cPanel )
|
||||
LOCAL qTBtn, aColors, nIndex, cColor
|
||||
|
||||
* aColors := { "#996633", "#A37547", "#AD855C", "#B89470", "#C2A385", "#CCB299", "#D6C2AD", "#E0D1C2", "#EBE0D6", "#F5F0EB" }
|
||||
aColors := { "#98FB98","#20B2AA","#6B8E23","#9ACD32","#FFFF00","#FF00FF","#FFA500","#4169E1","#00FF7F","#FFFF00" }
|
||||
|
||||
IF cPanel == "Main"
|
||||
nIndex := 1
|
||||
cColor := "#008000"
|
||||
ELSE
|
||||
nIndex := len( ::aPanels )
|
||||
IF nIndex > len( aColors )
|
||||
nIndex := nIndex - len( aColors )
|
||||
ENDIF
|
||||
cColor := aColors[ nIndex ]
|
||||
ENDIF
|
||||
|
||||
qTBtn := QToolButton():new()
|
||||
qTBtn:setMaximumHeight( 12 )
|
||||
qTBtn:setMaximumWidth( 18 )
|
||||
qTBtn:setTooltip( "Panel: " + cPanel )
|
||||
qTBtn:setStyleSheet( "background-color: " + cColor + " ;" )
|
||||
|
||||
::connect( qTBtn, "clicked()", {|| ::disblePanelButton( qTBtn ), ::setView( cPanel ) } )
|
||||
::qTBarPanels:addWidget( qTBtn )
|
||||
::qTBarPanels:addSeparator()
|
||||
|
||||
aadd( ::aPanels, qTBtn )
|
||||
::oIde:oSearchReplace := IdeSearchReplace():new( ::oIde ):create()
|
||||
::oSearchReplace:oUI:hide()
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -652,17 +578,46 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:disblePanelButton( qTBtn )
|
||||
LOCAL q
|
||||
|
||||
FOR EACH q IN ::aPanels
|
||||
q:setEnabled( !( q == qTBtn ) )
|
||||
NEXT
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:addPanelButton( cPanel )
|
||||
LOCAL qTBtn
|
||||
|
||||
STATIC nIndex := 0
|
||||
nIndex++
|
||||
|
||||
qTBtn := QToolButton():new()
|
||||
qTBtn:setMaximumHeight( 20 )
|
||||
qTBtn:setMaximumWidth( 20 )
|
||||
qTBtn:setTooltip( "Panel: " + cPanel )
|
||||
qTBtn:setIcon( hbide_image( "panel_" + hb_ntos( nIndex ) ) )
|
||||
aadd( ::aPanels, qTBtn )
|
||||
::qTBarPanels:addWidget( qTBtn )
|
||||
::connect( qTBtn, "clicked()", {|| ::setView( cPanel ) } )
|
||||
|
||||
nIndex := iif( nIndex >= 7, 0, nIndex )
|
||||
|
||||
IF !empty( ::qViewsCombo )
|
||||
::qViewsCombo:setCurrentIndex( len( ::aPanels ) + 1 )
|
||||
endif
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildProjectTree()
|
||||
LOCAL i
|
||||
|
||||
::oIde:oDockPT := XbpWindow():new()
|
||||
::oDockPT:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oDockPT:oWidget:setObjectName( "dockProjectTree" )
|
||||
::oDlg:addChild( ::oDockPT )
|
||||
::oDockPT:oWidget:setFeatures( QDockWidget_DockWidgetClosable + QDockWidget_DockWidgetMovable )
|
||||
::oDockPT:oWidget:setAllowedAreas( Qt_LeftDockWidgetArea )
|
||||
::oDockPT:oWidget:setWindowTitle( "Projects Tree" )
|
||||
::oDockPT:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
::oIde:oDockPT := ::getADockWidget( Qt_LeftDockWidgetArea, "dockProjectTree", "Projects Tree" )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oDockPT:oWidget, Qt_Vertical )
|
||||
|
||||
::oIde:oProjTree := XbpTreeView():new()
|
||||
::oProjTree:hasLines := .T.
|
||||
@@ -674,7 +629,7 @@ METHOD IdeDocks:buildProjectTree()
|
||||
::oProjTree:oWidget:setSizePolicy_1( QSizePolicy_MinimumExpanding, QSizePolicy_Preferred )
|
||||
|
||||
* ::oProjTree:itemMarked := {|oItem| ::manageItemSelected( 0, oItem ), ::oCurProjItem := oItem }
|
||||
::oProjTree:itemMarked := {|oItem| ::oIde:oCurProjItem := oItem, ::oIde:manageFocusInEditor() }
|
||||
::oProjTree:itemMarked := {|oItem| ::oIde:oCurProjItem := oItem } //, ::oIde:manageFocusInEditor() }
|
||||
::oProjTree:itemSelected := {|oItem| ::oIde:manageItemSelected( oItem ) }
|
||||
::oProjTree:hbContextMenu := {|mp1, mp2, oXbp| ::oIde:manageProjectContext( mp1, mp2, oXbp ) }
|
||||
|
||||
@@ -693,8 +648,7 @@ METHOD IdeDocks:buildProjectTree()
|
||||
/* Insert Project Tree Into Dock Widget */
|
||||
::oDockPT:oWidget:setWidget( ::oProjTree:oWidget )
|
||||
|
||||
/* Add dock widget to Main Window */
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oDockPT:oWidget, Qt_Vertical )
|
||||
::oDockPT:hide()
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -702,14 +656,8 @@ METHOD IdeDocks:buildProjectTree()
|
||||
|
||||
METHOD IdeDocks:buildEditorTree()
|
||||
|
||||
::oIde:oDockED := XbpWindow():new()
|
||||
::oDockED:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oDockED:oWidget:setObjectName( "dockEditorTabs" )
|
||||
::oDlg:addChild( ::oDockED )
|
||||
::oDockED:oWidget:setFeatures( QDockWidget_DockWidgetClosable + QDockWidget_DockWidgetMovable )
|
||||
::oDockED:oWidget:setAllowedAreas( Qt_LeftDockWidgetArea )
|
||||
::oDockED:oWidget:setWindowTitle( "Editor Tabs" )
|
||||
::oDockED:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
::oIde:oDockED := ::getADockWidget( Qt_LeftDockWidgetArea, "dockEditorTabs", "Editor Tabs" )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oDockED:oWidget, Qt_Vertical )
|
||||
|
||||
::oIde:oEditTree := XbpTreeView():new()
|
||||
::oEditTree:hasLines := .T.
|
||||
@@ -731,8 +679,7 @@ METHOD IdeDocks:buildEditorTree()
|
||||
/* Insert Project Tree Into Dock Widget */
|
||||
::oDockED:oWidget:setWidget( ::oEditTree:oWidget )
|
||||
|
||||
/* Add dock widget to Main Window */
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oDockED:oWidget, Qt_Vertical )
|
||||
::oDockED:hide()
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -741,6 +688,7 @@ METHOD IdeDocks:buildEditorTree()
|
||||
METHOD IdeDocks:buildFuncList()
|
||||
|
||||
::oIde:oFuncDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockFuncList", "Functions List", QDockWidget_DockWidgetFloatable )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFuncDock:oWidget, Qt_Vertical )
|
||||
|
||||
::oIde:oFuncList := XbpListBox():new( ::oFuncDock ):create( , , { 0,0 }, { 100,400 }, , .t. )
|
||||
::oFuncList:oWidget:setEditTriggers( QAbstractItemView_NoEditTriggers )
|
||||
@@ -751,7 +699,6 @@ METHOD IdeDocks:buildFuncList()
|
||||
::oFuncList:hbContextMenu := {|mp1, mp2, oXbp| ::oIde:manageFuncContext( mp1, mp2, oXbp ) }
|
||||
|
||||
::oFuncDock:oWidget:setWidget( ::oFuncList:oWidget )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFuncDock:oWidget, Qt_Vertical )
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -760,22 +707,22 @@ METHOD IdeDocks:buildFuncList()
|
||||
METHOD IdeDocks:buildHelpWidget()
|
||||
LOCAL qUrl, qStr
|
||||
|
||||
qUrl := QUrl():new( "idemainpage.html" )
|
||||
qStr := QStringList():new()
|
||||
qStr:append( hb_dirBase() + "docs" )
|
||||
|
||||
::oIde:oHelpDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockHelp", "hbIDE Help", QDockWidget_DockWidgetFloatable )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oHelpDock:oWidget, Qt_Horizontal )
|
||||
|
||||
::oIde:qHelpBrw := QTextBrowser():new( ::oHelpDock:oWidget )
|
||||
::qHelpBrw:show()
|
||||
::qHelpBrw:setContextMenuPolicy( Qt_CustomContextMenu )
|
||||
::qHelpBrw:setOpenExternalLinks( .t. )
|
||||
|
||||
qUrl := QUrl():new( "idemainpage.html" )
|
||||
qStr := QStringList():new()
|
||||
qStr:append( hb_dirBase() + "docs" )
|
||||
|
||||
::qHelpBrw:setSearchPaths( qStr )
|
||||
::qHelpBrw:setSource( qUrl )
|
||||
|
||||
::oHelpDock:oWidget:setWidget( ::oIde:qHelpBrw )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oHelpDock:oWidget, Qt_Horizontal )
|
||||
|
||||
::oHelpDock:connect( ::qHelpBrw, "customContextMenuRequested(QPoint)", {|p| ::execEvent( 2, p ) } )
|
||||
|
||||
@@ -785,41 +732,23 @@ METHOD IdeDocks:buildHelpWidget()
|
||||
|
||||
METHOD IdeDocks:buildCompileResults()
|
||||
|
||||
::oIde:oDockB := XbpWindow():new()
|
||||
::oDockB:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oDockB:oWidget:setObjectName( "dockCompileResults" )
|
||||
::oDlg:addChild( ::oDockB )
|
||||
::oDockB:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
|
||||
::oDockB:oWidget:setAllowedAreas( Qt_BottomDockWidgetArea )
|
||||
::oDockB:oWidget:setWindowTitle( "Compile Results" )
|
||||
::oDockB:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
::oIde:oDockB := ::getADockWidget( Qt_BottomDockWidgetArea, "dockCompileResults", "Compile Results" )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB:oWidget, Qt_Horizontal )
|
||||
|
||||
::oIde:oCompileResult := XbpMLE():new( ::oDockB ):create( , , { 0,0 }, { 100,400 }, , .t. )
|
||||
::oDockB:oWidget:setWidget( ::oCompileResult:oWidget )
|
||||
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB:oWidget, Qt_Horizontal )
|
||||
::oDockB:hide()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:buildLinkResults()
|
||||
|
||||
::oIde:oDockB1 := XbpWindow():new()
|
||||
::oDockB1:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oDockB1:oWidget:setObjectName( "dockLinkResults" )
|
||||
::oDlg:addChild( ::oDockB1 )
|
||||
::oDockB1:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
|
||||
::oDockB1:oWidget:setAllowedAreas( Qt_BottomDockWidgetArea )
|
||||
::oDockB1:oWidget:setWindowTitle( "Link Results" )
|
||||
::oDockB1:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
|
||||
::oIde:oLinkResult := XbpMLE():new( ::oDockB1 ):create( , , { 0,0 }, { 100, 400 }, , .t. )
|
||||
::oDockB1:oWidget:setWidget( ::oLinkResult:oWidget )
|
||||
|
||||
::oIde:oDockB1 := ::getADockWidget( Qt_BottomDockWidgetArea, "dockLinkResults", "Link Results" )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB1:oWidget, Qt_Horizontal )
|
||||
::oDockB1:hide()
|
||||
|
||||
::oIde:oLinkResult := XbpMLE():new( ::oDockB1 ):create( , , { 0,0 }, { 100, 400 }, , .T. )
|
||||
::oDockB1:oWidget:setWidget( ::oLinkResult:oWidget )
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -827,15 +756,8 @@ METHOD IdeDocks:buildLinkResults()
|
||||
|
||||
METHOD IdeDocks:buildOutputResults()
|
||||
|
||||
::oIde:oDockB2 := XbpWindow():new()
|
||||
::oDockB2:oWidget := QDockWidget():new( ::oDlg:oWidget )
|
||||
::oDockB2:oWidget:setObjectName( "dockOutputResults" )
|
||||
::oDlg:addChild( ::oDockB2 )
|
||||
::oDockB2:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
|
||||
::oDockB2:oWidget:setAllowedAreas( Qt_BottomDockWidgetArea )
|
||||
::oDockB2:oWidget:setWindowTitle( "Output Console" )
|
||||
::oDockB2:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
::oDockB2:hide()
|
||||
::oIde:oDockB2 := ::getADockWidget( Qt_BottomDockWidgetArea, "dockOutputResults", "Output Console" )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB2:oWidget, Qt_Horizontal )
|
||||
|
||||
::oIde:oOutputResult := XbpRtf():new( ::oDockB2 ):create( , , { 0,0 }, { 100, 400 }, , .T. )
|
||||
::oOutputResult:oWidget:setAcceptRichText( .T. )
|
||||
@@ -843,8 +765,6 @@ METHOD IdeDocks:buildOutputResults()
|
||||
|
||||
::oDockB2:oWidget:setWidget( ::oOutputResult:oWidget )
|
||||
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB2:oWidget, Qt_Horizontal )
|
||||
|
||||
::connect( ::oIde:oOutputResult:oWidget, "copyAvailable(bool)", {|l| ::outputDoubleClicked( l ) } )
|
||||
|
||||
RETURN Self
|
||||
@@ -907,7 +827,7 @@ METHOD IdeDocks:buildStatusBar()
|
||||
|
||||
METHOD IdeDocks:buildThemesDock()
|
||||
|
||||
::oIde:oThemesDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockThemes", "Editor Themes", QDockWidget_DockWidgetFloatable )
|
||||
::oIde:oThemesDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockThemes", "Theme Manager", QDockWidget_DockWidgetFloatable )
|
||||
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oThemesDock:oWidget, Qt_Horizontal )
|
||||
|
||||
::connect( ::oThemesDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockThemes_visibilityChanged, p ) } )
|
||||
@@ -1081,16 +1001,19 @@ METHOD IdeDocks:setStatusText( nPart, xValue )
|
||||
oPanel:caption := "Find: " + xValue
|
||||
EXIT
|
||||
CASE SB_PNL_CODEC
|
||||
xValue := iif( empty( xValue ), "default", xValue )
|
||||
oPanel:caption := "<font color = brown >Codec: " + xValue + "</font>"
|
||||
EXIT
|
||||
CASE SB_PNL_ENVIRON
|
||||
oPanel:caption := "<font color = blue >Env: " + xValue + "</font>"
|
||||
xValue := iif( empty( xValue ), "default", xValue )
|
||||
oPanel:caption := "<font color = blue >Env: " + xValue + "</font>"
|
||||
EXIT
|
||||
CASE SB_PNL_VIEW
|
||||
oPanel:caption := "<font color = green >View: " + xValue + "</font>"
|
||||
EXIT
|
||||
CASE SB_PNL_PROJECT
|
||||
oPanel:caption := "<font color = darkred >Proj: " + xValue + "</font>"
|
||||
xValue := iif( empty( xValue ), "none", xValue )
|
||||
oPanel:caption := "<font color = darkred >Proj: " + xValue + "</font>"
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
@@ -1120,49 +1043,3 @@ METHOD IdeDocks:getMarkWidget( nIndex )
|
||||
RETURN ::oIde:aMarkTBtns[ nIndex ]
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:toggleLeftDocks()
|
||||
|
||||
IF ::lProjTreeVisible
|
||||
::oDockPT:hide()
|
||||
::oDockED:hide()
|
||||
ELSE
|
||||
::oDockPT:show()
|
||||
::oDockED:show()
|
||||
ENDIF
|
||||
::oIde:lProjTreeVisible := !( ::lProjTreeVisible )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:toggleRightDocks()
|
||||
|
||||
IF ::lDockRVisible
|
||||
::oFuncDock:hide()
|
||||
ELSE
|
||||
::oFuncDock:show()
|
||||
ENDIF
|
||||
::oIde:lDockRVisible := !( ::lDockRVisible )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:toggleBottomDocks()
|
||||
|
||||
IF ::lDockBVisible
|
||||
::oDockB:hide()
|
||||
::oDockB1:hide()
|
||||
::oDockB2:hide()
|
||||
ELSEIF ::qTabWidget:count() > 0
|
||||
::oDockB:show()
|
||||
::oDockB1:show()
|
||||
::oDockB2:show()
|
||||
ENDIF
|
||||
::oIde:lDockBVisible := !( ::oIde:lDockBVisible )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -288,9 +288,10 @@ METHOD IdeEditsManager:getTabBySource( cSource )
|
||||
METHOD IdeEditsManager:getTabCurrent()
|
||||
LOCAL qTab, nTab
|
||||
|
||||
qTab := ::qTabWidget:currentWidget()
|
||||
nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } )
|
||||
|
||||
IF !empty( ::qTabWidget )
|
||||
qTab := ::qTabWidget:currentWidget()
|
||||
nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } )
|
||||
ENDIF
|
||||
RETURN nTab
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -298,7 +299,7 @@ METHOD IdeEditsManager:getTabCurrent()
|
||||
METHOD IdeEditsManager:getDocumentCurrent()
|
||||
LOCAL qTab, nTab
|
||||
|
||||
IF ::qTabWidget:count() > 0
|
||||
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
|
||||
qTab := ::qTabWidget:currentWidget()
|
||||
IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
|
||||
RETURN QTextDocument():configure( ::aTabs[ nTab, TAB_OEDITOR ]:document() )
|
||||
@@ -312,7 +313,7 @@ METHOD IdeEditsManager:getDocumentCurrent()
|
||||
METHOD IdeEditsManager:getEditObjectCurrent()
|
||||
LOCAL qTab, nTab
|
||||
|
||||
IF ::qTabWidget:count() > 0
|
||||
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
|
||||
qTab := ::qTabWidget:currentWidget()
|
||||
IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
|
||||
RETURN ::aTabs[ nTab, TAB_OEDITOR ]:qCoEdit
|
||||
@@ -326,7 +327,7 @@ METHOD IdeEditsManager:getEditObjectCurrent()
|
||||
METHOD IdeEditsManager:getEditCurrent()
|
||||
LOCAL qTab, nTab
|
||||
|
||||
IF ::qTabWidget:count() > 0
|
||||
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
|
||||
qTab := ::qTabWidget:currentWidget()
|
||||
IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
|
||||
RETURN ::aTabs[ nTab, TAB_OEDITOR ]:qCqEdit
|
||||
@@ -340,7 +341,7 @@ METHOD IdeEditsManager:getEditCurrent()
|
||||
METHOD IdeEditsManager:getEditorCurrent()
|
||||
LOCAL qTab, nTab
|
||||
|
||||
IF ::qTabWidget:count() > 0
|
||||
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
|
||||
qTab := ::qTabWidget:currentWidget()
|
||||
IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
|
||||
RETURN ::aTabs[ nTab, TAB_OEDITOR ]
|
||||
@@ -426,6 +427,8 @@ METHOD IdeEditsManager:setSourceVisible( cSource )
|
||||
LOCAL oEdit, nIndex
|
||||
|
||||
IF !empty( oEdit := ::getEditorBySource( cSource ) )
|
||||
::oDK:setView( oEdit:cView )
|
||||
|
||||
nIndex := ::qTabWidget:indexOf( oEdit:oTab:oWidget )
|
||||
IF ::qTabWidget:currentIndex() != nIndex
|
||||
::qTabWidget:setCurrentIndex( nIndex )
|
||||
@@ -1050,7 +1053,6 @@ METHOD IdeEditor:new( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
LOCAL n
|
||||
|
||||
::qSlots := HBSlots():new()
|
||||
|
||||
@@ -1070,17 +1072,8 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
::cTheme := cTheme
|
||||
::cView := cView
|
||||
|
||||
DEFAULT ::cView TO iif( ::nCurView == 0, "Main", ::aINI[ INI_VIEWS, ::nCurView ] )
|
||||
|
||||
IF ::cView == "Main"
|
||||
::oStackedWidget:oWidget:setCurrentIndex( 0 )
|
||||
ELSE
|
||||
IF ( n := ascan( ::aINI[ INI_VIEWS ], {|e| e == ::cView } ) ) > 0
|
||||
::oStackedWidget:oWidget:setCurrentIndex( n )
|
||||
ELSE
|
||||
::oStackedWidget:oWidget:setCurrentIndex( 0 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
DEFAULT ::cView TO iif( ::cWrkView == "Stats", "Main", ::cWrkView )
|
||||
::oDK:setView( ::cView )
|
||||
|
||||
::pathNormalized := hbide_pathNormalized( cSourceFile, .t. )
|
||||
|
||||
|
||||
528
harbour/contrib/hbide/idehome.prg
Normal file
@@ -0,0 +1,528 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
*
|
||||
* Copyright 2010 Pritpal Bedi <pritpal@vouchcac.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*
|
||||
* EkOnkar
|
||||
* ( The LORD is ONE )
|
||||
*
|
||||
* Harbour-Qt IDE
|
||||
*
|
||||
* Pritpal Bedi <pritpal@vouchcac.com>
|
||||
* 04Mar2010
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "hbide.ch"
|
||||
#include "common.ch"
|
||||
#include "hbclass.ch"
|
||||
#include "xbp.ch"
|
||||
#include "hbqt.ch"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#define browserStat_anchorClicked 101
|
||||
#define browserWelcome_contextMenuRequested 102
|
||||
#define browserFaq_contextMenuRequested 103
|
||||
#define tabWidget_currentChanged 104
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION hbide_htmlImgAnchor( cHref, cImg, nWidth, nHeight )
|
||||
DEFAULT nWidth TO 12
|
||||
DEFAULT nHeight TO 12
|
||||
RETURN '<A href="' + cHref + '"' + '>' + ' <IMG src="' + cImg + '"' + ;
|
||||
' width="' + hb_ntos( nWidth ) + '" height="' + hb_ntos( nHeight ) + '"' + '</IMG>' + '</A>'
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION hbide_htmlAnchor( cHref, cText, cTooltip )
|
||||
|
||||
RETURN '<A href="' + cHref + '"' + iif( empty( cTooltip ), '', ' title="' + cTooltip + '"' ) +'>' + cText + '</A>'
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
CLASS IdeHome INHERIT IdeObject
|
||||
|
||||
DATA oWelcomeTab
|
||||
DATA qWelcomeBrowser
|
||||
DATA oFaqTab
|
||||
DATA qFaqBrowser
|
||||
|
||||
DATA cClickedProject
|
||||
DATA cClickedSource
|
||||
|
||||
DATA qCurBrowser
|
||||
|
||||
METHOD new( oIde )
|
||||
METHOD create( oIde )
|
||||
METHOD destroy()
|
||||
METHOD refresh()
|
||||
METHOD execEvent( nMode, p )
|
||||
METHOD buildWelcomeTab()
|
||||
METHOD activateTab( mp1, mp2, oTab )
|
||||
METHOD addProjectsInfo( aHtm )
|
||||
METHOD buildProjectDetails( cProjectTitle )
|
||||
METHOD buildSourcesInfo( cProjectTitle, aSrcInfo )
|
||||
METHOD formatSourceInfo( aHtm, aSrc )
|
||||
METHOD buildFaqTab()
|
||||
METHOD setStyleSheetTextBrowser( qBrw )
|
||||
METHOD print()
|
||||
METHOD paintRequested( pPrinter )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:new( oIde )
|
||||
::oIde := oIde
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:create( oIde )
|
||||
LOCAL oStatFrame
|
||||
|
||||
DEFAULT oIde TO ::oIde
|
||||
::oIde := oIde
|
||||
|
||||
oStatFrame := ::aViews[ 1 ]
|
||||
|
||||
oStatFrame:oTabWidget:oWidget:setDocumentMode( .t. )
|
||||
oStatFrame:oTabWidget:oWidget:setStyleSheet( "QTabWidget::tab-bar {left: 5px;}" )
|
||||
oStatFrame:qLayout:setContentsMargins( 0,0,0,0 )
|
||||
|
||||
::buildWelcomeTab()
|
||||
::buildFaqTab()
|
||||
|
||||
oStatFrame:oTabWidget:oWidget:setCurrentIndex( 0 )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:destroy()
|
||||
|
||||
::disconnect( ::qWelcomeBrowser, "anchorClicked(QUrl)" )
|
||||
::disconnect( ::qWelcomeBrowser, "customContextMenuRequested(QPoint)" )
|
||||
::disconnect( ::qFaqBrowser , "customContextMenuRequested(QPoint)" )
|
||||
|
||||
::qWelcomeBrowser := NIL
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:execEvent( nMode, p )
|
||||
LOCAL cAct, qUrl, cText, cExt
|
||||
|
||||
DO CASE
|
||||
CASE nMode == tabWidget_currentChanged
|
||||
IF p == 0
|
||||
::qCurBrowser := ::qWelcomeBrowser
|
||||
ELSEIF p == 1
|
||||
::qCurBrowser := ::qFaqBrowser
|
||||
ENDIF
|
||||
|
||||
CASE nMode == browserStat_anchorClicked
|
||||
qUrl := QUrl():from( p )
|
||||
cText := lower( qUrl:toString() )
|
||||
|
||||
IF "prj-" $ cText
|
||||
::cClickedProject := substr( cText, 5 )
|
||||
::buildProjectDetails( ::cClickedProject )
|
||||
|
||||
ELSEIF "fle-" $ cText
|
||||
::cClickedSource := substr( cText, 5 )
|
||||
|
||||
/* Send it for Editing */
|
||||
hb_fNameSplit( ::cClickedSource, , , @cExt )
|
||||
IF lower( cExt ) == ".hbp"
|
||||
::buildProjectDetails( ::cClickedSource )
|
||||
ELSE
|
||||
::oSM:editSource( hbide_stripFilter( ::cClickedSource ) )
|
||||
ENDIF
|
||||
/* Stay on the Same Page */
|
||||
::buildProjectDetails( ::cClickedProject )
|
||||
ENDIF
|
||||
|
||||
CASE nMode == browserWelcome_contextMenuRequested .OR. nMode == browserFaq_contextMenuRequested
|
||||
|
||||
IF !empty( cAct := hbide_popupBrwContextMenu( ::qCurBrowser, p ) )
|
||||
IF cAct $ "Back,Forward,Home"
|
||||
::refresh()
|
||||
ELSEIF cAct == "Print"
|
||||
::print()
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
ENDCASE
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:activateTab( mp1, mp2, oTab )
|
||||
|
||||
HB_SYMBOL_UNUSED( mp1 )
|
||||
HB_SYMBOL_UNUSED( mp2 )
|
||||
|
||||
IF oTab == ::oWelcomeTab
|
||||
::qCurBrowser := ::qWelcomeBrowser
|
||||
ELSEIF oTab == ::oFaqTab
|
||||
::qCurBrowser := ::qFaqBrowser
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:print()
|
||||
LOCAL qDlg
|
||||
|
||||
qDlg := QPrintPreviewDialog():new( ::aViews[ 1 ]:oTabWidget )
|
||||
qDlg:setWindowTitle( "Wecome::Projects" )
|
||||
Qt_Slots_Connect( ::pSlots, qDlg, "paintRequested(QPrinter)", {|p| ::paintRequested( p ) } )
|
||||
qDlg:exec()
|
||||
Qt_Slots_disConnect( ::pSlots, qDlg, "paintRequested(QPrinter)" )
|
||||
|
||||
RETURN self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:paintRequested( pPrinter )
|
||||
LOCAL qPrinter := QPrinter():configure( pPrinter )
|
||||
|
||||
::qCurBrowser:print( qPrinter )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:setStyleSheetTextBrowser( qBrw )
|
||||
|
||||
qBrw:setStyleSheet( 'QTextBrowser { background-image: url(resources/hbidesplashwatermark.png); ' + ;
|
||||
'background-attachment: scroll; background-repeat:no-repeat; background-position:center;' + ;
|
||||
'background-color: rgb(255,255,255); }' )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:buildWelcomeTab()
|
||||
LOCAL oTab, qBrw, qSList
|
||||
|
||||
oTab := XbpTabPage():new( ::aViews[ 1 ], , { 5,5 }, { 700,400 }, , .t. )
|
||||
oTab:caption := "Welcome"
|
||||
oTab:minimized := .F.
|
||||
oTab:create()
|
||||
oTab:tabActivate := {|mp1,mp2,oXbp| ::activateTab( mp1, mp2, oXbp ) }
|
||||
|
||||
oTab:hbLayout := HBPLAYOUT_TYPE_VERTBOX
|
||||
oTab:qLayout:setContentsMargins( 0,0,0,0 )
|
||||
|
||||
qBrw := QTextBrowser():new()
|
||||
oTab:qLayout:addWidget( qBrw )
|
||||
qBrw:setContextMenuPolicy( Qt_CustomContextMenu )
|
||||
::setStyleSheetTextBrowser( qBrw )
|
||||
|
||||
::oWelcomeTab := oTab
|
||||
::qWelcomeBrowser := qBrw
|
||||
::qCurBrowser := qBrw
|
||||
|
||||
::connect( qBrw, "anchorClicked(QUrl)" , {|p| ::execEvent( browserStat_anchorClicked, p ) } )
|
||||
::connect( qBrw, "customContextMenuRequested(QPoint)", {|p| ::execEvent( browserWelcome_contextMenuRequested, p ) } )
|
||||
|
||||
qSList := QStringList():new()
|
||||
qSList:append( "docs" )
|
||||
qBrw:setSearchPaths( qSList )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:refresh()
|
||||
LOCAL aHtm := {}
|
||||
|
||||
aadd( aHtm, '<HTML>' )
|
||||
aadd( aHtm, ' <BODY align=center valign=center>' )
|
||||
aadd( aHtm, ' <TABLE cols="7" width="95%">' )
|
||||
aadd( aHtm, ' <TR>' )
|
||||
aadd( aHtm, ' <TD align="left" valign="center" colspan="5">' )
|
||||
aadd( aHtm, ' <IMG src="resources/project.png"' + '</IMG>' + ' ' + ' ' + ' ' )
|
||||
aadd( aHtm, ' <FONT face="Times New Roman" color="#FF4719" size="7"><B><U>Projects</U></B></FONT>' )
|
||||
aadd( aHtm, ' ' + ' ' + ' ' )
|
||||
aadd( aHtm, ' <FONT face="Times New Roman" size="5">' + '( ' + ::oIde:cProjIni + ' )' + '</FONT>' )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' </TR>' )
|
||||
aadd( aHtm, ' <TR bgcolor="#F0F0F5">' )
|
||||
aadd( aHtm, ' <TH width="150" >Title </TH>' )
|
||||
aadd( aHtm, ' <TH width="50" >Type </TH>' )
|
||||
aadd( aHtm, ' <TH width="75" >Sources </TH>' )
|
||||
aadd( aHtm, ' <TH width="150" >Last Modified </TH>' )
|
||||
aadd( aHtm, ' <TH >Location </TH>' )
|
||||
AADD( aHtm, ' </TR>' )
|
||||
//
|
||||
::addProjectsInfo( @aHtm )
|
||||
//
|
||||
aadd( aHtm, ' </TABLE>' )
|
||||
aadd( aHtm, ' </BODY>' )
|
||||
aadd( aHtm, '</HTML>' )
|
||||
//
|
||||
::qWelcomeBrowser:clear()
|
||||
//
|
||||
::qWelcomeBrowser:setHTML( hbide_arrayToMemo( aHtm ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:addProjectsInfo( aHtm )
|
||||
LOCAL a_, prp_, src_, dir_, cIcon
|
||||
|
||||
IF empty( ::aProjects )
|
||||
aadd( aHtm, ' <TR>' )
|
||||
aadd( aHtm, ' <TD>' )
|
||||
aadd( aHtm, ' ' + 'None' )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TR>' )
|
||||
ELSE
|
||||
FOR EACH a_ IN ::aProjects
|
||||
prp_ := a_[ 3, PRJ_PRP_PROPERTIES, 1 ]
|
||||
src_ := a_[ 3, PRJ_PRP_SOURCES , 1 ]
|
||||
dir_ := directory( a_[ 1 ] )
|
||||
cIcon := hbide_imageForProjectType( prp_[ PRJ_PRP_TYPE ] )
|
||||
|
||||
aadd( aHtm, ' <TR>' )
|
||||
aadd( aHtm, ' <TD><B>' )
|
||||
aadd( aHtm, ' ' + hbide_htmlImgAnchor( 'prj-' + prp_[ PRJ_PRP_TITLE ], 'resources/' + cIcon + '.png' ) + ' ' )
|
||||
aadd( aHtm, ' ' + hbide_htmlAnchor( 'prj-' + prp_[ PRJ_PRP_TITLE ], prp_[ PRJ_PRP_TITLE ], a_[ 1 ] ) )
|
||||
aadd( aHtm, ' </B></TD>' )
|
||||
aadd( aHtm, ' <TD align=left>' )
|
||||
aadd( aHtm, ' ' + left( prp_[ PRJ_PRP_TYPE ], 3 ) )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TD align=right>' )
|
||||
aadd( aHtm, ' ' + hb_ntos( len( src_ ) ) )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TD align=center>' )
|
||||
aadd( aHtm, ' ' + dtoc( dir_[ 1,3 ] ) + " " + dir_[ 1,4 ] )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TD align=right>' )
|
||||
aadd( aHtm, ' ' + hbide_pathNormalized( a_[ 1 ] ) )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' </TR>' )
|
||||
NEXT
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:buildProjectDetails( cProjectTitle )
|
||||
LOCAL aSrc, cSrc, dir_, cRoot, cExt, cIcon, cName, cPath
|
||||
LOCAL aSrcInfo := {}, a_:= {}
|
||||
|
||||
aSrc := ::oPM:getSourcesByProjectTitle( cProjectTitle )
|
||||
cRoot := ::oPM:getProjectPathFromTitle( cProjectTitle )
|
||||
|
||||
FOR EACH cSrc IN aSrc
|
||||
aadd( a_, hbide_syncProjPath( cRoot, cSrc ) )
|
||||
NEXT
|
||||
a_ := hbide_groupSources( "org", a_ )
|
||||
FOR EACH cSrc IN a_
|
||||
hb_fNameSplit( cSrc, @cPath, @cName, @cExt )
|
||||
cExt := lower( cExt )
|
||||
cIcon := hbide_imageForFileType( cExt )
|
||||
IF !empty( dir_:= directory( cSrc ) )
|
||||
// bytes date time
|
||||
aadd( aSrcInfo, { cSrc, hbide_pathNormalized( cPath ), cName, cExt, cIcon, dir_[ 1,2 ], dir_[ 1,3 ], dir_[ 1,4 ] } )
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
IF !empty( aSrcInfo )
|
||||
::buildSourcesInfo( cProjectTitle, aSrcInfo )
|
||||
ELSE
|
||||
::refresh()
|
||||
ENDIF
|
||||
|
||||
RETURN aSrcInfo
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:buildSourcesInfo( cProjectTitle, aSrcInfo )
|
||||
LOCAL aHtm := {}, aSrc
|
||||
LOCAL cIcon := hbide_imageForProjectType( ::oPM:getProjectTypeFromTitle( cProjectTitle ) )
|
||||
|
||||
aadd( aHtm, '<HTML>' )
|
||||
aadd( aHtm, ' <BODY ALIGN=center VALIGN=center>' )
|
||||
aadd( aHtm, ' <TABLE COLS="7" WIDTH="95%">' )
|
||||
aadd( aHtm, ' <TR><TD align=left>' )
|
||||
aadd( aHtm, ' <IMG src="' + 'resources/' + cIcon + '.png' + '"' + '</IMG>' + ' ' + ' ' + ' ' )
|
||||
aadd( aHtm, ' <FONT color="#FF4719" size=5><U>' + cProjectTitle + '</U></FONT>' )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TR bgcolor="#F0F0F5">' )
|
||||
aadd( aHtm, ' <TH width="150" >Source</TH>' )
|
||||
aadd( aHtm, ' <TH width="50" >Type</TH>' )
|
||||
aadd( aHtm, ' <TH width="60" >Size</TH>' )
|
||||
aadd( aHtm, ' <TH width="150" >Last Modified</TH>' )
|
||||
aadd( aHtm, ' <TH >Location</TH>' )
|
||||
AADD( aHtm, ' </TR>' )
|
||||
//
|
||||
FOR EACH aSrc IN aSrcInfo
|
||||
::formatSourceInfo( @aHtm, aSrc )
|
||||
NEXT
|
||||
//
|
||||
aadd( aHtm, ' </TABLE>' )
|
||||
aadd( aHtm, ' </BODY>' )
|
||||
aadd( aHtm, '</HTML>' )
|
||||
//
|
||||
::qWelcomeBrowser:clear()
|
||||
//
|
||||
::qWelcomeBrowser:setHTML( hbide_arrayToMemo( aHtm ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:formatSourceInfo( aHtm, aSrc )
|
||||
|
||||
aadd( aHtm, ' <TR>' )
|
||||
aadd( aHtm, ' <TD><B>' )
|
||||
aadd( aHtm, ' ' + hbide_htmlImgAnchor( 'fle-' + aSrc[ 1 ], 'resources/' + aSrc[ 5 ] + '.png' ) + ' ' )
|
||||
aadd( aHtm, ' ' + hbide_htmlAnchor( 'fle-' + aSrc[ 1 ], aSrc[ 3 ], aSrc[ 1 ] ) )
|
||||
aadd( aHtm, ' </B></TD>' )
|
||||
aadd( aHtm, ' <TD>' )
|
||||
aadd( aHtm, ' ' + aSrc[ 4 ] )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TD align=right>' )
|
||||
aadd( aHtm, ' ' + hb_ntos( aSrc[ 6 ] ) )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TD align=center>' )
|
||||
aadd( aHtm, ' ' + dtoc( aSrc[ 7 ] ) + " " + aSrc[ 8 ] )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' <TD align=right>' )
|
||||
aadd( aHtm, ' ' + aSrc[ 2 ] )
|
||||
aadd( aHtm, ' </TD>' )
|
||||
aadd( aHtm, ' </TR>' )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeHome:buildFaqTab()
|
||||
LOCAL oTab, qBrw, aFaq, aHtm, a_, b_, s
|
||||
|
||||
oTab := XbpTabPage():new( ::aViews[ 1 ], , { 5,5 }, { 700,400 }, , .t. )
|
||||
oTab:caption := "FAQ's"
|
||||
oTab:minimized := .F.
|
||||
oTab:create()
|
||||
oTab:tabActivate := {|mp1,mp2,oXbp| ::activateTab( mp1, mp2, oXbp ) }
|
||||
|
||||
oTab:hbLayout := HBPLAYOUT_TYPE_VERTBOX
|
||||
oTab:qLayout:setContentsMargins( 0,0,0,0 )
|
||||
|
||||
qBrw := QTextBrowser():new()
|
||||
oTab:qLayout:addWidget( qBrw )
|
||||
qBrw:setContextMenuPolicy( Qt_CustomContextMenu )
|
||||
::setStyleSheetTextBrowser( qBrw )
|
||||
|
||||
::connect( qBrw, "customContextMenuRequested(QPoint)", {|p| ::execEvent( browserFaq_contextMenuRequested, p ) } )
|
||||
|
||||
::oFaqTab := oTab
|
||||
::qFaqBrowser := qBrw
|
||||
|
||||
aFaq := hbide_getFaqs() ; a_:= aFaq[ 1 ]; b_:= aFaq[ 2 ]
|
||||
aHtm := {}
|
||||
|
||||
aadd( aHtm, '<HTML>' )
|
||||
aadd( aHtm, ' <BODY ALIGN=center VALIGN=center>' )
|
||||
aadd( aHtm, ' <TABLE COLS="7" WIDTH="95%">' )
|
||||
FOR EACH s IN a_
|
||||
aadd( aHtm, ' <TR><TD></TD></TR>' )
|
||||
aadd( aHtm, ' <TR><TD>' )
|
||||
aadd( aHtm, ' <FONT color="red" size=4>' + s + '</FONT>' )
|
||||
aadd( aHtm, ' </TD></TR>' )
|
||||
aadd( aHtm, ' <TR><TD>' )
|
||||
aadd( aHtm, ' <FONT color="black" size=3>' + b_[ s:__enumIndex() ] + '</FONT>' )
|
||||
aadd( aHtm, ' </TD></TR>' )
|
||||
NEXT
|
||||
aadd( aHtm, ' </TABLE>' )
|
||||
aadd( aHtm, ' </BODY>' )
|
||||
aadd( aHtm, '</HTML>' )
|
||||
//
|
||||
::qFaqBrowser:clear()
|
||||
//
|
||||
::qFaqBrowser:setHTML( hbide_arrayToMemo( aHtm ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION hbide_getFaqs()
|
||||
LOCAL a_:= {}, b_:= {}
|
||||
|
||||
aadd( a_, 'Does hbIDE support editing of same source at more than one place simultaneously ?' )
|
||||
aadd( b_, 'Yes. hbIDE provides for splitting an editing window, horizontally and vertically, ' + ;
|
||||
'both ways. Right-click anywhere in the editor, point to "Split..." and then ' + ;
|
||||
'click on required option.' )
|
||||
|
||||
aadd( a_, 'Does hbIDE support session management ?' )
|
||||
aadd( b_, 'Yes. And in a unique way. It provides to construct n number of "Panels" where you can spread ' + ;
|
||||
'sources. Each panel is given a name as well as corresponding button on the left-toolbar, a colored ' + ;
|
||||
'circle, to bring it forward. New panel can be created from selecting "New..." from drop-down ' + ;
|
||||
'list on top-toolbar and providing a name in the editing dialog. For this reason you will never ' + ;
|
||||
'need to exit hbIDE and reenter again. It is a big productivity boost.' )
|
||||
|
||||
RETURN { a_, b_ }
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -153,8 +153,8 @@ FUNCTION hbide_execPopup( aPops, aqPos, qParent )
|
||||
ENDIF
|
||||
|
||||
qPop := NIL
|
||||
|
||||
RETURN xRet
|
||||
hbide_justACall( xRet )
|
||||
RETURN cAct
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -1411,7 +1411,7 @@ STATIC FUNCTION hbide_HBPStrStripQuote( cString )
|
||||
STATIC FUNCTION hbide_HBPExtGet( cFileName )
|
||||
LOCAL cExt
|
||||
|
||||
hb_FNameSplit( cFileName,,, @cExt )
|
||||
hb_FNameSplit( cFileName, , , @cExt )
|
||||
|
||||
RETURN cExt
|
||||
|
||||
@@ -1722,3 +1722,285 @@ FUNCTION hbide_syncProjPath( cRoot, cSource )
|
||||
RETURN cRoot + cSource
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_popupBrwContextMenu( qTextBrowser, p )
|
||||
LOCAL aMenu := {}
|
||||
|
||||
aadd( aMenu, { "Back" , {|| qTextBrowser:backward() } } )
|
||||
aadd( aMenu, { "Forward" , {|| qTextBrowser:forward() } } )
|
||||
aadd( aMenu, { "Home" , {|| qTextBrowser:home() } } )
|
||||
aadd( aMenu, { "" } )
|
||||
aadd( aMenu, { "Reload" , {|| qTextBrowser:reload() } } )
|
||||
aadd( aMenu, { "" } )
|
||||
aadd( aMenu, { "Select All", {|| qTextBrowser:selectAll() } } )
|
||||
aadd( aMenu, { "Copy" , {|| qTextBrowser:copy() } } )
|
||||
aadd( aMenu, { "Print" , {|| NIL } } )
|
||||
|
||||
RETURN hbide_execPopup( aMenu, p, qTextBrowser )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_groupSources( cMode, a_ )
|
||||
LOCAL cTyp, s, d_, n
|
||||
LOCAL aSrc := { ".prg", ".c", ".cpp", ".h", ".ch", ".hbp", ".hbc", ".rc", ".res", ".obj", ".o", ".lib", ".a" }
|
||||
LOCAL aTxt := { {} , {} , {} , {} , {} , {} , {} , {} , {} , {} , {} , {} , {} }
|
||||
LOCAL aRst := {}
|
||||
|
||||
IF cMode == "az"
|
||||
asort( a_, , , {|e,f| lower( hbide_stripFilter( e ) ) < lower( hbide_stripFilter( f ) ) } )
|
||||
ELSEIF cMode == "za"
|
||||
asort( a_, , , {|e,f| lower( hbide_stripFilter( f ) ) < lower( hbide_stripFilter( e ) ) } )
|
||||
ELSEIF cMode == "org"
|
||||
asort( a_, , , {|e,f| lower( hbide_stripFilter( e ) ) < lower( hbide_stripFilter( f ) ) } )
|
||||
|
||||
FOR EACH s IN a_
|
||||
s := alltrim( s )
|
||||
IF left( s, 1 ) != "#"
|
||||
cTyp := hbide_sourceType( s )
|
||||
|
||||
IF ( n := ascan( aSrc, {|e| cTyp == e } ) ) > 0
|
||||
aadd( aTxt[ n ], s )
|
||||
ELSE
|
||||
aadd( aRst, s )
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
a_:= {}
|
||||
FOR EACH d_ IN aTxt
|
||||
IF !empty( d_ )
|
||||
FOR EACH s IN d_
|
||||
aadd( a_, s )
|
||||
NEXT
|
||||
ENDIF
|
||||
NEXT
|
||||
IF !empty( aRst )
|
||||
FOR EACH s IN aRst
|
||||
aadd( a_, s )
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN a_
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_imageForProjectType( cType )
|
||||
cType := left( cType, 8 )
|
||||
RETURN iif( cType == "Lib", "fl_lib", iif( cType == "Dll", "fl_dll", "fl_exe" ) )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_imageForFileType( cType )
|
||||
cType := lower( cType )
|
||||
SWITCH cType
|
||||
CASE ".exe"
|
||||
RETURN "fl_exe"
|
||||
CASE ".lib"
|
||||
CASE ".a"
|
||||
RETURN "fl_lib"
|
||||
CASE ".rc"
|
||||
CASE ".res"
|
||||
RETURN "source_res" //"fl_res"
|
||||
CASE ".prg"
|
||||
RETURN "source_prg" //"fl_prg"
|
||||
CASE ".c"
|
||||
RETURN "source_c"
|
||||
CASE ".cpp"
|
||||
RETURN "source_cpp" //"fl_c"
|
||||
CASE ".o"
|
||||
CASE ".obj"
|
||||
RETURN "source_o" //"fl_obj"
|
||||
CASE ".hbp"
|
||||
RETURN "project"
|
||||
CASE ".hbc"
|
||||
RETURN "envconfig"
|
||||
CASE ".h"
|
||||
CASE ".ch"
|
||||
RETURN "source_h"
|
||||
OTHERWISE
|
||||
RETURN "source_unknown" //"fl_txt"
|
||||
ENDSWITCH
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* Borrowed from hbmk2.prg - thanks Viktor */
|
||||
|
||||
PROCEDURE convert_xhp_to_hbp( cSrcName, cDstName )
|
||||
LOCAL cSrc := MemoRead( cSrcName )
|
||||
LOCAL cDst
|
||||
LOCAL aDst := {}
|
||||
LOCAL tmp
|
||||
LOCAL cLine
|
||||
LOCAL cSetting
|
||||
LOCAL cValue
|
||||
LOCAL aValue
|
||||
LOCAL cFile
|
||||
|
||||
LOCAL hLIBPATH := {=>}
|
||||
|
||||
LOCAL cMAIN := NIL
|
||||
|
||||
LOCAL lFileSection := .F.
|
||||
|
||||
IF empty( cDstName )
|
||||
cDstName := FN_ExtSet( cSrcName, ".hbp" )
|
||||
ENDIF
|
||||
|
||||
cSrc := StrTran( cSrc, Chr( 13 ) + Chr( 10 ), Chr( 10 ) )
|
||||
cSrc := StrTran( cSrc, Chr( 9 ), Chr( 32 ) )
|
||||
|
||||
FOR EACH cLine IN hb_ATokens( cSrc, Chr( 10 ) )
|
||||
IF cLine == "[Files]"
|
||||
lFileSection := .T.
|
||||
ELSEIF lFileSection
|
||||
tmp := At( "=", cLine )
|
||||
IF tmp > 0
|
||||
cFile := AllTrim( Left( cLine, tmp - 1 ) )
|
||||
SWITCH Lower( FN_ExtGet( cFile ) )
|
||||
CASE ".c"
|
||||
CASE ".prg"
|
||||
IF !( "%HB_INSTALL%\" $ cFile )
|
||||
AAdd( aDst, StrTran( cFile, "%HOME%\" ) )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE ".lib"
|
||||
CASE ".a"
|
||||
IF !( "%C_LIB_INSTALL%\" $ cFile ) .AND. ;
|
||||
!( "%HB_LIB_INSTALL%\" $ cFile )
|
||||
cFile := StrTran( cFile, "%HOME%\" )
|
||||
IF !( FN_DirGet( cFile ) $ hLIBPATH )
|
||||
hLIBPATH[ FN_DirGet( cFile ) ] := NIL
|
||||
ENDIF
|
||||
AAdd( aDst, "-l" + FN_NameGet( cFile ) )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE ".obj"
|
||||
CASE ".o"
|
||||
IF !( "%C_LIB_INSTALL%\" $ cFile ) .AND. ;
|
||||
!( "%HB_LIB_INSTALL%\" $ cFile )
|
||||
AAdd( aDst, StrTran( cFile, "%HOME%\" ) )
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
ENDIF
|
||||
ELSE
|
||||
tmp := At( "=", cLine )
|
||||
IF tmp > 0
|
||||
cSetting := AllTrim( Left( cLine, tmp - 1 ) )
|
||||
cValue := AllTrim( SubStr( cLine, tmp + Len( "=" ) ) )
|
||||
aValue := hb_ATokens( cValue )
|
||||
IF ! Empty( cValue )
|
||||
SWITCH cSetting
|
||||
CASE "Create Map/List File"
|
||||
IF cValue == "Yes"
|
||||
AAdd( aDst, "-map" )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE "Final Path"
|
||||
IF ! Empty( cValue )
|
||||
AAdd( aDst, "-o" + DirAddPathSep( StrTran( cValue, "%HOME%\" ) ) )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE "Include"
|
||||
FOR EACH tmp IN aValue
|
||||
IF Left( tmp, 2 ) == "-I"
|
||||
tmp := SubStr( tmp, 3 )
|
||||
ENDIF
|
||||
AAdd( aDst, "-incpath=" + StrTran( StrTran( tmp, Chr( 34 ) ), "%HOME%\" ) )
|
||||
NEXT
|
||||
EXIT
|
||||
CASE "Define"
|
||||
FOR EACH tmp IN aValue
|
||||
IF Left( tmp, 2 ) == "-D"
|
||||
tmp := SubStr( tmp, 3 )
|
||||
ENDIF
|
||||
AAdd( aDst, "-D" + tmp )
|
||||
NEXT
|
||||
EXIT
|
||||
CASE "Params"
|
||||
FOR EACH tmp IN aValue
|
||||
AAdd( aDst, "-runflag=" + tmp )
|
||||
NEXT
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
FOR EACH tmp IN hLIBPATH
|
||||
AAdd( aDst, "-L" + tmp:__enumKey() )
|
||||
NEXT
|
||||
|
||||
cDst := ""
|
||||
FOR EACH tmp IN aDst
|
||||
cDst += tmp + hb_osNewLine()
|
||||
NEXT
|
||||
|
||||
hb_MemoWrit( cDstName, cDst )
|
||||
|
||||
RETURN
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION FN_DirGet( cFileName )
|
||||
LOCAL cDir
|
||||
|
||||
hb_FNameSplit( cFileName, @cDir )
|
||||
|
||||
RETURN cDir
|
||||
|
||||
STATIC FUNCTION FN_NameGet( cFileName )
|
||||
LOCAL cName
|
||||
|
||||
hb_FNameSplit( cFileName,, @cName )
|
||||
|
||||
RETURN cName
|
||||
|
||||
STATIC FUNCTION FN_NameExtGet( cFileName )
|
||||
LOCAL cName, cExt
|
||||
|
||||
hb_FNameSplit( cFileName,, @cName, @cExt )
|
||||
|
||||
RETURN hb_FNameMerge( NIL, cName, cExt )
|
||||
|
||||
STATIC FUNCTION FN_ExtGet( cFileName )
|
||||
LOCAL cExt
|
||||
|
||||
hb_FNameSplit( cFileName,,, @cExt )
|
||||
|
||||
RETURN cExt
|
||||
|
||||
STATIC FUNCTION FN_ExtDef( cFileName, cDefExt )
|
||||
LOCAL cDir, cName, cExt
|
||||
|
||||
hb_FNameSplit( cFileName, @cDir, @cName, @cExt )
|
||||
IF Empty( cExt )
|
||||
cExt := cDefExt
|
||||
ENDIF
|
||||
|
||||
RETURN hb_FNameMerge( cDir, cName, cExt )
|
||||
|
||||
STATIC FUNCTION FN_ExtSet( cFileName, cExt )
|
||||
LOCAL cDir, cName
|
||||
|
||||
hb_FNameSplit( cFileName, @cDir, @cName )
|
||||
|
||||
RETURN hb_FNameMerge( cDir, cName, cExt )
|
||||
|
||||
STATIC FUNCTION FN_DirExtSet( cFileName, cDirNew, cExtNew )
|
||||
LOCAL cDir, cName, cExt
|
||||
|
||||
hb_FNameSplit( cFileName, @cDir, @cName, @cExt )
|
||||
|
||||
IF cDirNew != NIL
|
||||
cDir := cDirNew
|
||||
ENDIF
|
||||
IF cExtNew != NIL
|
||||
cExt := cExtNew
|
||||
ENDIF
|
||||
|
||||
RETURN hb_FNameMerge( cDir, cName, cExt )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -91,6 +91,7 @@ CLASS IdeObject
|
||||
ACCESS oSM INLINE ::oIde:oSM
|
||||
ACCESS oEV INLINE ::oIde:oEV
|
||||
ACCESS oHL INLINE ::oIde:oHL
|
||||
ACCESS oHM INLINE ::oIde:oHM
|
||||
|
||||
ACCESS oFindDock INLINE ::oIde:oFindDock
|
||||
ACCESS oFindInFiles INLINE ::oIde:oFindInFiles
|
||||
@@ -143,7 +144,6 @@ CLASS IdeObject
|
||||
ACCESS aViews INLINE ::oIde:aViews
|
||||
ACCESS aSkltns INLINE ::oIde:aSkltns
|
||||
|
||||
ACCESS nCurView INLINE ::oIde:nCurView
|
||||
ACCESS nTabSpaces INLINE ::oIde:nTabSpaces
|
||||
ACCESS cTabSpaces INLINE ::oIde:cTabSpaces
|
||||
ACCESS cSeparator INLINE ::oIde:cSeparator
|
||||
|
||||
@@ -238,6 +238,7 @@ CLASS IdeProjManager INHERIT IdeObject
|
||||
METHOD getProjectProperties( cProjectTitle )
|
||||
METHOD getProjectByFile( cProjectFile )
|
||||
METHOD getProjectFileNameFromTitle( cProjectTitle )
|
||||
METHOD getProjectTypeFromTitle( cProjectTitle )
|
||||
METHOD getProjectPathFromTitle( cProjectTitle )
|
||||
METHOD getProjectByTitle( cProjectTitle )
|
||||
METHOD getSourcesByProjectTitle( cProjectTitle )
|
||||
@@ -248,12 +249,12 @@ CLASS IdeProjManager INHERIT IdeObject
|
||||
METHOD launchProject( cProject, cExe )
|
||||
METHOD showOutput( cOutput, mp2, oProcess )
|
||||
METHOD finished( nExitCode, nExitStatus, oProcess )
|
||||
METHOD loadXhpProject()
|
||||
METHOD loadHbpProject( cHbp )
|
||||
METHOD isValidProjectLocation( lTell )
|
||||
METHOD setProjectLocation( cPath )
|
||||
METHOD buildInterface()
|
||||
METHOD pullHbpData( cHbp )
|
||||
METHOD synchronizeAlienProject( cProjFileName )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -299,20 +300,11 @@ METHOD IdeProjManager:populate()
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:getProperties()
|
||||
LOCAL aPrj, cHbi, cTmp, n
|
||||
LOCAL cTmp, n
|
||||
|
||||
IF Empty( ::cWrkProject )
|
||||
MsgBox( 'No active project detected' )
|
||||
ENDIF
|
||||
cTmp := ::getCurrentProject()
|
||||
IF ( n := ascan( ::aProjects, {|e_| e_[ 3, PRJ_PRP_PROPERTIES, 2, E_oPrjTtl ] == cTmp } ) ) > 0
|
||||
aPrj := ::aProjects[ n, 3 ]
|
||||
cHbi := aPrj[ PRJ_PRP_PROPERTIES, 2, PRJ_PRP_LOCATION ] + ::pathSep + ;
|
||||
aPrj[ PRJ_PRP_PROPERTIES, 2, PRJ_PRP_OUTPUT ] + ".hbp"
|
||||
|
||||
::loadProperties( cHbi, .f., .t., .t. )
|
||||
ELSE
|
||||
MsgBox( 'Invalid project: ' + cTmp )
|
||||
::loadProperties( ::aProjects[ n, 1 ], .f., .t., .t. )
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
@@ -340,7 +332,9 @@ METHOD IdeProjManager:loadProperties( cProjFileName, lNew, lFetch, lUpdateTree )
|
||||
lFetch := .t.
|
||||
ELSE
|
||||
IF empty( cProjFileName )
|
||||
cProjFileName := hbide_fetchAFile( ::oDlg, "Load Project...", { { "Harbour IDE Projects (*.hbp)", "*.hbp" } } )
|
||||
cProjFileName := hbide_fetchAFile( ::oDlg, "Open Project...", { { "Harbour Projects (*.hbp)", "*.hbp" } , ;
|
||||
{ "xMate Projects (*.xhp)" , "*.xhp" } } )
|
||||
cProjFileName := ::synchronizeAlienProject( cProjFileName )
|
||||
ENDIF
|
||||
IF empty( cProjFileName )
|
||||
RETURN Self
|
||||
@@ -362,24 +356,22 @@ METHOD IdeProjManager:loadProperties( cProjFileName, lNew, lFetch, lUpdateTree )
|
||||
::oPropertiesDock:hide()
|
||||
::oPropertiesDock:show()
|
||||
ELSE
|
||||
IF nAlready == 0 .AND. !empty( ::aPrjProps )
|
||||
aadd( ::oIDE:aProjects, { hbide_pathNormalized( cProjFileName ), cProjFileName, aclone( ::aPrjProps ) } )
|
||||
IF lUpdateTree
|
||||
::oIDE:updateProjectTree( ::aPrjProps )
|
||||
IF !empty( ::aPrjProps )
|
||||
IF nAlready == 0
|
||||
aadd( ::oIDE:aProjects, { hbide_pathNormalized( cProjFileName ), cProjFileName, aclone( ::aPrjProps ) } )
|
||||
IF lUpdateTree
|
||||
::oIDE:updateProjectTree( ::aPrjProps )
|
||||
ENDIF
|
||||
hbide_mnuAddFileToMRU( ::oIDE, cProjFileName, INI_RECENTPROJECTS )
|
||||
ELSE
|
||||
::aProjects[ nAlready, 3 ] := aclone( ::aPrjProps )
|
||||
IF lUpdateTree
|
||||
::oIDE:updateProjectTree( ::aPrjProps )
|
||||
ENDIF
|
||||
ENDIF
|
||||
hbide_mnuAddFileToMRU( ::oIDE, cProjFileName, INI_RECENTPROJECTS )
|
||||
ELSE
|
||||
::aProjects[ nAlready, 3 ] := aclone( ::aPrjProps )
|
||||
IF lUpdateTree
|
||||
::oIDE:updateProjectTree( ::aPrjProps )
|
||||
ENDIF
|
||||
#if 0
|
||||
IF lUpdateTree .AND. ::aPrjProps[ PRJ_PRP_PROPERTIES, 2, E_qPrjType ] <> t
|
||||
MsgBox( "::removeProjectFromTree( ::aPrjProps )" )
|
||||
ENDIF
|
||||
#endif
|
||||
ENDIF
|
||||
|
||||
::oHM:refresh() /* Rearrange Projects Data */
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
@@ -596,25 +588,24 @@ METHOD IdeProjManager:save( lCanClose )
|
||||
::cSaveTo := ::oUI:q_editPrjLoctn:text() + ::pathSep + ::oUI:q_editOutName:text() + ".hbp"
|
||||
|
||||
::cSaveTo := hbide_pathToOSPath( ::cSaveTo )
|
||||
hbide_dbg( ::lUpdateTree, ::cSaveTo )
|
||||
|
||||
IF ( lOk := hbide_createTarget( ::cSaveTo, txt_ ) )
|
||||
::aPrjProps := ::pullHbpData( hbide_pathToOSPath( ::cSaveTo ) )
|
||||
|
||||
IF ( nAlready := ascan( ::aProjects, {|e_| e_[ 1 ] == hbide_pathNormalized( ::cSaveTo ) } ) ) == 0
|
||||
hbide_dbg( nAlready, ::lUpdateTree, ::cSaveTo )
|
||||
aadd( ::oIDE:aProjects, { hbide_pathNormalized( ::cSaveTo ), ::cSaveTo, aclone( ::aPrjProps ) } )
|
||||
IF ::lUpdateTree
|
||||
::oIDE:updateProjectTree( ::aPrjProps )
|
||||
ENDIF
|
||||
hbide_mnuAddFileToMRU( ::oIDE, ::cSaveTo, INI_RECENTPROJECTS )
|
||||
ELSE
|
||||
hbide_dbg( nAlready, ::lUpdateTree, ::cSaveTo )
|
||||
::aProjects[ nAlready, 3 ] := aclone( ::aPrjProps )
|
||||
IF ::lUpdateTree
|
||||
::oIDE:updateProjectTree( ::aPrjProps )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
::oHM:refresh() /* Rearrange Projects Data */
|
||||
ELSE
|
||||
MsgBox( 'Error saving project file: ' + ::cSaveTo, 'Error saving project ...' )
|
||||
|
||||
@@ -749,7 +740,6 @@ METHOD IdeProjManager:buildInterface()
|
||||
::oUI:q_buttonChooseWd :setIcon( cLukupPng )
|
||||
::oUI:q_buttonChooseDest :setIcon( cLukupPng )
|
||||
::oUI:q_buttonBackup :setIcon( cLukupPng )
|
||||
::oUI:q_buttonXmate :setIcon( hbide_image( "xmate" ) )
|
||||
|
||||
::oUI:q_buttonSelect :setIcon( hbide_image( "open" ) )
|
||||
::oUI:q_buttonSort :setIcon( hbide_image( "sort" ) )
|
||||
@@ -771,7 +761,6 @@ METHOD IdeProjManager:buildInterface()
|
||||
::oUI:signal( "buttonChooseWd" , "clicked()", {|| ::PromptForPath( 'editWrkFolder', 'Choose Working Folder...' ) } )
|
||||
::oUI:signal( "buttonChooseDest" , "clicked()", {|| ::PromptForPath( 'editDstFolder', 'Choose Destination Folder...' ) } )
|
||||
::oUI:signal( "buttonBackup" , "clicked()", {|| ::PromptForPath( 'editBackup' , 'Choose Backup Folder...' ) } )
|
||||
::oUI:signal( "buttonXmate" , "clicked()", {|| ::loadXhpProject() } )
|
||||
|
||||
::oUI:signal( "editPrjLoctn" , "textChanged(QString)", {|cPath| ::setProjectLocation( cPath ) } )
|
||||
|
||||
@@ -779,167 +768,28 @@ METHOD IdeProjManager:buildInterface()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:loadXhpProject()
|
||||
LOCAL cXhp, a_, s, n, cPart, cKey, cVal
|
||||
LOCAL cHome, cOutname, cType, cDefine, cInclude
|
||||
LOCAL cRun, cParams, cDestntn, cMap
|
||||
LOCAL cPath, cFile, cExt
|
||||
LOCAL hLIBPATH := {=>}
|
||||
LOCAL aLibs := {}, aFlags := {}, aFiles := {}, aSrc := {}
|
||||
METHOD IdeProjManager:synchronizeAlienProject( cProjFileName )
|
||||
LOCAL cPath, cFile, cExt, cHbp
|
||||
|
||||
cXhp := hbide_fetchAFile( ::oDlg, "Selecet xMate Project File", { { "xMate Project Files", "*.xhp" } } )
|
||||
|
||||
IF empty( cXhp )
|
||||
RETURN Self
|
||||
hb_fNameSplit( cProjFileName, @cPath, @cFile, @cExt )
|
||||
IF lower( cExt ) == ".hbp" /* Nothing to do */
|
||||
RETURN cProjFileName
|
||||
ENDIF
|
||||
hb_fNameSplit( cXhp, @cHome, @cOutName )
|
||||
cHome := hbide_pathStripLastSlash( cHome )
|
||||
|
||||
a_:= hbide_readSource( cXhp )
|
||||
|
||||
cPart := ""
|
||||
FOR EACH s IN a_
|
||||
s := alltrim( s )
|
||||
IF empty( s )
|
||||
LOOP
|
||||
ENDIF
|
||||
IF left( s, 1 ) == "["
|
||||
IF ( n := at( "]", s ) ) > 0
|
||||
cPart := substr( s, 2, n-2 )
|
||||
ELSE
|
||||
cPart := ""
|
||||
ENDIF
|
||||
ELSE
|
||||
SWITCH lower( cPart )
|
||||
CASE "version"
|
||||
EXIT
|
||||
CASE "xmate"
|
||||
IF hbide_parseKeyValPair( s, @cKey, @cVal )
|
||||
IF cKey == "Create Map/List File" .AND. cVal == "Yes"
|
||||
cMap := "-map"
|
||||
ENDIF
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE "info"
|
||||
IF hbide_parseKeyValPair( s, @cKey, @cVal )
|
||||
SWITCH lower( cKey )
|
||||
CASE "type"
|
||||
cType := cVal
|
||||
EXIT
|
||||
CASE "include"
|
||||
cInclude := cVal
|
||||
EXIT
|
||||
CASE "define"
|
||||
cDefine := cVal
|
||||
EXIT
|
||||
CASE "architecture"
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE "xmate"
|
||||
EXIT
|
||||
CASE "project"
|
||||
IF hbide_parseKeyValPair( s, @cKey, @cVal )
|
||||
SWITCH lower( cKey )
|
||||
CASE "run"
|
||||
cRun := cVal
|
||||
EXIT
|
||||
CASE "params"
|
||||
cParams := cVal
|
||||
EXIT
|
||||
CASE "final path"
|
||||
cDestntn := hbide_pathStripLastSlash( cVal )
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE "data path"
|
||||
EXIT
|
||||
CASE "editor"
|
||||
EXIT
|
||||
CASE "files"
|
||||
IF hbide_parseKeyValPair( s, @cKey, @cVal )
|
||||
aadd( aFiles, cKey )
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
/* Basic Parsing is complete , parse paths from keywords */
|
||||
SWITCH cType
|
||||
CASE "Executable"
|
||||
::oUI:q_comboPrjType:setCurrentIndex( 0 )
|
||||
EXIT
|
||||
CASE "Library"
|
||||
::oUI:q_comboPrjType:setCurrentIndex( 1 )
|
||||
EXIT
|
||||
CASE "Dll"
|
||||
::oUI:q_comboPrjType:setCurrentIndex( 2 )
|
||||
EXIT
|
||||
OTHERWISE
|
||||
::oUI:q_comboPrjType:setCurrentIndex( 0 )
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
::oUI:q_editPrjTitle :setText( cOutName )
|
||||
::oUI:q_editPrjLoctn :setText( cHome )
|
||||
* ::oUI:q_editWrkFolder:setText( "" )
|
||||
::oUI:q_editDstFolder:setText( iif( cDestntn == "%HOME%", cHome, strtran( cDestntn, "%HOME%\", ) ) )
|
||||
* ::oUI:q_editBackup :setText( "" )
|
||||
::oUI:q_editOutName :setText( cOutName )
|
||||
::oUI:q_editLaunchParams:setText( cParams )
|
||||
::oUI:q_editLaunchExe:setText( cRun )
|
||||
|
||||
IF !empty( cMap )
|
||||
aadd( aFlags, cMap )
|
||||
endif
|
||||
aadd( aFlags, "-inc" )
|
||||
IF !empty( cDefine )
|
||||
FOR EACH s IN hb_aTokens( cDefine, ";" )
|
||||
IF !empty( s )
|
||||
aadd( aFlags, "-D" + StrTran( s, "%HOME%\", ) )
|
||||
ENDIF
|
||||
NEXT
|
||||
IF !( lower( cExt ) $ ".xhp" ) /* Not a valid alien project file */
|
||||
RETURN ""
|
||||
ENDIF
|
||||
IF !empty( cInclude )
|
||||
FOR EACH s IN hb_aTokens( cInclude, ";" )
|
||||
IF !empty( s )
|
||||
IF !( "%HB_INSTALL%" $ s .OR. "%HB_LIB_INSTALL%" $ s .OR. "%C_LIB_INSTALL%" $ s )
|
||||
aadd( aFlags, "-incpath=" + StrTran( s, "%HOME%\", ) )
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
FOR EACH s IN aFiles
|
||||
IF !( "%HB_INSTALL%" $ s .OR. "%HB_LIB_INSTALL%" $ s .OR. "%C_LIB_INSTALL%" $ s )
|
||||
hb_fNameSplit( s, @cPath, @cFile, @cExt )
|
||||
SWITCH lower( cExt )
|
||||
CASE ".lib"
|
||||
CASE ".a"
|
||||
IF !( cPath $ hLIBPATH )
|
||||
hLIBPATH[ cPath ] := NIL
|
||||
ENDIF
|
||||
aadd( aLibs, cFile )
|
||||
EXIT
|
||||
OTHERWISE
|
||||
aadd( aSrc, StrTran( s, "%HOME%\", ) )
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
cHbp := cPath + cFile + ".hbp"
|
||||
IF hb_fileExists( cHbp )
|
||||
IF ! hbide_getYesNo( "A .hbp with convered name already exists, overwrite ?", "", "Project exists" )
|
||||
RETURN ""
|
||||
ENDIF
|
||||
NEXT
|
||||
FOR EACH s IN hLIBPATH
|
||||
aadd( aFlags, "-L" + s:__enumKey() )
|
||||
NEXT
|
||||
FOR EACH s IN aLibs
|
||||
aadd( aFlags, "-l" + s )
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
::oUI:q_editFlags :setPlainText( hbide_arrayToMemo( aFlags ) )
|
||||
::oUI:q_editSources:setPlainText( hbide_arrayToMemo( aSrc ) )
|
||||
convert_xhp_to_hbp( cProjFileName, cHbp )
|
||||
|
||||
RETURN Self
|
||||
RETURN cHbp
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -1142,23 +992,18 @@ METHOD IdeProjManager:selectCurrentProject()
|
||||
RETURN ::cWrkProject
|
||||
ENDIF
|
||||
|
||||
#ifdef HBIDE_USE_UIC
|
||||
oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.uic", ::oDlg:oWidget ):build()
|
||||
#else
|
||||
oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.ui", ::oDlg:oWidget ):create()
|
||||
#endif
|
||||
|
||||
* Fill ComboBox with current project names
|
||||
FOR EACH p IN ::aProjects
|
||||
IF !empty( t := p[ 3, PRJ_PRP_PROPERTIES, 2, E_oPrjTtl ] )
|
||||
oDlg:qObj[ "cbProjects" ]:addItem( t )
|
||||
ENDIF
|
||||
IF !empty( t := p[ 3, PRJ_PRP_PROPERTIES, 2, E_oPrjTtl ] )
|
||||
oDlg:qObj[ "cbProjects" ]:addItem( t )
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
oDlg:signal( "btnCancel", "clicked()", {|| oDlg:oWidget:close() } )
|
||||
oDlg:signal( "btnOk" , "clicked()", {|| ::setCurrentProject( oDlg:qObj[ "cbProjects" ]:currentText() ), ;
|
||||
oDlg:oWidget:close() } )
|
||||
oDlg:signal( "btnCancel", "clicked()", {|| oDlg:oWidget:close() } )
|
||||
|
||||
oDlg:exec()
|
||||
oDlg:destroy()
|
||||
oDlg := NIL
|
||||
@@ -1202,6 +1047,17 @@ METHOD IdeProjManager:getProjectByFile( cProjectFile )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:getProjectTypeFromTitle( cProjectTitle )
|
||||
LOCAL n, cType := ""
|
||||
|
||||
IF ( n := ascan( ::aProjects, {|e_, x| x := e_[ 3 ], x[ 1, 2, PRJ_PRP_TITLE ] == cProjectTitle } ) ) > 0
|
||||
cType := ::aProjects[ n, 3, PRJ_PRP_PROPERTIES, 1, PRJ_PRP_TYPE ]
|
||||
ENDIF
|
||||
|
||||
RETURN cType
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeProjManager:getProjectPathFromTitle( cProjectTitle )
|
||||
LOCAL cPath
|
||||
|
||||
|
||||
@@ -112,15 +112,15 @@ FUNCTION hbide_saveINI( oIde )
|
||||
aadd( txt_, "[FILES]" )
|
||||
aadd( txt_, " " )
|
||||
|
||||
FOR j := 0 TO len( oIde:aINI[ INI_VIEWS ] )
|
||||
FOR j := 2 TO len( oIde:aViews )
|
||||
oIde:lClosing := .t.
|
||||
oIde:oStackedWidget:oWidget:setCurrentIndex( j )
|
||||
oIde:oDK:setView( oIde:aViews[ j ]:oWidget:objectName() )
|
||||
|
||||
nTabs := oIde:qTabWidget:count()
|
||||
FOR n := 1 TO nTabs
|
||||
pTab := oIde:qTabWidget:widget( n-1 )
|
||||
nTab := ascan( oIde:aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ 1 ]:oWidget:pPtr, pTab ) } )
|
||||
oEdit := oIde:aTabs[ nTab, TAB_OEDITOR ]
|
||||
pTab := oIde:qTabWidget:widget( n - 1 )
|
||||
nTab := ascan( oIde:aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ 1 ]:oWidget:pPtr, pTab ) } )
|
||||
oEdit := oIde:aTabs[ nTab, TAB_OEDITOR ]
|
||||
|
||||
IF !Empty( oEdit:sourceFile ) .and. !( ".ppo" == lower( oEdit:cExt ) )
|
||||
IF oEdit:lLoaded
|
||||
@@ -348,16 +348,20 @@ FUNCTION hbide_loadINI( oIde, cHbideIni )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION hbide_saveSettings( oIde )
|
||||
LOCAL cPath
|
||||
|
||||
hbqt_QMainWindow_saveSettings( hb_dirBase() + "idesettings.ini", "hbIDE", oIde:oDlg:oWidget:pPtr )
|
||||
hb_fNameSplit( oIde:cProjIni, @cPath )
|
||||
hbqt_QMainWindow_saveSettings( cPath + "hbide.set", "hbIDE", oIde:oDlg:oWidget:pPtr )
|
||||
|
||||
RETURN nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_restSettings( oIde )
|
||||
LOCAL cPath
|
||||
|
||||
hbqt_QMainWindow_restSettings( hb_dirBase() + "idesettings.ini", "hbIDE", oIde:oDlg:oWidget:pPtr )
|
||||
hb_fNameSplit( oIde:cProjIni, @cPath )
|
||||
hbqt_QMainWindow_restSettings( cPath + "hbide.set", "hbIDE", oIde:oDlg:oWidget:pPtr )
|
||||
|
||||
RETURN nil
|
||||
|
||||
|
||||
@@ -134,10 +134,10 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
|
||||
CASE cWidget == "QMenuBar"
|
||||
|
||||
aadd( txt_, 'QMenuBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, '} ' )
|
||||
* aadd( txt_, 'QMenuBar { ' )
|
||||
* aadd( txt_, ' background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, ' )
|
||||
* aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
* aadd( txt_, '} ' )
|
||||
aadd( txt_, 'QMenuBar::item { ' )
|
||||
aadd( txt_, ' spacing : 3px; /* spacing between menu bar items */ ' )
|
||||
aadd( txt_, ' padding : 1px 4px; ' )
|
||||
@@ -257,18 +257,18 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
aadd( txt_, ' border-top: 2px solid #C2C7CB; ' )
|
||||
aadd( txt_, '} ' )
|
||||
aadd( txt_, 'QTabWidget::tab-bar { ' )
|
||||
aadd( txt_, ' background: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
* aadd( txt_, ' background: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
* aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, ' left: 5px; /* move to the right by 5px */ ' )
|
||||
aadd( txt_, '} ' )
|
||||
aadd( txt_, 'QTabBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
* aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
* aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, '} ' )
|
||||
aadd( txt_, 'QTabBar::tab { ' )
|
||||
aadd( txt_, ' background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, ' )
|
||||
aadd( txt_, ' stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, ' )
|
||||
aadd( txt_, ' stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); ' )
|
||||
* aadd( txt_, ' background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, ' )
|
||||
* aadd( txt_, ' stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, ' )
|
||||
* aadd( txt_, ' stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); ' )
|
||||
aadd( txt_, ' border: 2px solid #94C4C3; ' )
|
||||
aadd( txt_, ' border-bottom-color: #C2C7CB; /* same as the pane color */ ' )
|
||||
aadd( txt_, ' border-top-left-radius: 6px; ' )
|
||||
@@ -280,6 +280,7 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
aadd( txt_, ' background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, ' )
|
||||
aadd( txt_, ' stop: 0 #fafafa, stop: 0.4 #f4f4f4, ' )
|
||||
aadd( txt_, ' stop: 0.5 #e7e7e7, stop: 1.0 #fafafa); ' )
|
||||
aadd( txt_, ' background: white; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
aadd( txt_, ' QTabBar::tab:selected:hover { ' )
|
||||
aadd( txt_, ' background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, ' )
|
||||
@@ -310,10 +311,9 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
aadd( txt_, ' border: 1px solid darkgray; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
aadd( txt_, 'QDockWidget::title { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, ' background-color: lightgray; ' )
|
||||
aadd( txt_, ' padding-left: 10px; ' )
|
||||
aadd( txt_, ' padding-top: 3px; ' )
|
||||
aadd( txt_, ' padding-top: 4px; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
|
||||
CASE cWidget == "PathIsWrong"
|
||||
|
||||
@@ -450,14 +450,13 @@ METHOD IdeThemes:setSyntaxHilighting( qEdit, cTheme, lNew )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeThemes:show()
|
||||
#if 0
|
||||
#if 1
|
||||
LOCAL qAct
|
||||
#endif
|
||||
|
||||
IF empty( ::oUI )
|
||||
::lCreating := .t.
|
||||
|
||||
//::oUI := HbQtUI():new( hbide_uic( "themesex" ), ::oThemesDock:oWidget ):build()
|
||||
::oUI := HbQtUI():new( hbide_uic( "themesex" ) ):build()
|
||||
|
||||
//::oThemesDock:qtObject := Self
|
||||
@@ -478,7 +477,7 @@ METHOD IdeThemes:show()
|
||||
::oUI:signal( "buttonClose" , "clicked()" , {|| ::oThemesDock:hide() } )
|
||||
|
||||
/* Fill Themes Dialog Values */
|
||||
#if 0
|
||||
#if 1
|
||||
::oUI:setWindowTitle( GetKeyValue( ::aControls, "dialogTitle" ) )
|
||||
//
|
||||
::oUI:qObj[ "labelItems" ]:setText( GetKeyValue( ::aControls, "labelItems" , "Items" ) )
|
||||
@@ -495,7 +494,7 @@ METHOD IdeThemes:show()
|
||||
::oUI:qObj[ "buttonCopy" ]:setText( GetKeyValue( ::aControls, "buttonCopy" , "Copy" ) )
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
::qMenuApply := QMenu():new()
|
||||
//
|
||||
qAct := QAction():new( ::qMenuApply )
|
||||
|
||||
BIN
harbour/contrib/hbide/resources/fl_c.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
harbour/contrib/hbide/resources/fl_dll.png
Normal file
|
After Width: | Height: | Size: 826 B |
BIN
harbour/contrib/hbide/resources/fl_exe.png
Normal file
|
After Width: | Height: | Size: 811 B |
BIN
harbour/contrib/hbide/resources/fl_ini.png
Normal file
|
After Width: | Height: | Size: 210 B |
BIN
harbour/contrib/hbide/resources/fl_lib.png
Normal file
|
After Width: | Height: | Size: 176 B |
BIN
harbour/contrib/hbide/resources/fl_prg.png
Normal file
|
After Width: | Height: | Size: 173 B |
BIN
harbour/contrib/hbide/resources/fl_res.png
Normal file
|
After Width: | Height: | Size: 232 B |
BIN
harbour/contrib/hbide/resources/fl_txt.png
Normal file
|
After Width: | Height: | Size: 176 B |
|
Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 731 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 983 B |
BIN
harbour/contrib/hbide/resources/hbidesplashwatermark.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
harbour/contrib/hbide/resources/panel_2.png
Normal file
|
After Width: | Height: | Size: 306 B |
BIN
harbour/contrib/hbide/resources/panel_3.png
Normal file
|
After Width: | Height: | Size: 288 B |
BIN
harbour/contrib/hbide/resources/panel_4.png
Normal file
|
After Width: | Height: | Size: 275 B |
BIN
harbour/contrib/hbide/resources/panel_5.png
Normal file
|
After Width: | Height: | Size: 314 B |
BIN
harbour/contrib/hbide/resources/panel_6.png
Normal file
|
After Width: | Height: | Size: 301 B |
BIN
harbour/contrib/hbide/resources/panel_7.png
Normal file
|
After Width: | Height: | Size: 281 B |
@@ -24,7 +24,7 @@
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="font">
|
||||
<font>
|
||||
@@ -40,7 +40,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="comboPrjType">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
@@ -54,7 +54,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Project Title:</string>
|
||||
@@ -64,7 +64,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="editPrjTitle">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
@@ -75,7 +75,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Project Location:</string>
|
||||
@@ -85,7 +85,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="editPrjLoctn">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
@@ -96,7 +96,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Destination Folder:</string>
|
||||
@@ -106,7 +106,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="editDstFolder">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
@@ -118,7 +118,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Launch Parameters:</string>
|
||||
@@ -128,10 +128,10 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1" colspan="2">
|
||||
<item row="9" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="editLaunchParams"/>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Launch Program:</string>
|
||||
@@ -141,10 +141,10 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1" colspan="2">
|
||||
<item row="10" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="editLaunchExe"/>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>Backup Location:</string>
|
||||
@@ -154,10 +154,10 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<item row="7" column="1">
|
||||
<widget class="QLineEdit" name="editBackup"/>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="editOutName">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
@@ -168,7 +168,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Output Name:</string>
|
||||
@@ -178,63 +178,28 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<item row="2" column="2">
|
||||
<widget class="QToolButton" name="buttonChoosePrjLoc">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2">
|
||||
<item row="7" column="2">
|
||||
<widget class="QToolButton" name="buttonBackup">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<item row="5" column="2">
|
||||
<widget class="QToolButton" name="buttonChooseDest">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||
<item>
|
||||
<widget class="QToolButton" name="buttonXmate">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Load an xMate project file.</p>
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This feature is available only for new projects.</p>
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hbIDE attempts to recognize various components</p>
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">but it is possible that it may not load everything.</p>
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">So you may need manual editing.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<item row="8" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@@ -247,7 +212,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<item row="11" column="1">
|
||||
<widget class="QLineEdit" name="editWrkFolder">
|
||||
<property name="toolTip">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
@@ -258,7 +223,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="labelInitFolder">
|
||||
<property name="text">
|
||||
<string>Start In:</string>
|
||||
@@ -268,14 +233,14 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="2">
|
||||
<item row="11" column="2">
|
||||
<widget class="QToolButton" name="buttonChooseWd">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<item row="4" column="1">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@@ -288,7 +253,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<item row="12" column="1">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/********************************************************************************
|
||||
** Form generated from reading ui file 'projectpropertiesex.ui'
|
||||
**
|
||||
** Created: Mon Mar 1 01:10:15 2010
|
||||
** by: Qt User Interface Compiler version 4.5.2
|
||||
** Created: Sat Mar 6 14:12:50 2010
|
||||
** by: Qt User Interface Compiler version 4.5.3
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
||||
********************************************************************************/
|
||||
@@ -56,9 +56,6 @@ public:
|
||||
QToolButton *buttonChoosePrjLoc;
|
||||
QToolButton *buttonBackup;
|
||||
QToolButton *buttonChooseDest;
|
||||
QHBoxLayout *horizontalLayout_7;
|
||||
QToolButton *buttonXmate;
|
||||
QSpacerItem *horizontalSpacer;
|
||||
QSpacerItem *verticalSpacer;
|
||||
QLineEdit *editWrkFolder;
|
||||
QLabel *labelInitFolder;
|
||||
@@ -104,147 +101,133 @@ public:
|
||||
label->setFont(font);
|
||||
label->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label, 1, 0, 1, 1);
|
||||
gridLayout->addWidget(label, 0, 0, 1, 1);
|
||||
|
||||
comboPrjType = new QComboBox(tabGeneral);
|
||||
comboPrjType->setObjectName(QString::fromUtf8("comboPrjType"));
|
||||
comboPrjType->setEditable(false);
|
||||
|
||||
gridLayout->addWidget(comboPrjType, 1, 1, 1, 1);
|
||||
gridLayout->addWidget(comboPrjType, 0, 1, 1, 1);
|
||||
|
||||
label_2 = new QLabel(tabGeneral);
|
||||
label_2->setObjectName(QString::fromUtf8("label_2"));
|
||||
label_2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_2, 2, 0, 1, 1);
|
||||
gridLayout->addWidget(label_2, 1, 0, 1, 1);
|
||||
|
||||
editPrjTitle = new QLineEdit(tabGeneral);
|
||||
editPrjTitle->setObjectName(QString::fromUtf8("editPrjTitle"));
|
||||
|
||||
gridLayout->addWidget(editPrjTitle, 2, 1, 1, 1);
|
||||
gridLayout->addWidget(editPrjTitle, 1, 1, 1, 1);
|
||||
|
||||
label_3 = new QLabel(tabGeneral);
|
||||
label_3->setObjectName(QString::fromUtf8("label_3"));
|
||||
label_3->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_3, 3, 0, 1, 1);
|
||||
gridLayout->addWidget(label_3, 2, 0, 1, 1);
|
||||
|
||||
editPrjLoctn = new QLineEdit(tabGeneral);
|
||||
editPrjLoctn->setObjectName(QString::fromUtf8("editPrjLoctn"));
|
||||
|
||||
gridLayout->addWidget(editPrjLoctn, 3, 1, 1, 1);
|
||||
gridLayout->addWidget(editPrjLoctn, 2, 1, 1, 1);
|
||||
|
||||
label_5 = new QLabel(tabGeneral);
|
||||
label_5->setObjectName(QString::fromUtf8("label_5"));
|
||||
label_5->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_5, 6, 0, 1, 1);
|
||||
gridLayout->addWidget(label_5, 5, 0, 1, 1);
|
||||
|
||||
editDstFolder = new QLineEdit(tabGeneral);
|
||||
editDstFolder->setObjectName(QString::fromUtf8("editDstFolder"));
|
||||
|
||||
gridLayout->addWidget(editDstFolder, 6, 1, 1, 1);
|
||||
gridLayout->addWidget(editDstFolder, 5, 1, 1, 1);
|
||||
|
||||
label_7 = new QLabel(tabGeneral);
|
||||
label_7->setObjectName(QString::fromUtf8("label_7"));
|
||||
label_7->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_7, 10, 0, 1, 1);
|
||||
gridLayout->addWidget(label_7, 9, 0, 1, 1);
|
||||
|
||||
editLaunchParams = new QLineEdit(tabGeneral);
|
||||
editLaunchParams->setObjectName(QString::fromUtf8("editLaunchParams"));
|
||||
|
||||
gridLayout->addWidget(editLaunchParams, 10, 1, 1, 2);
|
||||
gridLayout->addWidget(editLaunchParams, 9, 1, 1, 2);
|
||||
|
||||
label_8 = new QLabel(tabGeneral);
|
||||
label_8->setObjectName(QString::fromUtf8("label_8"));
|
||||
label_8->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_8, 11, 0, 1, 1);
|
||||
gridLayout->addWidget(label_8, 10, 0, 1, 1);
|
||||
|
||||
editLaunchExe = new QLineEdit(tabGeneral);
|
||||
editLaunchExe->setObjectName(QString::fromUtf8("editLaunchExe"));
|
||||
|
||||
gridLayout->addWidget(editLaunchExe, 11, 1, 1, 2);
|
||||
gridLayout->addWidget(editLaunchExe, 10, 1, 1, 2);
|
||||
|
||||
label_13 = new QLabel(tabGeneral);
|
||||
label_13->setObjectName(QString::fromUtf8("label_13"));
|
||||
label_13->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_13, 8, 0, 1, 1);
|
||||
gridLayout->addWidget(label_13, 7, 0, 1, 1);
|
||||
|
||||
editBackup = new QLineEdit(tabGeneral);
|
||||
editBackup->setObjectName(QString::fromUtf8("editBackup"));
|
||||
|
||||
gridLayout->addWidget(editBackup, 8, 1, 1, 1);
|
||||
gridLayout->addWidget(editBackup, 7, 1, 1, 1);
|
||||
|
||||
editOutName = new QLineEdit(tabGeneral);
|
||||
editOutName->setObjectName(QString::fromUtf8("editOutName"));
|
||||
|
||||
gridLayout->addWidget(editOutName, 4, 1, 1, 1);
|
||||
gridLayout->addWidget(editOutName, 3, 1, 1, 1);
|
||||
|
||||
label_6 = new QLabel(tabGeneral);
|
||||
label_6->setObjectName(QString::fromUtf8("label_6"));
|
||||
label_6->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(label_6, 4, 0, 1, 1);
|
||||
gridLayout->addWidget(label_6, 3, 0, 1, 1);
|
||||
|
||||
buttonChoosePrjLoc = new QToolButton(tabGeneral);
|
||||
buttonChoosePrjLoc->setObjectName(QString::fromUtf8("buttonChoosePrjLoc"));
|
||||
|
||||
gridLayout->addWidget(buttonChoosePrjLoc, 3, 2, 1, 1);
|
||||
gridLayout->addWidget(buttonChoosePrjLoc, 2, 2, 1, 1);
|
||||
|
||||
buttonBackup = new QToolButton(tabGeneral);
|
||||
buttonBackup->setObjectName(QString::fromUtf8("buttonBackup"));
|
||||
|
||||
gridLayout->addWidget(buttonBackup, 8, 2, 1, 1);
|
||||
gridLayout->addWidget(buttonBackup, 7, 2, 1, 1);
|
||||
|
||||
buttonChooseDest = new QToolButton(tabGeneral);
|
||||
buttonChooseDest->setObjectName(QString::fromUtf8("buttonChooseDest"));
|
||||
|
||||
gridLayout->addWidget(buttonChooseDest, 6, 2, 1, 1);
|
||||
|
||||
horizontalLayout_7 = new QHBoxLayout();
|
||||
horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7"));
|
||||
buttonXmate = new QToolButton(tabGeneral);
|
||||
buttonXmate->setObjectName(QString::fromUtf8("buttonXmate"));
|
||||
|
||||
horizontalLayout_7->addWidget(buttonXmate);
|
||||
|
||||
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
|
||||
|
||||
horizontalLayout_7->addItem(horizontalSpacer);
|
||||
|
||||
|
||||
gridLayout->addLayout(horizontalLayout_7, 0, 1, 1, 1);
|
||||
gridLayout->addWidget(buttonChooseDest, 5, 2, 1, 1);
|
||||
|
||||
verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
||||
|
||||
gridLayout->addItem(verticalSpacer, 9, 1, 1, 1);
|
||||
gridLayout->addItem(verticalSpacer, 8, 1, 1, 1);
|
||||
|
||||
editWrkFolder = new QLineEdit(tabGeneral);
|
||||
editWrkFolder->setObjectName(QString::fromUtf8("editWrkFolder"));
|
||||
|
||||
gridLayout->addWidget(editWrkFolder, 12, 1, 1, 1);
|
||||
gridLayout->addWidget(editWrkFolder, 11, 1, 1, 1);
|
||||
|
||||
labelInitFolder = new QLabel(tabGeneral);
|
||||
labelInitFolder->setObjectName(QString::fromUtf8("labelInitFolder"));
|
||||
labelInitFolder->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
|
||||
gridLayout->addWidget(labelInitFolder, 12, 0, 1, 1);
|
||||
gridLayout->addWidget(labelInitFolder, 11, 0, 1, 1);
|
||||
|
||||
buttonChooseWd = new QToolButton(tabGeneral);
|
||||
buttonChooseWd->setObjectName(QString::fromUtf8("buttonChooseWd"));
|
||||
|
||||
gridLayout->addWidget(buttonChooseWd, 12, 2, 1, 1);
|
||||
gridLayout->addWidget(buttonChooseWd, 11, 2, 1, 1);
|
||||
|
||||
verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
||||
|
||||
gridLayout->addItem(verticalSpacer_2, 5, 1, 1, 1);
|
||||
gridLayout->addItem(verticalSpacer_2, 4, 1, 1, 1);
|
||||
|
||||
verticalSpacer_3 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
||||
|
||||
gridLayout->addItem(verticalSpacer_3, 13, 1, 1, 1);
|
||||
gridLayout->addItem(verticalSpacer_3, 12, 1, 1, 1);
|
||||
|
||||
tabWidget->addTab(tabGeneral, QString());
|
||||
tabFiles = new QWidget();
|
||||
@@ -386,19 +369,6 @@ public:
|
||||
buttonChoosePrjLoc->setText(QApplication::translate("FormProjectPropEx", "...", 0, QApplication::UnicodeUTF8));
|
||||
buttonBackup->setText(QApplication::translate("FormProjectPropEx", "...", 0, QApplication::UnicodeUTF8));
|
||||
buttonChooseDest->setText(QApplication::translate("FormProjectPropEx", "...", 0, QApplication::UnicodeUTF8));
|
||||
#ifndef QT_NO_TOOLTIP
|
||||
buttonXmate->setToolTip(QApplication::translate("FormProjectPropEx", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Load an xMate project file.</p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">This feature is available only for new projects.</p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">hbIDE attempts to recognize various components</p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; "
|
||||
"text-indent:0px;\">but it is possible that it may not load everything.</p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">So you may need manual editing.</p></body></html>", 0, QApplication::UnicodeUTF8));
|
||||
#endif // QT_NO_TOOLTIP
|
||||
buttonXmate->setText(QApplication::translate("FormProjectPropEx", "...", 0, QApplication::UnicodeUTF8));
|
||||
#ifndef QT_NO_TOOLTIP
|
||||
editWrkFolder->setToolTip(QApplication::translate("FormProjectPropEx", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
|
||||
BIN
harbour/contrib/hbide/resources/source_c.png
Normal file
|
After Width: | Height: | Size: 910 B |
BIN
harbour/contrib/hbide/resources/source_cpp.png
Normal file
|
After Width: | Height: | Size: 964 B |
BIN
harbour/contrib/hbide/resources/source_h.png
Normal file
|
After Width: | Height: | Size: 901 B |
BIN
harbour/contrib/hbide/resources/source_o.png
Normal file
|
After Width: | Height: | Size: 935 B |
BIN
harbour/contrib/hbide/resources/source_prg.png
Normal file
|
After Width: | Height: | Size: 886 B |
BIN
harbour/contrib/hbide/resources/source_res.png
Normal file
|
After Width: | Height: | Size: 718 B |
BIN
harbour/contrib/hbide/resources/source_txt.png
Normal file
|
After Width: | Height: | Size: 896 B |
BIN
harbour/contrib/hbide/resources/source_unknown.png
Normal file
|
After Width: | Height: | Size: 616 B |
@@ -442,7 +442,7 @@ METHOD XbpWindow:connectWindowEvents()
|
||||
//
|
||||
::connectEvent( ::pWidget, QEvent_Move , {|e| ::grabEvent( QEvent_Move , e ) } )
|
||||
* ::connectEvent( ::pWidget, QEvent_Paint , {|e| ::grabEvent( QEvent_Paint , e ) } )
|
||||
::connectEvent( ::pWidget, QEvent_Resize , {|e| ::grabEvent( QEvent_Resize , e ) } )
|
||||
* ::connectEvent( ::pWidget, QEvent_Resize , {|e| ::grabEvent( QEvent_Resize , e ) } )
|
||||
//
|
||||
::connectEvent( ::pWidget, QEvent_FocusIn , {|e| ::grabEvent( QEvent_FocusIn , e ) } )
|
||||
::connectEvent( ::pWidget, QEvent_FocusOut , {|e| ::grabEvent( QEvent_FocusOut , e ) } )
|
||||
@@ -478,7 +478,11 @@ METHOD XbpWindow:destroy()
|
||||
HBXBP_DBG( ". " )
|
||||
HBXBP_DBG( ". " )
|
||||
HBXBP_DBG( ". " )
|
||||
HBXBP_DBG( hb_threadId(),"Destroy[ B ] "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ), hbqt_getMemUsed() )
|
||||
HBXBP_DBG( hb_threadId(),"Destroy[ B ] "+pad(cCls,12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ), hbqt_getMemUsed() )
|
||||
|
||||
LOCAL cCls := __ObjGetClsName( self ), cMsg
|
||||
cMsg := iif( cCls == "XBPWINDOW", ::oWidget:objectName(), IF( empty(::cargo),'',str(::cargo) ) )
|
||||
HBXBP_DBG( hb_threadId(),"Destroy[ B ] "+pad(cCls,12)+ cMsg, memory( 1001 ), hbqt_getMemUsed() )
|
||||
#endif
|
||||
::oParent := NIL
|
||||
::oOwner := NIL
|
||||
@@ -503,7 +507,7 @@ HBXBP_DBG( hb_threadId(),"Destroy[ B ] "+pad(__ObjGetClsName( self ),12)+ IF(emp
|
||||
|
||||
IF !empty( ::qtObject )
|
||||
::qtObject:destroy()
|
||||
::qtObject := NIL
|
||||
// ::qtObject := NIL
|
||||
ENDIF
|
||||
|
||||
IF !empty( ::qLayout )
|
||||
@@ -511,8 +515,9 @@ HBXBP_DBG( hb_threadId(),"Destroy[ B ] "+pad(__ObjGetClsName( self ),12)+ IF(emp
|
||||
ENDIF
|
||||
|
||||
::oWidget := NIL
|
||||
|
||||
#if 0
|
||||
HBXBP_DBG( hb_threadId(),"Destroy[ E ] "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ), hbqt_getMemUsed() )
|
||||
|
||||
HBXBP_DBG( ". " )
|
||||
HBXBP_DBG( ". " )
|
||||
HBXBP_DBG( ". " )
|
||||
|
||||