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:
Pritpal Bedi
2010-03-25 15:22:47 +00:00
parent fcaeda7db3
commit 5dd78b404f
21 changed files with 1093 additions and 103 deletions

View File

@@ -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,

View File

@@ -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 */

View File

@@ -32,6 +32,8 @@ idefunctions.prg
idedocwriter.prg
ideskeletons.prg
idewizard.prg
idetools.prg

View File

@@ -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()

View File

@@ -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() )

View File

@@ -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
/*----------------------------------------------------------------------*/

View File

@@ -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 )

View File

@@ -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

View File

@@ -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;" )

View File

@@ -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

View File

@@ -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_
/*----------------------------------------------------------------------*/

View File

@@ -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

View File

@@ -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

View File

@@ -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 ) )

View File

@@ -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.

View File

@@ -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
/*----------------------------------------------------------------------*/

View File

@@ -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

View 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

View 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 &amp; 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>

View 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