2010-03-25 08:03 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/resources/panel_8.png
+ contrib/hbide/resources/toolsutilities.ui
+ contrib/hbide/resources/toolsutilities.uic
+ Added one more dialog to interface "Tools & Utilities" implementation.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idedocwriter.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideskeletons.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
+ Implemented: "Tools & Utilities" option.
It can be invoked via a new top-toolbar icon with two components,
1) Click the icon itself to define a tool,
2) Select from icon's drop-down list to execute.
The execution is also available from within its interface <Execute> button.
! Reworked: "Panels" interface. Now it is a toolbar icon with drop-down menu.
This interface is much-more elegant and effective in operations.
+ Implemented: auto-saving a source in the background.
Legend: after every minute the contents of the source are inspected,
if the source is modified, it is saved with ".tmp" extension
concating after its original name. c:\x\my.prg => c:\x\my.prg.tmp
if application exits normally, theis temp file is deleted,
the same is done with every "SAve" invocation.
if at next run, this file is detected, it is asked to replace the
original one.
+ Introduced: again, the animated controls, i.e., gradients on the menus, toolbars, etc,
but are controlled via "Toggle Animation" option in the "View" sub-menu of main menu.
This implementation is not made persistent, need to hera from you.
! Removed: "Always_On_Top" flag of Harbour Splash Screen. It was causing that in case
of startup error, or info rendering, user was unable to view the same.
. Back to the pavilion, after a tiring outing. So I could not compile
all the changes I did before leaving, so please be patient if something goes weired.
This commit is contained in:
@@ -17,6 +17,58 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-03-25 08:03 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/hbide/resources/panel_8.png
|
||||
+ contrib/hbide/resources/toolsutilities.ui
|
||||
+ contrib/hbide/resources/toolsutilities.uic
|
||||
+ Added one more dialog to interface "Tools & Utilities" implementation.
|
||||
|
||||
* contrib/hbide/hbide.ch
|
||||
* contrib/hbide/hbide.hbp
|
||||
* contrib/hbide/hbide.prg
|
||||
* contrib/hbide/ideactions.prg
|
||||
* contrib/hbide/idedocks.prg
|
||||
* contrib/hbide/idedocwriter.prg
|
||||
* contrib/hbide/ideeditor.prg
|
||||
* contrib/hbide/idefindreplace.prg
|
||||
* contrib/hbide/ideharbourhelp.prg
|
||||
* contrib/hbide/idemisc.prg
|
||||
* contrib/hbide/ideobject.prg
|
||||
* contrib/hbide/idesaveload.prg
|
||||
* contrib/hbide/ideskeletons.prg
|
||||
* contrib/hbide/idesources.prg
|
||||
* contrib/hbide/idestylesheets.prg
|
||||
* contrib/hbide/idethemes.prg
|
||||
* contrib/hbide/idetools.prg
|
||||
|
||||
+ Implemented: "Tools & Utilities" option.
|
||||
It can be invoked via a new top-toolbar icon with two components,
|
||||
1) Click the icon itself to define a tool,
|
||||
2) Select from icon's drop-down list to execute.
|
||||
The execution is also available from within its interface <Execute> button.
|
||||
|
||||
! Reworked: "Panels" interface. Now it is a toolbar icon with drop-down menu.
|
||||
This interface is much-more elegant and effective in operations.
|
||||
|
||||
+ Implemented: auto-saving a source in the background.
|
||||
Legend: after every minute the contents of the source are inspected,
|
||||
if the source is modified, it is saved with ".tmp" extension
|
||||
concating after its original name. c:\x\my.prg => c:\x\my.prg.tmp
|
||||
if application exits normally, theis temp file is deleted,
|
||||
the same is done with every "SAve" invocation.
|
||||
if at next run, this file is detected, it is asked to replace the
|
||||
original one.
|
||||
|
||||
+ Introduced: again, the animated controls, i.e., gradients on the menus, toolbars, etc,
|
||||
but are controlled via "Toggle Animation" option in the "View" sub-menu of main menu.
|
||||
This implementation is not made persistent, need to hera from you.
|
||||
|
||||
! Removed: "Always_On_Top" flag of Harbour Splash Screen. It was causing that in case
|
||||
of startup error, or info rendering, user was unable to view the same.
|
||||
|
||||
. Back to the pavilion, after a tiring outing. So I could not compile
|
||||
all the changes I did before leaving, so please be patient if something goes weired.
|
||||
|
||||
2010-03-25 13:52 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/src/common/expropt2.c
|
||||
! fixed stupid c&p typo in timestamp optimization,
|
||||
|
||||
@@ -58,6 +58,10 @@
|
||||
|
||||
#define HBIDE_USE_UIC
|
||||
|
||||
#define HBIDE_ANIMATION_NONE 0
|
||||
#define HBIDE_ANIMATION_GRADIENT 1
|
||||
#define HBIDE_ANIMATION_GRADIENT_BLUE 2
|
||||
|
||||
#define HBIDE_RUN_MODE_INI 1
|
||||
#define HBIDE_RUN_MODE_HBP 2
|
||||
#define HBIDE_RUN_MODE_PRG 3
|
||||
@@ -73,8 +77,9 @@
|
||||
#define INI_VIEWS 9
|
||||
#define INI_TAGGEDPROJECTS 10
|
||||
#define INI_GENERAL 11
|
||||
#define INI_TOOLS 12
|
||||
|
||||
#define INI_SECTIONS_COUNT 11
|
||||
#define INI_SECTIONS_COUNT 12
|
||||
|
||||
|
||||
/* INI_HBIDE */
|
||||
|
||||
@@ -32,6 +32,8 @@ idefunctions.prg
|
||||
idedocwriter.prg
|
||||
ideskeletons.prg
|
||||
idewizard.prg
|
||||
idetools.prg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -139,13 +139,16 @@ CLASS HbIde
|
||||
DATA oFN /* Functions Tags Manager */
|
||||
DATA oDW /* Document Writer Manager */
|
||||
DATA oSK /* Skeletons Managet */
|
||||
DATA oThemes /* Themes Manager */
|
||||
DATA oFindInFiles
|
||||
DATA oTM /* Plugin Tools Manager */
|
||||
DATA oTH /* Themes Manager */
|
||||
DATA oFF /* Find in Files Manager */
|
||||
DATA oHelpDock
|
||||
DATA oSkeltnDock
|
||||
DATA oFindDock
|
||||
|
||||
DATA nRunMode INIT HBIDE_RUN_MODE_INI
|
||||
DATA nAnimantionMode INIT HBIDE_ANIMATION_NONE
|
||||
|
||||
|
||||
DATA oUI
|
||||
|
||||
@@ -229,6 +232,7 @@ CLASS HbIde
|
||||
DATA oDocWriteDock
|
||||
DATA oFunctionsDock
|
||||
DATA oSkltnsTreeDock
|
||||
DATA oMainToolbar
|
||||
|
||||
DATA lProjTreeVisible INIT .t.
|
||||
DATA lDockRVisible INIT .f.
|
||||
@@ -341,7 +345,7 @@ hbide_dbg( "HbIde:create( cProjIni )", "#Params=" )
|
||||
|
||||
qPixmap := QPixmap():new( hb_dirBase() + "resources" + hb_osPathSeparator() + "hbidesplash.png" )
|
||||
qSplash := QSplashScreen():new()
|
||||
qSplash:setWindowFlags( hb_bitOr( Qt_WindowStaysOnTopHint, qSplash:windowFlags() ) )
|
||||
* qSplash:setWindowFlags( hb_bitOr( Qt_WindowStaysOnTopHint, qSplash:windowFlags() ) )
|
||||
qSplash:setPixmap( qPixmap )
|
||||
qSplash:show()
|
||||
::showApplicationCursor( Qt_BusyCursor )
|
||||
@@ -413,6 +417,9 @@ hbide_dbg( "HbIde:create( cProjIni )", "#Params=" )
|
||||
::oDK:buildDialog()
|
||||
/* Actions */
|
||||
::oAC := IdeActions():new():create( Self )
|
||||
/* Tools Manager */
|
||||
::oTM := IdeToolsManager():new( Self ):create()
|
||||
|
||||
/* Docking Widgets */
|
||||
::oDK:buildDockWidgets()
|
||||
/* Toolbar */
|
||||
@@ -425,7 +432,7 @@ hbide_dbg( "HbIde:create( cProjIni )", "#Params=" )
|
||||
|
||||
/* Once create Find/Replace dialog */
|
||||
::oFR := IdeFindReplace():new( Self ):create()
|
||||
::oFindInFiles := IdeFindInFiles():new( Self ):create()
|
||||
::oFF := IdeFindInFiles():new( Self ):create()
|
||||
|
||||
/* Sources Manager */
|
||||
::oSM := IdeSourcesManager():new( Self ):create()
|
||||
@@ -565,14 +572,15 @@ hbide_dbg( "HbIde:create( cProjIni )", "#Params=" )
|
||||
hbide_dbg( "Before ::oDlg:destroy()", memory( 1001 ), hbqt_getMemUsed() )
|
||||
hbide_dbg( " " )
|
||||
|
||||
::oTM:destroy()
|
||||
::oSK:destroy()
|
||||
::oDW:destroy()
|
||||
::oEV:destroy()
|
||||
::oFN:destroy()
|
||||
::oHM:destroy()
|
||||
::oHL:destroy()
|
||||
::oThemes:destroy()
|
||||
::oFindInFiles:destroy()
|
||||
::oTH:destroy()
|
||||
::oFF:destroy()
|
||||
::oFR:destroy()
|
||||
::oPM:destroy()
|
||||
::oEM:destroy()
|
||||
@@ -659,6 +667,10 @@ METHOD HbIde:execAction( cKey )
|
||||
::oDK:setView( "Stats" )
|
||||
//::oHM:refresh()
|
||||
EXIT
|
||||
CASE "Animate"
|
||||
::nAnimantionMode := iif( ::nAnimantionMode == HBIDE_ANIMATION_NONE, HBIDE_ANIMATION_GRADIENT, HBIDE_ANIMATION_NONE )
|
||||
::oDK:animateComponents( ::nAnimantionMode )
|
||||
EXIT
|
||||
CASE "NewProject"
|
||||
CASE "LoadProject"
|
||||
CASE "LaunchProject"
|
||||
@@ -713,6 +725,7 @@ METHOD HbIde:execAction( cKey )
|
||||
CASE "ToLower"
|
||||
CASE "Invert"
|
||||
CASE "MatchPairs"
|
||||
CASE "Tools"
|
||||
CASE "InsertSeparator"
|
||||
CASE "InsertDateTime"
|
||||
CASE "InsertRandomName"
|
||||
@@ -833,8 +846,9 @@ METHOD HbIde:execEditorAction( cKey )
|
||||
::oEM:convertSelection( cKey )
|
||||
EXIT
|
||||
CASE "MatchPairs"
|
||||
//
|
||||
hbide_startOpenWizard()
|
||||
EXIT
|
||||
CASE "Tools"
|
||||
::oTM:show()
|
||||
EXIT
|
||||
CASE "InsertSeparator"
|
||||
::oEM:insertSeparator()
|
||||
|
||||
@@ -203,7 +203,8 @@ METHOD IdeActions:loadActions()
|
||||
aadd( aAct, { "TB_ToUpper" , "To Upper" , "toupper" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_ToLower" , "To Lower" , "tolower" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Invert" , "Invert" , "invertcase" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_MatchPairs" , "Match Pairs" , "matchobj" , "" , "No", "Yes" } )
|
||||
* aadd( aAct, { "TB_MatchPairs" , "Match Pairs" , "matchobj" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_Tools" , "Tools & Utilities" , "tools" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_ZoomIn" , "ZoomIn" , "zoomin" , "" , "No", "Yes" } )
|
||||
aadd( aAct, { "TB_ZoomOut" , "ZoomOut" , "zoomout" , "" , "No", "Yes" } )
|
||||
//
|
||||
@@ -312,16 +313,18 @@ METHOD IdeActions:loadActions()
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeActions:buildToolBar()
|
||||
LOCAL oTBar, s
|
||||
LOCAL oTBar
|
||||
LOCAL nSep := XBPTOOLBAR_BUTTON_SEPARATOR
|
||||
|
||||
oTBar := XbpToolBar():new( ::oDlg )
|
||||
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", ::nAnimantionMode ) )
|
||||
oTBar:oWidget:setMaximumHeight( 28 )
|
||||
oTBar:oWidget:setAllowedAreas( Qt_TopToolBarArea )
|
||||
oTBar:oWidget:setMovable( .f. )
|
||||
oTBar:oWidget:setFloatable( .f. )
|
||||
|
||||
oTBar:buttonClick := {|oButton| ::oIde:execAction( oButton:key ) }
|
||||
|
||||
@@ -341,10 +344,6 @@ METHOD IdeActions:buildToolBar()
|
||||
oTBar:addItem( ::getAction( "TB_Rebuild" ), , , , , , "Rebuild" )
|
||||
oTBar:addItem( ::getAction( "TB_RebuildLaunch" ), , , , , , "RebuildLaunch" )
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
* oTBar:addItem( ::getAction( "TB_ToggleProjectTree" ), , , , , , "ToggleProjectTree" )
|
||||
* oTBar:addItem( ::getAction( "TB_ToggleBuildInfo" ), , , , , , "ToggleBuildInfo" )
|
||||
* oTBar:addItem( ::getAction( "TB_ToggleFuncList" ), , , , , , "ToggleFuncList" )
|
||||
* oTBar:addItem( , , , , , nSep )
|
||||
oTBar:addItem( ::getAction( "TB_Undo" ), , , , , , "Undo" )
|
||||
oTBar:addItem( ::getAction( "TB_Redo" ), , , , , , "Redo" )
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
@@ -355,36 +354,19 @@ METHOD IdeActions:buildToolBar()
|
||||
oTBar:addItem( ::getAction( "TB_SelectionMode" ), , , , , , "SelectionMode" )
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
oTBar:addItem( ::getAction( "TB_Find" ), , , , , , "Find" )
|
||||
* oTBar:addItem( ::getAction( "TB_Search" ), , , , , , "Search" )
|
||||
* oTBar:addItem( , , , , , nSep )
|
||||
oTBar:addItem( ::getAction( "TB_SetMark" ), , , , , , "SetMark" )
|
||||
* oTBar:addItem( ::getAction( "TB_GotoMark" ), , , , , , "GotoMark" )
|
||||
oTBar:addItem( ::getAction( "TB_Goto" ), , , , , , "Goto" )
|
||||
* oTBar:addItem( , , , , , nSep )
|
||||
* oTBar:addItem( ::getAction( "TB_ToUpper" ), , , , , , "ToUpper" )
|
||||
* oTBar:addItem( ::getAction( "TB_ToLower" ), , , , , , "ToLower" )
|
||||
* oTBar:addItem( ::getAction( "TB_Invert" ), , , , , , "Invert" )
|
||||
oTBar:addItem( ::getAction( "TB_MatchPairs" ), , , , , , "MatchPairs" )
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
oTBar:addItem( ::getAction( "ZoomIn" ), , , , , , "ZoomIn" )
|
||||
oTBar:addItem( ::getAction( "ZoomOut" ), , , , , , "ZoomOut" )
|
||||
oTBar:addItem( , , , , , nSep )
|
||||
|
||||
oTBar:oWidget:setAllowedAreas( Qt_TopToolBarArea )
|
||||
oTBar:oWidget:setMovable( .f. )
|
||||
oTBar:oWidget:setFloatable( .f. )
|
||||
oTBar:oWidget:addWidget( ::oIde:oTM:buildToolsButton() )
|
||||
|
||||
/* ComboBox to Manage Views */
|
||||
::oIde:qViewsCombo := QComboBox():new()
|
||||
oTBar:oWidget:addWidget( ::qViewsCombo )
|
||||
::qViewsCombo:addItem( "New..." )
|
||||
::qViewsCombo:addItem( " " )
|
||||
::qViewsCombo:addItem( "Main" )
|
||||
FOR EACH s IN ::aINI[ INI_VIEWS ]
|
||||
::qViewsCombo:addItem( s )
|
||||
NEXT
|
||||
::qViewsCombo:setCurrentIndex( -1 )
|
||||
::connect( ::qViewsCombo, "currentIndexChanged(QString)", {|p| ::oDK:setView( p ) } )
|
||||
/* Candidate for separate class - though */
|
||||
oTBar:oWidget:addWidget( ::oIde:oTM:buildPanelsButton() )
|
||||
|
||||
::oIde:oMainToolbar := oTBar
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -395,7 +377,7 @@ METHOD IdeActions:buildMainMenu()
|
||||
LOCAL oIde := ::oIde
|
||||
|
||||
oMenuBar := ::oDlg:MenuBar()
|
||||
oMenuBar:setStyleSheet( GetStyleSheet( "QMenuBar" ) )
|
||||
oMenuBar:setStyleSheet( GetStyleSheet( "QMenuBar", ::nAnimantionMode ) )
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* File */
|
||||
@@ -555,21 +537,6 @@ METHOD IdeActions:buildMainMenu()
|
||||
oSubMenu:addItem( { ::getAction( "LaunchProject" ), {|| oIde:execAction( "LaunchProject" ) } } )
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Tools */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
#if 0
|
||||
oSubMenu := XbpMenu():new( oMenuBar ):create()
|
||||
oSubMenu:title := "~Tools"
|
||||
oSubMenu:addItem( { ::getAction( "ConfigureTools" ), {|| oIde:execAction( "ConfigureTools" ) } } )
|
||||
hbide_menuAddSep( oSubMenu )
|
||||
#ifdef __PLATFORM__WINDOWS
|
||||
oSubMenu:addItem( { ::getAction( "CommandPrompt" ), {|| oIde:execAction( "CommandPrompt" ) } } )
|
||||
#else
|
||||
oSubMenu:addItem( { ::getAction( "Terminal" ), {|| oIde:execAction( "Terminal" ) } } )
|
||||
#endif
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
#endif
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Options */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@@ -587,6 +554,8 @@ METHOD IdeActions:buildMainMenu()
|
||||
oSubMenu:title := "~View"
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
|
||||
oSubMenu:addItem( { "Toggle Animation", {|| oIde:execAction( "Animate" ) } } )
|
||||
oSubMenu:oWidget:addSeparator()
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarPanels:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarLines:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarDocks:toggleViewAction() )
|
||||
|
||||
@@ -128,6 +128,7 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
METHOD disblePanelButton( qTBtn )
|
||||
METHOD getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
|
||||
METHOD getPanelIcon( cView )
|
||||
METHOD animateComponents( nMode )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -193,7 +194,7 @@ METHOD IdeDocks:buildDialog()
|
||||
::oDlg:qtObject := HbQtUI():new( ::resPath + "mainwindow.uic" ):build()
|
||||
::oDlg:create( , , , , , .f. )
|
||||
|
||||
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow" ) )
|
||||
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow", ::nAnimantionMode ) )
|
||||
|
||||
::oDlg:close := {|| hbide_getYesNo( "hbIDE is about to be closed!", "Are you sure?" ) }
|
||||
::oDlg:oWidget:setDockOptions( QMainWindow_AllowTabbedDocks + QMainWindow_ForceTabbedDocks )
|
||||
@@ -301,7 +302,7 @@ METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
|
||||
oDock:oWidget:setAllowedAreas( nArea )
|
||||
oDock:oWidget:setWindowTitle( cWindowTitle )
|
||||
oDock:oWidget:setFocusPolicy( Qt_NoFocus )
|
||||
oDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
|
||||
oDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget", ::nAnimantionMode ) )
|
||||
oDock:hide()
|
||||
|
||||
RETURN oDock
|
||||
@@ -337,10 +338,10 @@ METHOD IdeDocks:execEvent( nMode, p )
|
||||
IF p; ::oEV:show(); ENDIF
|
||||
|
||||
CASE nMode == dockFindInFiles_visibilityChanged
|
||||
IF p; ::oFindInFiles:show(); ENDIF
|
||||
IF p; ::oFF:show(); ENDIF
|
||||
|
||||
CASE nMode == dockThemes_visibilityChanged
|
||||
IF p; ::oThemes:show(); ENDIF
|
||||
IF p; ::oTH:show(); ENDIF
|
||||
|
||||
ENDCASE
|
||||
|
||||
@@ -360,7 +361,7 @@ METHOD IdeDocks:setView( cView )
|
||||
MsgBox( "View: " + cView + ", already exists" )
|
||||
ELSE
|
||||
aadd( ::aINI[ INI_VIEWS ], cView )
|
||||
::qViewsCombo:addItem( cView )
|
||||
::oTM:addPanelsMenu( cView )
|
||||
::buildViewWidget( cView )
|
||||
::addPanelButton( cView )
|
||||
::setView( cView )
|
||||
@@ -454,6 +455,7 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
/* Toolbar Panels */
|
||||
|
||||
::oIde:qTBarPanels := QToolBar():new()
|
||||
::qTBarPanels:setStyleSheet( GetStyleSheet( "QToolBarLR5", ::nAnimantionMode ) )
|
||||
::qTBarPanels:setObjectName( "ToolBar_Panels" )
|
||||
::qTBarPanels:setWindowTitle( "ToolBar: Editor Panels" )
|
||||
::qTBarPanels:setAllowedAreas( Qt_LeftToolBarArea )
|
||||
@@ -461,7 +463,6 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
::qTBarPanels:setIconSize( qSize )
|
||||
::qTBarPanels:setMovable( .f. )
|
||||
::qTBarPanels:setFloatable( .f. )
|
||||
::qTBarPanels:setStyleSheet( "QToolBar { spacing: 1px; color: white; margin-top: 2px; }" )
|
||||
|
||||
::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarPanels )
|
||||
|
||||
@@ -473,6 +474,7 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
/* Toolbar Line Actions */
|
||||
|
||||
::oIde:qTBarLines := QToolBar():new()
|
||||
::qTBarLines:setStyleSheet( GetStyleSheet( "QToolBarLR5", ::nAnimantionMode ) )
|
||||
::qTBarLines:setObjectName( "ToolBar_Lines" )
|
||||
::qTBarLines:setWindowTitle( "ToolBar: Lines and Blocks" )
|
||||
::qTBarLines:setAllowedAreas( Qt_LeftToolBarArea )
|
||||
@@ -541,6 +543,7 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
|
||||
/* Right-hand docks toolbar */
|
||||
::oIde:qTBarDocks := QToolBar():new()
|
||||
::qTBarDocks:setStyleSheet( GetStyleSheet( "QToolBarLR5", ::nAnimantionMode ) )
|
||||
::qTBarDocks:setObjectName( "ToolBar_Docks" )
|
||||
::qTBarDocks:setWindowTitle( "ToolBar: Dockable Widgets" )
|
||||
::qTBarDocks:setAllowedAreas( Qt_RightToolBarArea )
|
||||
@@ -548,7 +551,6 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
::qTBarDocks:setIconSize( QSize():new( 16,16 ) )
|
||||
::qTBarDocks:setMovable( .f. )
|
||||
::qTBarDocks:setFloatable( .f. )
|
||||
::qTBarDocks:setStyleSheet( "QToolBar { spacing: 1px; color: white; margin-top: 2px; }" )
|
||||
::qTBarDocks:setToolButtonStyle( Qt_ToolButtonIconOnly )
|
||||
|
||||
aBtns := {}
|
||||
@@ -646,7 +648,7 @@ METHOD IdeDocks:buildProjectTree()
|
||||
::oProjTree:hasButtons := .T.
|
||||
::oProjTree:create( ::oDockPT, , { 0,0 }, { 100,10 }, , .t. )
|
||||
|
||||
::oProjTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB" ) )
|
||||
::oProjTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB", ::nAnimantionMode ) )
|
||||
::oProjTree:oWidget:setMinimumWidth( 100 )
|
||||
::oProjTree:oWidget:setSizePolicy_1( QSizePolicy_MinimumExpanding, QSizePolicy_Preferred )
|
||||
::oProjTree:oWidget:setIconSize( QSize():new( 12,12 ) )
|
||||
@@ -1035,3 +1037,40 @@ METHOD IdeDocks:getMarkWidget( nIndex )
|
||||
RETURN ::oIde:aMarkTBtns[ nIndex ]
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:animateComponents( nMode )
|
||||
LOCAL cStyle
|
||||
|
||||
::oDlg:menubar():setStyleSheet( GetStyleSheet( "QMenuBar", nMode ) )
|
||||
|
||||
::qTBarPanels:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
::qTBarLines:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
::qTBarDocks:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
|
||||
::oMainToolbar:setStyleSheet( GetStyleSheet( "QToolBar", nMode ) )
|
||||
|
||||
cStyle := GetStyleSheet( "QDockWidget", nMode )
|
||||
|
||||
::oDockPT:oWidget:setStyleSheet( cStyle )
|
||||
::oDockED:oWidget:setStyleSheet( cStyle )
|
||||
::oSkltnsTreeDock:oWidget:setStyleSheet( cStyle )
|
||||
::oHelpDock:oWidget:setStyleSheet( cStyle )
|
||||
::oDocViewDock:oWidget:setStyleSheet( cStyle )
|
||||
::oDocWriteDock:oWidget:setStyleSheet( cStyle )
|
||||
::oFuncDock:oWidget:setStyleSheet( cStyle )
|
||||
::oFunctionsDock:oWidget:setStyleSheet( cStyle )
|
||||
::oPropertiesDock:oWidget:setStyleSheet( cStyle )
|
||||
::oEnvironDock:oWidget:setStyleSheet( cStyle )
|
||||
::oSkeltnDock:oWidget:setStyleSheet( cStyle )
|
||||
::oThemesDock:oWidget:setStyleSheet( cStyle )
|
||||
::oFindDock:oWidget:setStyleSheet( cStyle )
|
||||
::oDockB2:oWidget:setStyleSheet( cStyle )
|
||||
|
||||
#if 0
|
||||
// should be iteration
|
||||
::qTabWidget:setStyleSheet( GetStyleSheet( "QTabWidget", nMode ) )
|
||||
#endif
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -289,8 +289,8 @@ METHOD IdeDocWriter:setParameters()
|
||||
::oUI:q_comboTemplate:addItem( "Procedure" )
|
||||
::oUI:q_comboTemplate:addItem( "Class" )
|
||||
|
||||
::qHiliter := ::oThemes:SetSyntaxHilighting( ::oUI:q_plainExamples, "Pritpal's Favourite" )
|
||||
::qHiliter1 := ::oThemes:SetSyntaxHilighting( ::oUI:q_plainTests , "Evening Glamour" )
|
||||
::qHiliter := ::oTH:SetSyntaxHilighting( ::oUI:q_plainExamples, "Pritpal's Favourite" )
|
||||
::qHiliter1 := ::oTH:SetSyntaxHilighting( ::oUI:q_plainTests , "Evening Glamour" )
|
||||
|
||||
::oUI:q_plainExamples:setFont( ::oFont:oWidget )
|
||||
::oUI:q_plainTests:setFont( ::oFont:oWidget )
|
||||
|
||||
@@ -932,6 +932,8 @@ METHOD IdeEditsManager:goto()
|
||||
//
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#define qTimeSave_timeout 101
|
||||
|
||||
CLASS IdeEditor INHERIT IdeObject
|
||||
|
||||
DATA oTab
|
||||
@@ -944,6 +946,7 @@ CLASS IdeEditor INHERIT IdeObject
|
||||
DATA qDocument
|
||||
DATA qDocLayout
|
||||
DATA qHiliter
|
||||
DATA qTimerSave
|
||||
DATA sourceFile INIT ""
|
||||
DATA pathNormalized
|
||||
DATA qLayout
|
||||
@@ -980,6 +983,7 @@ CLASS IdeEditor INHERIT IdeObject
|
||||
METHOD split( nOrient, oEditP )
|
||||
METHOD relay( oEdit )
|
||||
METHOD destroy()
|
||||
METHOD execEvent( nMode, p )
|
||||
METHOD setDocumentProperties()
|
||||
METHOD activateTab( mp1, mp2, oXbp )
|
||||
METHOD buildTabPage( cSource )
|
||||
@@ -1016,6 +1020,7 @@ METHOD IdeEditor:new( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
LOCAL cFileTemp
|
||||
|
||||
::qSlots := HBSlots():new()
|
||||
|
||||
@@ -1042,6 +1047,15 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
|
||||
hb_fNameSplit( cSourceFile, @::cPath, @::cFile, @::cExt )
|
||||
|
||||
cFileTemp := hbide_pathToOSPath( ::cPath + ::cFile + ::cExt + ".tmp" )
|
||||
IF hb_fileExists( cFileTemp )
|
||||
IF hbide_getYesNo( "An auto saved version already exists, restore ?", cSourceFile, "Last run crash detected" )
|
||||
hb_memowrit( hbide_pathToOSPath( cSourceFile ), hb_memoread( cFileTemp ) )
|
||||
ELSE
|
||||
ferase( cFileTemp )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
::cType := upper( strtran( ::cExt, ".", "" ) )
|
||||
::cType := iif( ::cType $ "PRG,C,CPP,H,CH,PPO", ::cType, "U" )
|
||||
|
||||
@@ -1064,7 +1078,7 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
::qDocument:setDocumentLayout( ::qDocLayout )
|
||||
|
||||
IF ::cType != "U"
|
||||
::qHiliter := ::oThemes:SetSyntaxHilighting( ::oEdit:qEdit, @::cTheme )
|
||||
::qHiliter := ::oTH:SetSyntaxHilighting( ::oEdit:qEdit, @::cTheme )
|
||||
ENDIF
|
||||
::qCursor := QTextCursor():configure( ::qEdit:textCursor() )
|
||||
|
||||
@@ -1076,7 +1090,7 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
/* Populate right at creation */
|
||||
::oEM:addSourceInTree( ::sourceFile, ::cView )
|
||||
|
||||
::qTabWidget:setStyleSheet( GetStyleSheet( "QTabWidget" ) )
|
||||
::qTabWidget:setStyleSheet( GetStyleSheet( "QTabWidget", ::nAnimantionMode ) )
|
||||
::setTabImage()
|
||||
|
||||
RETURN Self
|
||||
@@ -1086,7 +1100,13 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView )
|
||||
METHOD IdeEditor:destroy()
|
||||
LOCAL n, oEdit
|
||||
|
||||
//hbide_dbg( "IdeEditor:destroy()", 0, ::sourceFile )
|
||||
IF !empty( ::qTimerSave )
|
||||
::disconnect( ::qTimerSave, "timeout()" )
|
||||
::qTimerSave:stop()
|
||||
::qTimerSave := NIL
|
||||
ENDIF
|
||||
/* This code is reached under normal circumstances, so delete auto saved file */
|
||||
ferase( hbide_pathToOSPath( ::cPath + ::cFile + ::cExt + ".tmp" ) )
|
||||
|
||||
::qHiliter := NIL
|
||||
|
||||
@@ -1151,6 +1171,13 @@ METHOD IdeEditor:setDocumentProperties()
|
||||
|
||||
::qTabWidget:setTabIcon( ::qTabWidget:indexOf( ::oTab:oWidget ), ::resPath + "tabunmodified.png" )
|
||||
::lLoaded := .T.
|
||||
|
||||
IF ::cType $ "PRG,C,CPP,H,CH"
|
||||
::qTimerSave := QTimer():New()
|
||||
::qTimerSave:setInterval( 60000 ) // 1 minutes
|
||||
::connect( ::qTimerSave, "timeout()", {|| ::execEvent( qTimeSave_timeout ) } )
|
||||
::qTimerSave:start()
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
::nBlock := qCursor:blockNumber()
|
||||
@@ -1169,6 +1196,24 @@ METHOD IdeEditor:setDocumentProperties()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:execEvent( nMode, p )
|
||||
LOCAL cFileTemp
|
||||
|
||||
p := p
|
||||
|
||||
SWITCH nMode
|
||||
CASE qTimeSave_timeout
|
||||
IF ::qDocument:isModified()
|
||||
cFileTemp := hbide_pathToOSPath( ::cPath + ::cFile + ::cExt + ".tmp" )
|
||||
hb_memowrit( cFileTemp, ::qEdit:toPlainText() )
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditor:relay( oEdit )
|
||||
LOCAL nCols, oEdt, nR, nC
|
||||
|
||||
@@ -1311,12 +1356,12 @@ METHOD IdeEditor:applyTheme( cTheme )
|
||||
|
||||
IF ::cType != "U"
|
||||
IF empty( cTheme )
|
||||
cTheme := ::oThemes:selectTheme()
|
||||
cTheme := ::oTH:selectTheme()
|
||||
ENDIF
|
||||
|
||||
IF ::oThemes:contains( cTheme )
|
||||
IF ::oTH:contains( cTheme )
|
||||
::cTheme := cTheme
|
||||
::qHiliter := ::oIde:oThemes:SetSyntaxHilighting( ::qEdit, @::cTheme )
|
||||
::qHiliter := ::oTH:SetSyntaxHilighting( ::qEdit, @::cTheme )
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
@@ -255,7 +255,7 @@ METHOD IdeSearchReplace:setFindString( cText )
|
||||
::qCurEdit:setTextCursor( qCursor )
|
||||
ENDIF
|
||||
::cFind := ""
|
||||
::qFindLineEdit:setStyleSheet( getStyleSheet( "PathIsWrong" ) )
|
||||
::qFindLineEdit:setStyleSheet( getStyleSheet( "PathIsWrong", ::nAnimantionMode ) )
|
||||
ELSE
|
||||
::cFind := cText
|
||||
::qFindLineEdit:setStyleSheet( "background-color: white;" )
|
||||
|
||||
@@ -368,7 +368,7 @@ METHOD IdeHarbourHelp:setParameters()
|
||||
oUI:q_editInstall:setText( ::cWrkHarbour )
|
||||
|
||||
#if 0
|
||||
::qHiliter := ::oThemes:SetSyntaxHilighting( oUI:q_plainExamples, "Bare Minimum" )
|
||||
::qHiliter := ::oTH:SetSyntaxHilighting( oUI:q_plainExamples, "Bare Minimum" )
|
||||
|
||||
oUI:q_plainExamples:setFont( ::oFont:oWidget )
|
||||
oUI:q_plainDescription:setFont( ::oFont:oWidget )
|
||||
@@ -469,7 +469,7 @@ METHOD IdeHarbourHelp:execEvent( nMode, p, p1 )
|
||||
::cPathInstall := hbide_pathStripLastSlash( hbide_pathNormalized( p, .f. ) )
|
||||
::oIde:cWrkHarbour := ::cPathInstall
|
||||
ELSE
|
||||
::oUI:q_editInstall:setStyleSheet( getStyleSheet( "PathIsWrong" ) )
|
||||
::oUI:q_editInstall:setStyleSheet( getStyleSheet( "PathIsWrong", ::nAnimantionMode ) )
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
|
||||
@@ -2029,3 +2029,20 @@ FUNCTION hbide_parseSourceComponents( cCompositeSource )
|
||||
RETURN a_
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_parseToolComponents( cCompositeTool )
|
||||
LOCAL a_
|
||||
|
||||
a_:= hb_atokens( cCompositeTool, "," )
|
||||
asize( a_, 3 )
|
||||
DEFAULT a_[ 1 ] TO ""
|
||||
DEFAULT a_[ 2 ] TO ""
|
||||
DEFAULT a_[ 3 ] TO ""
|
||||
a_[ 1 ] := alltrim( a_[ 1 ] )
|
||||
a_[ 2 ] := alltrim( a_[ 2 ] )
|
||||
a_[ 3 ] := alltrim( a_[ 3 ] )
|
||||
|
||||
RETURN a_
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -95,15 +95,14 @@ CLASS IdeObject
|
||||
ACCESS oFN INLINE ::oIde:oFN
|
||||
ACCESS oDW INLINE ::oIde:oDW
|
||||
ACCESS oSK INLINE ::oIde:oSK
|
||||
|
||||
ACCESS oFindDock INLINE ::oIde:oFindDock
|
||||
ACCESS oFindInFiles INLINE ::oIde:oFindInFiles
|
||||
ACCESS oTM INLINE ::oIde:oTM
|
||||
ACCESS oTH INLINE ::oIde:oTH
|
||||
ACCESS oFF INLINE ::oIde:oFF
|
||||
|
||||
ACCESS aMeta INLINE ::oIde:aMeta
|
||||
ACCESS aTags INLINE ::oIde:aTags
|
||||
|
||||
ACCESS oFont INLINE ::oIde:oFont
|
||||
ACCESS oThemes INLINE ::oIde:oThemes
|
||||
ACCESS oSBar INLINE ::oIde:oSBar
|
||||
ACCESS oDlg INLINE ::oIde:oDlg
|
||||
ACCESS qDlg INLINE ::oIde:oDlg:oWidget
|
||||
@@ -141,6 +140,7 @@ CLASS IdeObject
|
||||
ACCESS resPath INLINE ::oIde:resPath
|
||||
ACCESS pathSep INLINE ::oIde:pathSep
|
||||
ACCESS cLastFileOpenPath INLINE ::oIde:cLastFileOpenPath
|
||||
ACCESS nAnimantionMode INLINE ::oIde:nAnimantionMode
|
||||
|
||||
ACCESS aProjects INLINE ::oIde:aProjects
|
||||
ACCESS aINI INLINE ::oIde:aINI
|
||||
@@ -184,6 +184,8 @@ CLASS IdeObject
|
||||
ACCESS oDocWriteDock INLINE ::oIde:oDocWriteDock
|
||||
ACCESS oFunctionsDock INLINE ::oIde:oFunctionsDock
|
||||
ACCESS oSkltnsTreeDock INLINE ::oIde:oSkltnsTreeDock
|
||||
ACCESS oFindDock INLINE ::oIde:oFindDock
|
||||
ACCESS oMainToolbar INLINE ::oIde:oMainToolbar
|
||||
|
||||
ACCESS lProjTreeVisible INLINE ::oIde:lProjTreeVisible
|
||||
ACCESS lDockRVisible INLINE ::oIde:lDockRVisible
|
||||
|
||||
@@ -87,7 +87,7 @@ FUNCTION hbide_restSettings( oIde )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_saveINI( oIde )
|
||||
LOCAL j, nTab, pTab, n, txt_, qHScr, qVScr, oEdit, qCursor, nTabs, nn
|
||||
LOCAL j, nTab, pTab, n, txt_, qHScr, qVScr, oEdit, qCursor, nTabs, nn, s
|
||||
|
||||
hbide_dbg( "hbide_saveINI( oIde )", 0, oIde:nRunMode, oIde:cProjIni )
|
||||
IF oIde:nRunMode != HBIDE_RUN_MODE_INI
|
||||
@@ -211,6 +211,13 @@ hbide_dbg( "hbide_saveINI( oIde )", 0, oIde:nRunMode, oIde:cProjIni )
|
||||
aadd( txt_, "taggedproject_" + hb_ntos( n ) + "=" + oIde:aIni[ INI_TAGGEDPROJECTS, n ] )
|
||||
NEXT
|
||||
|
||||
aadd( txt_, "[TOOLS]" )
|
||||
aadd( txt_, " " )
|
||||
FOR n := 1 TO len( oIde:aIni[ INI_TOOLS ] )
|
||||
s := oIde:aIni[ INI_TOOLS, n, 1 ] + "," + oIde:aIni[ INI_TOOLS, n, 2 ] + "," + oIde:aIni[ INI_TOOLS, n, 3 ] + ","
|
||||
aadd( txt_, "tool_" + hb_ntos( n ) + "=" + s )
|
||||
NEXT
|
||||
|
||||
aadd( txt_, " " )
|
||||
aadd( txt_, "[General]" )
|
||||
aadd( txt_, " " )
|
||||
@@ -284,11 +291,14 @@ FUNCTION hbide_loadINI( oIde, cHbideIni )
|
||||
CASE "[FOLDERS]"
|
||||
nPart := INI_FOLDERS
|
||||
EXIT
|
||||
CASE "[VIEWS]"
|
||||
nPart := INI_VIEWS
|
||||
EXIT
|
||||
CASE "[TAGGEDPROJECTS]"
|
||||
nPart := INI_TAGGEDPROJECTS
|
||||
EXIT
|
||||
CASE "[VIEWS]"
|
||||
nPart := INI_VIEWS
|
||||
CASE "[TOOLS]"
|
||||
nPart := INI_TOOLS
|
||||
EXIT
|
||||
OTHERWISE
|
||||
/*
|
||||
@@ -364,6 +374,12 @@ FUNCTION hbide_loadINI( oIde, cHbideIni )
|
||||
aadd( oIde:aIni[ nPart ], cVal )
|
||||
ENDIF
|
||||
|
||||
CASE nPart == INI_TOOLS
|
||||
IF hbide_parseKeyValPair( s, @cKey, @cVal )
|
||||
a_:= hbide_parseToolComponents( cVal )
|
||||
aadd( oIde:aIni[ nPart ], a_ )
|
||||
ENDIF
|
||||
|
||||
ENDCASE
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
@@ -498,7 +498,7 @@ METHOD IdeSkeletons:showTree()
|
||||
::oTree:hasButtons := .T.
|
||||
::oTree:create( ::oSkltnsTreeDock, , { 0,0 }, { 10,10 }, , .t. )
|
||||
|
||||
::oTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB" ) )
|
||||
::oTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB", ::nAnimantionMode ) )
|
||||
::oTree:oWidget:setMinimumWidth( 100 )
|
||||
::oTree:oWidget:setSizePolicy_1( QSizePolicy_MinimumExpanding, QSizePolicy_Preferred )
|
||||
::oTree:oWidget:setIconSize( QSize():new( 12,12 ) )
|
||||
|
||||
@@ -154,7 +154,7 @@ METHOD IdeSourcesManager:saveNamedSource( cSource )
|
||||
* Save selected Tab on harddisk and return .T. if successfull!
|
||||
*/
|
||||
METHOD IdeSourcesManager:saveSource( nTab, lCancel, lAs )
|
||||
LOCAL oEdit, lNew, cBuffer, qDocument, nIndex, cSource
|
||||
LOCAL oEdit, lNew, cBuffer, qDocument, nIndex, cSource, cFileTemp
|
||||
LOCAL cFileToSave, cFile, cExt, cNewFile, oItem
|
||||
|
||||
DEFAULT nTab TO ::EM:getTabCurrent()
|
||||
@@ -222,6 +222,9 @@ METHOD IdeSourcesManager:saveSource( nTab, lCancel, lAs )
|
||||
::updateFuncList()
|
||||
::qTabWidget:setTabIcon( nIndex, ::resPath + "tabunmodified.png" )
|
||||
::oDK:setStatusText( SB_PNL_MODIFIED, " " )
|
||||
|
||||
cFileTemp := hbide_pathToOSPath( oEdit:cPath + oEdit:cFile + oEdit:cExt + ".tmp" )
|
||||
ferase( cFileTemp )
|
||||
ENDIF
|
||||
|
||||
RETURN .T.
|
||||
|
||||
@@ -65,13 +65,16 @@
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "common.ch"
|
||||
#include "hbide.ch"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION GetStyleSheet( cWidget )
|
||||
FUNCTION GetStyleSheet( cWidget, nMode )
|
||||
LOCAL txt_:= {}
|
||||
LOCAL s := ""
|
||||
|
||||
DEFAULT nMode TO HBIDE_ANIMATION_NONE
|
||||
|
||||
DO CASE
|
||||
|
||||
CASE cWidget == "QMenu"
|
||||
@@ -134,10 +137,16 @@ 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_, '} ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
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_, '} ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QMenuBar { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
aadd( txt_, '} ' )
|
||||
ENDIF
|
||||
aadd( txt_, 'QMenuBar::item { ' )
|
||||
aadd( txt_, ' spacing : 3px; /* spacing between menu bar items */ ' )
|
||||
aadd( txt_, ' padding : 1px 4px; ' )
|
||||
@@ -153,12 +162,70 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
aadd( txt_, '} ' )
|
||||
|
||||
CASE cWidget == "QToolBar"
|
||||
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, ' /*spacing: 3px; spacing between items in the tool bar */ ' )
|
||||
aadd( txt_, ' } ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
aadd( txt_, ' } ' )
|
||||
ENDIF
|
||||
|
||||
CASE cWidget == "QToolBarLR"
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:1, y1:0, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, ' } ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
aadd( txt_, ' } ' )
|
||||
ENDIF
|
||||
|
||||
CASE cWidget == "QToolBarLR5"
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:1, y1:0, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
* aadd( txt_, ' spacing: 1px; color: white; margin-top: 2px; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
* aadd( txt_, ' spacing: 1px; color: white; margin-top: 2px; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
ENDIF
|
||||
|
||||
|
||||
CASE cWidget == "QToolBarRL"
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, ' /*spacing: 3px; spacing between items in the tool bar */ ' )
|
||||
aadd( txt_, ' } ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
aadd( txt_, ' } ' )
|
||||
ENDIF
|
||||
|
||||
CASE cWidget == "QToolBarRL5"
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
aadd( txt_, ' spacing: 1px; color: white; margin-top: 2px; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QToolBar { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
aadd( txt_, ' } ' )
|
||||
ENDIF
|
||||
|
||||
CASE cWidget == "QTreeWidgetHB"
|
||||
|
||||
@@ -233,10 +300,13 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
aadd( txt_, ' stop: 0 #FAFBFE, stop: 1 #DCDEF1); ' )
|
||||
aadd( txt_, '} ' )
|
||||
aadd( txt_, ' QListView { ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, ' background: qlineargradient(spread:pad, x1:0.755727, y1:0.864, x2:1, y2:0,' )
|
||||
aadd( txt_, ' stop:0 rgba(214, 209, 142, 255), stop:1 rgba(255, 255, 255, 255));' )
|
||||
ELSE
|
||||
aadd( txt_, ' background: qlineargradient(x1: 1, y1: 0, x2: 0, y2: 0, ' )
|
||||
aadd( txt_, ' stop: 0 rgba(173, 173, 173, 255), stop:1 rgba(255, 255, 255, 255)); ' )
|
||||
* aadd( txt_, ' background: qlineargradient(spread:pad, x1:0.755727, y1:0.864, x2:1, y2:0,' )
|
||||
* aadd( txt_, ' stop:0 rgba(214, 209, 142, 255), stop:1 rgba(255, 255, 255, 255));' )
|
||||
ENDIF
|
||||
aadd( txt_, '} ' )
|
||||
|
||||
CASE cWidget == "QMainWindow"
|
||||
@@ -257,18 +327,28 @@ 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); ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, ' background: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
ENDIF
|
||||
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); ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
ELSE
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
ENDIF
|
||||
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); ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
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); ' )
|
||||
ELSE
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
ENDIF
|
||||
aadd( txt_, ' border: 2px solid #94C4C3; ' )
|
||||
aadd( txt_, ' border-bottom-color: #C2C7CB; /* same as the pane color */ ' )
|
||||
aadd( txt_, ' border-top-left-radius: 6px; ' )
|
||||
@@ -277,16 +357,22 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
aadd( txt_, ' padding: 2px; ' )
|
||||
aadd( txt_, '} ' )
|
||||
aadd( txt_, ' QTabBar::tab:selected { ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
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); ' )
|
||||
ELSE
|
||||
aadd( txt_, ' background: white; ' )
|
||||
ENDIF
|
||||
aadd( txt_, ' } ' )
|
||||
aadd( txt_, ' QTabBar::tab:selected:hover { ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
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); ' )
|
||||
ELSE
|
||||
aadd( txt_, ' background: yellow; ' )
|
||||
ENDIF
|
||||
aadd( txt_, ' } ' )
|
||||
aadd( txt_, ' QTabBar::tab:hover { ' )
|
||||
aadd( txt_, ' background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, ' )
|
||||
@@ -308,12 +394,17 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
CASE cWidget == "QDockWidget"
|
||||
|
||||
aadd( txt_, 'QDockWidget { ' )
|
||||
aadd( txt_, ' border: 1px solid darkgray; ' )
|
||||
aadd( txt_, ' border: 1px solid darkgray; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
aadd( txt_, 'QDockWidget::title { ' )
|
||||
aadd( txt_, ' background-color: rgb(212,208,200); ' )
|
||||
aadd( txt_, ' padding-left: 10px; ' )
|
||||
aadd( txt_, ' padding-top: 4px; ' )
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
|
||||
aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
|
||||
ELSE
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
ENDIF
|
||||
aadd( txt_, ' padding-left: 10px; ' )
|
||||
aadd( txt_, ' padding-top: 4px; ' )
|
||||
aadd( txt_, ' } ' )
|
||||
|
||||
CASE cWidget == "PathIsWrong"
|
||||
@@ -327,3 +418,15 @@ FUNCTION GetStyleSheet( cWidget )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION hbide_cssColorString( cPart )
|
||||
LOCAL cStr := ""
|
||||
|
||||
SWITCH lower( cPart )
|
||||
CASE "bg-std"
|
||||
RETURN ' background-color: rgb(212,208,200);'
|
||||
|
||||
ENDSWITCH
|
||||
|
||||
RETURN cStr
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -94,7 +94,7 @@ FUNCTION hbide_loadThemes( oIde )
|
||||
oIde:cIniThemes := hb_dirBase() + "hbide.hbt"
|
||||
ENDIF
|
||||
|
||||
oIde:oThemes := IdeThemes():new( oIde, oIde:cIniThemes ):create()
|
||||
oIde:oTH := IdeThemes():new( oIde, oIde:cIniThemes ):create()
|
||||
|
||||
RETURN nil
|
||||
|
||||
|
||||
357
harbour/contrib/hbide/idetools.prg
Normal file
357
harbour/contrib/hbide/idetools.prg
Normal file
@@ -0,0 +1,357 @@
|
||||
/*
|
||||
* $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 <bedipritpal@hotmail.com>
|
||||
* 20Mar2010
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "hbide.ch"
|
||||
#include "common.ch"
|
||||
#include "hbclass.ch"
|
||||
#include "hbqt.ch"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#define buttonAdd_clicked 1
|
||||
#define buttonDelete_clicked 2
|
||||
#define buttonUp_clicked 3
|
||||
#define buttonDown_clicked 4
|
||||
#define buttonBrowse_clicked 5
|
||||
#define buttonUpdate_clicked 6
|
||||
#define buttonClose_clicked 7
|
||||
#define buttonExec_clicked 8
|
||||
|
||||
#define listNames_itemSelectionChanged 9
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
CLASS IdeToolsManager INHERIT IdeObject
|
||||
|
||||
DATA aAct INIT {}
|
||||
DATA qToolsMenu
|
||||
DATA qToolsButton
|
||||
DATA aPanelsAct INIT {}
|
||||
DATA qPanelsButton
|
||||
DATA qPanelsMenu
|
||||
|
||||
ACCESS aTools INLINE ::aINI[ INI_TOOLS ]
|
||||
|
||||
METHOD new( oIde )
|
||||
METHOD create( oIde )
|
||||
METHOD destroy()
|
||||
METHOD show()
|
||||
METHOD execEvent( nMode, p )
|
||||
METHOD clearList()
|
||||
METHOD populateList( aList )
|
||||
METHOD execTool( cName )
|
||||
METHOD buildToolsButton()
|
||||
METHOD buildPanelsButton()
|
||||
METHOD addPanelsMenu( cPrompt )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:new( oIde )
|
||||
|
||||
::oIde := oIde
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:create( oIde )
|
||||
LOCAL oAct
|
||||
|
||||
DEFAULT oIde TO ::oIde
|
||||
::oIde := oIde
|
||||
|
||||
IF !empty( oAct := ::oAC:getAction( "TB_Tools" ) )
|
||||
oAct:setMenu( QMenu():new() )
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:destroy()
|
||||
LOCAL qAct
|
||||
|
||||
IF !empty( ::oUI )
|
||||
FOR EACH qAct IN ::aAct
|
||||
::disconnect( qAct, "triggered(bool)" )
|
||||
qAct := NIL
|
||||
NEXT
|
||||
::disconnect( ::qToolsButton, "clicked()" )
|
||||
::qToolsButton := NIL
|
||||
|
||||
::clearList()
|
||||
|
||||
::disconnect( ::oUI:q_buttonAdd , "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonDelete, "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonUp , "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonDown , "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonExec , "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonBrowse, "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonUpdate, "clicked()" )
|
||||
::disconnect( ::oUI:q_buttonClose , "clicked()" )
|
||||
::disconnect( ::oUI:q_listNames , "itemSelectionChanged()" )
|
||||
|
||||
::oUI:destroy()
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:show()
|
||||
|
||||
IF empty( ::oUI )
|
||||
::oUI := HbQtUI():new( hbide_uic( "toolsutilities" ), ::oDlg:oWidget ):build()
|
||||
|
||||
::oUI:setWindowIcon( hbide_image( "hbide" ) )
|
||||
::oUI:setMaximumWidth( ::oUI:width() )
|
||||
::oUI:setMinimumWidth( ::oUI:width() )
|
||||
::oUI:setMaximumHeight( ::oUI:height() )
|
||||
::oUI:setMinimumHeight( ::oUI:height() )
|
||||
|
||||
::connect( ::oUI:q_buttonAdd , "clicked()", {|| ::execEvent( buttonAdd_clicked ) } )
|
||||
::connect( ::oUI:q_buttonDelete, "clicked()", {|| ::execEvent( buttonDelete_clicked ) } )
|
||||
::connect( ::oUI:q_buttonUp , "clicked()", {|| ::execEvent( buttonUp_clicked ) } )
|
||||
::connect( ::oUI:q_buttonDown , "clicked()", {|| ::execEvent( buttonDown_clicked ) } )
|
||||
::connect( ::oUI:q_buttonExec , "clicked()", {|| ::execEvent( buttonExec_clicked ) } )
|
||||
::connect( ::oUI:q_buttonBrowse, "clicked()", {|| ::execEvent( buttonBrowse_clicked ) } )
|
||||
::connect( ::oUI:q_buttonUpdate, "clicked()", {|| ::execEvent( buttonUpdate_clicked ) } )
|
||||
::connect( ::oUI:q_buttonClose , "clicked()", {|| ::execEvent( buttonClose_clicked ) } )
|
||||
|
||||
::connect( ::oUI:q_listNames , "itemSelectionChanged()", {|| ::execEvent( listNames_itemSelectionChanged ) } )
|
||||
|
||||
ENDIF
|
||||
|
||||
::clearList()
|
||||
::populateList( ::aINI[ INI_TOOLS ] )
|
||||
::oUI:exec()
|
||||
|
||||
RETURN Nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:execEvent( nMode, p )
|
||||
LOCAL cFile, cFileName, nIndex, qItem, cName
|
||||
LOCAL aTools := ::aINI[ INI_TOOLS ]
|
||||
|
||||
HB_SYMBOL_UNUSED( p )
|
||||
|
||||
SWITCH nMode
|
||||
CASE listNames_itemSelectionChanged
|
||||
qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
|
||||
cName := qItem:text()
|
||||
IF ( nIndex := ascan( aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
|
||||
::oUI:q_editName : setText( aTools[ nIndex, 1 ] )
|
||||
::oUI:q_editCmdLine : setText( aTools[ nIndex, 2 ] )
|
||||
::oUI:q_editParams : setText( aTools[ nIndex, 3 ] )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE buttonAdd_clicked
|
||||
aadd( ::aINI[ INI_TOOLS ], { ::oUI:q_editName:text(), ::oUI:q_editCmdLine:text(), ::oUI:q_editParams:text() } )
|
||||
::oUI:q_listNames:addItem( ::oUI:q_editName:text() )
|
||||
EXIT
|
||||
CASE buttonDelete_clicked
|
||||
qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
|
||||
cName := qItem:text()
|
||||
IF ( nIndex := ascan( aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
|
||||
hb_adel( ::aINI[ INI_TOOLS ], nIndex, .t. )
|
||||
::clearList()
|
||||
::populateList()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE buttonUp_clicked
|
||||
EXIT
|
||||
CASE buttonDown_clicked
|
||||
EXIT
|
||||
CASE buttonExec_clicked
|
||||
qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
|
||||
::execTool( qItem:text() )
|
||||
EXIT
|
||||
CASE buttonBrowse_clicked
|
||||
IF !empty( cFile := hbide_fetchAFile( ::oDlg, "Select a Tool" ) )
|
||||
hb_fNameSplit( cFile, , @cFileName )
|
||||
::oUI:q_editName : setText( cFileName )
|
||||
::oUI:q_editCmdLine : setText( cFile )
|
||||
::oUI:q_editParams : setText( "" )
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE buttonUpdate_clicked
|
||||
qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
|
||||
cName := qItem:text()
|
||||
|
||||
IF ( nIndex := ascan( aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
|
||||
::aINI[ INI_TOOLS, nIndex ] := { ::oUI:q_editName:text(), ::oUI:q_editCmdLine:text(), ::oUI:q_editParams:text() }
|
||||
::clearList()
|
||||
::populateList()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE buttonClose_clicked
|
||||
::oUI:done( 1 )
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:clearList()
|
||||
|
||||
::oUI:q_listNames:clear()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:populateList( aList )
|
||||
LOCAL a_
|
||||
|
||||
DEFAULT aList TO ::aINI[ INI_TOOLS ]
|
||||
|
||||
FOR EACH a_ IN aList
|
||||
::oUI:q_listNames:addItem( a_[ 1 ] )
|
||||
NEXT
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:execTool( cName )
|
||||
LOCAL nIndex, cCmd, cParams, qProcess, qStr
|
||||
|
||||
IF ( nIndex := ascan( ::aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
|
||||
cCmd := ::aTools[ nIndex, 2 ]
|
||||
cParams := ::aTools[ nIndex, 3 ]
|
||||
|
||||
qProcess := QProcess():new()
|
||||
|
||||
IF !empty( cParams )
|
||||
qStr := QStringList():new()
|
||||
qStr:append( cParams )
|
||||
qProcess:startDetached_1( cCmd, qStr )
|
||||
ELSE
|
||||
qProcess:startDetached_2( cCmd )
|
||||
ENDIF
|
||||
qProcess:waitForStarted()
|
||||
qProcess := NIL
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:buildToolsButton()
|
||||
LOCAL a_, qAct
|
||||
|
||||
::qToolsMenu := QMenu():new()
|
||||
FOR EACH a_ IN ::aTools
|
||||
qAct := ::qToolsMenu:addAction( a_[ 1 ] )
|
||||
::connect( qAct, "triggered(bool)", {|| ::execTool( a_[ 1 ] ) } )
|
||||
aadd( ::aAct, qAct )
|
||||
NEXT
|
||||
::qToolsButton := QToolButton():new()
|
||||
::qToolsButton:setTooltip( "Tools & Utilities" )
|
||||
::qToolsButton:setIcon( hbide_image( "tools" ) )
|
||||
::qToolsButton:setPopupMode( QToolButton_MenuButtonPopup )
|
||||
::qToolsButton:setMenu( ::qToolsMenu )
|
||||
|
||||
::connect( ::qToolsButton, "clicked()", {|| ::show() } )
|
||||
|
||||
RETURN ::qToolsButton
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:buildPanelsButton()
|
||||
LOCAL cView
|
||||
|
||||
::qPanelsMenu := QMenu():new()
|
||||
::addPanelsMenu( "Main" )
|
||||
FOR EACH cView IN ::aINI[ INI_VIEWS ]
|
||||
::addPanelsMenu( cView )
|
||||
NEXT
|
||||
::qPanelsButton := QToolButton():new()
|
||||
::qPanelsButton:setTooltip( "Panels" )
|
||||
::qPanelsButton:setIcon( hbide_image( "panel_8" ) )
|
||||
::qPanelsButton:setPopupMode( QToolButton_MenuButtonPopup )
|
||||
::qPanelsButton:setMenu( ::qPanelsMenu )
|
||||
|
||||
::connect( ::qPanelsButton, "clicked()", {|| ::oDK:setView( "New..." ) } )
|
||||
|
||||
RETURN ::qPanelsButton
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:addPanelsMenu( cPrompt )
|
||||
LOCAL qAct
|
||||
|
||||
qAct := ::qPanelsMenu:addAction( cPrompt )
|
||||
QAction():from( qAct ):setIcon( ::oDK:getPanelIcon( cPrompt ) )
|
||||
::connect( qAct, "triggered(bool)", {|| ::oDK:setView( cPrompt ) } )
|
||||
aadd( ::aPanelsAct, qAct )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 493 B |
228
harbour/contrib/hbide/resources/toolsutilities.ui
Normal file
228
harbour/contrib/hbide/resources/toolsutilities.ui
Normal file
@@ -0,0 +1,228 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogTools</class>
|
||||
<widget class="QDialog" name="DialogTools">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>280</width>
|
||||
<height>403</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Tools & Utilities</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="labelCmdLine">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>258</y>
|
||||
<width>79</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Command Line:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="editCmdLine">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>276</y>
|
||||
<width>255</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelName">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>210</y>
|
||||
<width>53</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Name:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonDown">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>176</x>
|
||||
<y>140</y>
|
||||
<width>95</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Down</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonUpdate">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>368</y>
|
||||
<width>149</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="labelParams">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>306</y>
|
||||
<width>79</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Parameters:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonBrowse">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>176</x>
|
||||
<y>226</y>
|
||||
<width>95</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QListWidget" name="listNames">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>29</y>
|
||||
<width>149</width>
|
||||
<height>173</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonAdd">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>176</x>
|
||||
<y>28</y>
|
||||
<width>95</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonDelete">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>176</x>
|
||||
<y>66</y>
|
||||
<width>95</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="Line" name="line">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>348</y>
|
||||
<width>253</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>10</y>
|
||||
<width>105</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Current Tools:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="editParams">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>324</y>
|
||||
<width>253</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonUp">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>176</x>
|
||||
<y>102</y>
|
||||
<width>95</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Up</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonClose">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>172</x>
|
||||
<y>368</y>
|
||||
<width>95</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="editName">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>228</y>
|
||||
<width>149</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="buttonExec">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>178</x>
|
||||
<y>178</y>
|
||||
<width>91</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Execute</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
138
harbour/contrib/hbide/resources/toolsutilities.uic
Normal file
138
harbour/contrib/hbide/resources/toolsutilities.uic
Normal file
@@ -0,0 +1,138 @@
|
||||
/********************************************************************************
|
||||
** Form generated from reading ui file 'toolsutilities.ui'
|
||||
**
|
||||
** Created: Sun Mar 21 11:24:09 2010
|
||||
** by: Qt User Interface Compiler version 4.5.2
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef TOOLSUTILITIES_H
|
||||
#define TOOLSUTILITIES_H
|
||||
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QButtonGroup>
|
||||
#include <QtGui/QDialog>
|
||||
#include <QtGui/QFrame>
|
||||
#include <QtGui/QHeaderView>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QLineEdit>
|
||||
#include <QtGui/QListWidget>
|
||||
#include <QtGui/QPushButton>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class Ui_DialogTools
|
||||
{
|
||||
public:
|
||||
QLabel *labelCmdLine;
|
||||
QLineEdit *editCmdLine;
|
||||
QLabel *labelName;
|
||||
QPushButton *buttonDown;
|
||||
QPushButton *buttonUpdate;
|
||||
QLabel *labelParams;
|
||||
QPushButton *buttonBrowse;
|
||||
QListWidget *listNames;
|
||||
QPushButton *buttonAdd;
|
||||
QPushButton *buttonDelete;
|
||||
QFrame *line;
|
||||
QLabel *label;
|
||||
QLineEdit *editParams;
|
||||
QPushButton *buttonUp;
|
||||
QPushButton *buttonClose;
|
||||
QLineEdit *editName;
|
||||
QPushButton *buttonExec;
|
||||
|
||||
void setupUi(QDialog *DialogTools)
|
||||
{
|
||||
if (DialogTools->objectName().isEmpty())
|
||||
DialogTools->setObjectName(QString::fromUtf8("DialogTools"));
|
||||
DialogTools->resize(280, 403);
|
||||
labelCmdLine = new QLabel(DialogTools);
|
||||
labelCmdLine->setObjectName(QString::fromUtf8("labelCmdLine"));
|
||||
labelCmdLine->setGeometry(QRect(12, 258, 79, 16));
|
||||
editCmdLine = new QLineEdit(DialogTools);
|
||||
editCmdLine->setObjectName(QString::fromUtf8("editCmdLine"));
|
||||
editCmdLine->setGeometry(QRect(12, 276, 255, 20));
|
||||
labelName = new QLabel(DialogTools);
|
||||
labelName->setObjectName(QString::fromUtf8("labelName"));
|
||||
labelName->setGeometry(QRect(12, 210, 53, 16));
|
||||
buttonDown = new QPushButton(DialogTools);
|
||||
buttonDown->setObjectName(QString::fromUtf8("buttonDown"));
|
||||
buttonDown->setGeometry(QRect(176, 140, 95, 24));
|
||||
buttonUpdate = new QPushButton(DialogTools);
|
||||
buttonUpdate->setObjectName(QString::fromUtf8("buttonUpdate"));
|
||||
buttonUpdate->setGeometry(QRect(12, 368, 149, 24));
|
||||
labelParams = new QLabel(DialogTools);
|
||||
labelParams->setObjectName(QString::fromUtf8("labelParams"));
|
||||
labelParams->setGeometry(QRect(12, 306, 79, 16));
|
||||
buttonBrowse = new QPushButton(DialogTools);
|
||||
buttonBrowse->setObjectName(QString::fromUtf8("buttonBrowse"));
|
||||
buttonBrowse->setGeometry(QRect(176, 226, 95, 24));
|
||||
listNames = new QListWidget(DialogTools);
|
||||
listNames->setObjectName(QString::fromUtf8("listNames"));
|
||||
listNames->setGeometry(QRect(12, 29, 149, 173));
|
||||
buttonAdd = new QPushButton(DialogTools);
|
||||
buttonAdd->setObjectName(QString::fromUtf8("buttonAdd"));
|
||||
buttonAdd->setGeometry(QRect(176, 28, 95, 24));
|
||||
buttonDelete = new QPushButton(DialogTools);
|
||||
buttonDelete->setObjectName(QString::fromUtf8("buttonDelete"));
|
||||
buttonDelete->setGeometry(QRect(176, 66, 95, 24));
|
||||
line = new QFrame(DialogTools);
|
||||
line->setObjectName(QString::fromUtf8("line"));
|
||||
line->setGeometry(QRect(12, 348, 253, 16));
|
||||
line->setFrameShape(QFrame::HLine);
|
||||
line->setFrameShadow(QFrame::Sunken);
|
||||
label = new QLabel(DialogTools);
|
||||
label->setObjectName(QString::fromUtf8("label"));
|
||||
label->setGeometry(QRect(12, 10, 105, 16));
|
||||
editParams = new QLineEdit(DialogTools);
|
||||
editParams->setObjectName(QString::fromUtf8("editParams"));
|
||||
editParams->setGeometry(QRect(12, 324, 253, 20));
|
||||
buttonUp = new QPushButton(DialogTools);
|
||||
buttonUp->setObjectName(QString::fromUtf8("buttonUp"));
|
||||
buttonUp->setGeometry(QRect(176, 102, 95, 24));
|
||||
buttonClose = new QPushButton(DialogTools);
|
||||
buttonClose->setObjectName(QString::fromUtf8("buttonClose"));
|
||||
buttonClose->setGeometry(QRect(172, 368, 95, 24));
|
||||
editName = new QLineEdit(DialogTools);
|
||||
editName->setObjectName(QString::fromUtf8("editName"));
|
||||
editName->setGeometry(QRect(12, 228, 149, 20));
|
||||
buttonExec = new QPushButton(DialogTools);
|
||||
buttonExec->setObjectName(QString::fromUtf8("buttonExec"));
|
||||
buttonExec->setGeometry(QRect(178, 178, 91, 24));
|
||||
|
||||
retranslateUi(DialogTools);
|
||||
|
||||
QMetaObject::connectSlotsByName(DialogTools);
|
||||
} // setupUi
|
||||
|
||||
void retranslateUi(QDialog *DialogTools)
|
||||
{
|
||||
DialogTools->setWindowTitle(QApplication::translate("DialogTools", "Tools & Utilities", 0, QApplication::UnicodeUTF8));
|
||||
labelCmdLine->setText(QApplication::translate("DialogTools", "Command Line:", 0, QApplication::UnicodeUTF8));
|
||||
labelName->setText(QApplication::translate("DialogTools", "Name:", 0, QApplication::UnicodeUTF8));
|
||||
buttonDown->setText(QApplication::translate("DialogTools", "Down", 0, QApplication::UnicodeUTF8));
|
||||
buttonUpdate->setText(QApplication::translate("DialogTools", "Update", 0, QApplication::UnicodeUTF8));
|
||||
labelParams->setText(QApplication::translate("DialogTools", "Parameters:", 0, QApplication::UnicodeUTF8));
|
||||
buttonBrowse->setText(QApplication::translate("DialogTools", "Browse", 0, QApplication::UnicodeUTF8));
|
||||
buttonAdd->setText(QApplication::translate("DialogTools", "Add", 0, QApplication::UnicodeUTF8));
|
||||
buttonDelete->setText(QApplication::translate("DialogTools", "Delete", 0, QApplication::UnicodeUTF8));
|
||||
label->setText(QApplication::translate("DialogTools", "Current Tools:", 0, QApplication::UnicodeUTF8));
|
||||
buttonUp->setText(QApplication::translate("DialogTools", "Up", 0, QApplication::UnicodeUTF8));
|
||||
buttonClose->setText(QApplication::translate("DialogTools", "Close", 0, QApplication::UnicodeUTF8));
|
||||
buttonExec->setText(QApplication::translate("DialogTools", "Execute", 0, QApplication::UnicodeUTF8));
|
||||
Q_UNUSED(DialogTools);
|
||||
} // retranslateUi
|
||||
|
||||
};
|
||||
|
||||
namespace Ui {
|
||||
class DialogTools: public Ui_DialogTools {};
|
||||
} // namespace Ui
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // TOOLSUTILITIES_H
|
||||
Reference in New Issue
Block a user