diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c61b3caa03..0f118de29c 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -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 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, diff --git a/harbour/contrib/hbide/hbide.ch b/harbour/contrib/hbide/hbide.ch index dd4a963e9f..c37f38672f 100644 --- a/harbour/contrib/hbide/hbide.ch +++ b/harbour/contrib/hbide/hbide.ch @@ -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 */ diff --git a/harbour/contrib/hbide/hbide.hbp b/harbour/contrib/hbide/hbide.hbp index 6ce2b548cb..2b70386871 100644 --- a/harbour/contrib/hbide/hbide.hbp +++ b/harbour/contrib/hbide/hbide.hbp @@ -32,6 +32,8 @@ idefunctions.prg idedocwriter.prg ideskeletons.prg idewizard.prg +idetools.prg + diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg index 623cd2901e..ef8e69e6cc 100644 --- a/harbour/contrib/hbide/hbide.prg +++ b/harbour/contrib/hbide/hbide.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() diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg index d9b7b20f3b..59003a5544 100644 --- a/harbour/contrib/hbide/ideactions.prg +++ b/harbour/contrib/hbide/ideactions.prg @@ -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() ) diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index 8c2126eebe..496e65dd7c 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -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 + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/idedocwriter.prg b/harbour/contrib/hbide/idedocwriter.prg index 1fdd2ef268..62cf4fb4ad 100644 --- a/harbour/contrib/hbide/idedocwriter.prg +++ b/harbour/contrib/hbide/idedocwriter.prg @@ -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 ) diff --git a/harbour/contrib/hbide/ideeditor.prg b/harbour/contrib/hbide/ideeditor.prg index fde2f733b4..53af4d4541 100644 --- a/harbour/contrib/hbide/ideeditor.prg +++ b/harbour/contrib/hbide/ideeditor.prg @@ -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 diff --git a/harbour/contrib/hbide/idefindreplace.prg b/harbour/contrib/hbide/idefindreplace.prg index d57e41d4c3..044c328113 100644 --- a/harbour/contrib/hbide/idefindreplace.prg +++ b/harbour/contrib/hbide/idefindreplace.prg @@ -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;" ) diff --git a/harbour/contrib/hbide/ideharbourhelp.prg b/harbour/contrib/hbide/ideharbourhelp.prg index d78ce4da79..8af753af24 100644 --- a/harbour/contrib/hbide/ideharbourhelp.prg +++ b/harbour/contrib/hbide/ideharbourhelp.prg @@ -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 diff --git a/harbour/contrib/hbide/idemisc.prg b/harbour/contrib/hbide/idemisc.prg index a656fdbcc8..f392a4d314 100644 --- a/harbour/contrib/hbide/idemisc.prg +++ b/harbour/contrib/hbide/idemisc.prg @@ -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_ + +/*----------------------------------------------------------------------*/ + diff --git a/harbour/contrib/hbide/ideobject.prg b/harbour/contrib/hbide/ideobject.prg index 1a96e2c6a0..4252b50344 100644 --- a/harbour/contrib/hbide/ideobject.prg +++ b/harbour/contrib/hbide/ideobject.prg @@ -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 diff --git a/harbour/contrib/hbide/idesaveload.prg b/harbour/contrib/hbide/idesaveload.prg index cbb73c73bd..a08d014b3a 100644 --- a/harbour/contrib/hbide/idesaveload.prg +++ b/harbour/contrib/hbide/idesaveload.prg @@ -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 diff --git a/harbour/contrib/hbide/ideskeletons.prg b/harbour/contrib/hbide/ideskeletons.prg index 8dbaaa4eb3..20f1155266 100644 --- a/harbour/contrib/hbide/ideskeletons.prg +++ b/harbour/contrib/hbide/ideskeletons.prg @@ -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 ) ) diff --git a/harbour/contrib/hbide/idesources.prg b/harbour/contrib/hbide/idesources.prg index a4105d07ba..fc475d4896 100644 --- a/harbour/contrib/hbide/idesources.prg +++ b/harbour/contrib/hbide/idesources.prg @@ -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. diff --git a/harbour/contrib/hbide/idestylesheets.prg b/harbour/contrib/hbide/idestylesheets.prg index 866b902cae..2f9f71dabf 100644 --- a/harbour/contrib/hbide/idestylesheets.prg +++ b/harbour/contrib/hbide/idestylesheets.prg @@ -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 + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/idethemes.prg b/harbour/contrib/hbide/idethemes.prg index 94e8247354..221110da30 100644 --- a/harbour/contrib/hbide/idethemes.prg +++ b/harbour/contrib/hbide/idethemes.prg @@ -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 diff --git a/harbour/contrib/hbide/idetools.prg b/harbour/contrib/hbide/idetools.prg new file mode 100644 index 0000000000..921846dc92 --- /dev/null +++ b/harbour/contrib/hbide/idetools.prg @@ -0,0 +1,357 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * + * Copyright 2010 Pritpal Bedi + * 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 + * 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 + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/resources/panel_8.png b/harbour/contrib/hbide/resources/panel_8.png index e28662f76e..4ca9073501 100644 Binary files a/harbour/contrib/hbide/resources/panel_8.png and b/harbour/contrib/hbide/resources/panel_8.png differ diff --git a/harbour/contrib/hbide/resources/toolsutilities.ui b/harbour/contrib/hbide/resources/toolsutilities.ui new file mode 100644 index 0000000000..c18775b2c8 --- /dev/null +++ b/harbour/contrib/hbide/resources/toolsutilities.ui @@ -0,0 +1,228 @@ + + + DialogTools + + + + 0 + 0 + 280 + 403 + + + + Tools & Utilities + + + + + 12 + 258 + 79 + 16 + + + + Command Line: + + + + + + 12 + 276 + 255 + 20 + + + + + + + 12 + 210 + 53 + 16 + + + + Name: + + + + + + 176 + 140 + 95 + 24 + + + + Down + + + + + + 12 + 368 + 149 + 24 + + + + Update + + + + + + 12 + 306 + 79 + 16 + + + + Parameters: + + + + + + 176 + 226 + 95 + 24 + + + + Browse + + + + + + 12 + 29 + 149 + 173 + + + + + + + 176 + 28 + 95 + 24 + + + + Add + + + + + + 176 + 66 + 95 + 24 + + + + Delete + + + + + + 12 + 348 + 253 + 16 + + + + Qt::Horizontal + + + + + + 12 + 10 + 105 + 16 + + + + Current Tools: + + + + + + 12 + 324 + 253 + 20 + + + + + + + 176 + 102 + 95 + 24 + + + + Up + + + + + + 172 + 368 + 95 + 24 + + + + Close + + + + + + 12 + 228 + 149 + 20 + + + + + + + 178 + 178 + 91 + 24 + + + + Execute + + + + + + diff --git a/harbour/contrib/hbide/resources/toolsutilities.uic b/harbour/contrib/hbide/resources/toolsutilities.uic new file mode 100644 index 0000000000..bdff940874 --- /dev/null +++ b/harbour/contrib/hbide/resources/toolsutilities.uic @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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