From 5dd78b404f44dca4d05ac74d4eabe3abce87922f Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Thu, 25 Mar 2010 15:22:47 +0000 Subject: [PATCH] 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. --- harbour/ChangeLog | 52 +++ harbour/contrib/hbide/hbide.ch | 7 +- harbour/contrib/hbide/hbide.hbp | 2 + harbour/contrib/hbide/hbide.prg | 30 +- harbour/contrib/hbide/ideactions.prg | 61 +-- harbour/contrib/hbide/idedocks.prg | 55 ++- harbour/contrib/hbide/idedocwriter.prg | 4 +- harbour/contrib/hbide/ideeditor.prg | 57 ++- harbour/contrib/hbide/idefindreplace.prg | 2 +- harbour/contrib/hbide/ideharbourhelp.prg | 4 +- harbour/contrib/hbide/idemisc.prg | 17 + harbour/contrib/hbide/ideobject.prg | 10 +- harbour/contrib/hbide/idesaveload.prg | 22 +- harbour/contrib/hbide/ideskeletons.prg | 2 +- harbour/contrib/hbide/idesources.prg | 5 +- harbour/contrib/hbide/idestylesheets.prg | 141 ++++++- harbour/contrib/hbide/idethemes.prg | 2 +- harbour/contrib/hbide/idetools.prg | 357 ++++++++++++++++++ harbour/contrib/hbide/resources/panel_8.png | Bin 275 -> 493 bytes .../contrib/hbide/resources/toolsutilities.ui | 228 +++++++++++ .../hbide/resources/toolsutilities.uic | 138 +++++++ 21 files changed, 1093 insertions(+), 103 deletions(-) create mode 100644 harbour/contrib/hbide/idetools.prg create mode 100644 harbour/contrib/hbide/resources/toolsutilities.ui create mode 100644 harbour/contrib/hbide/resources/toolsutilities.uic 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 e28662f76ec6fdb60d7260d5d877a7711b2cf3fa..4ca907350119fa72118e3ee9198dc8f57a4ab406 100644 GIT binary patch delta 468 zcmV;_0W1EK0__8kBYy$3Nklb+h3o5QIS@EPG#W=JbO(chLQ9JcEX%;{=AhM5B!4fkw-=WE{td)p3F!4y zDp{idnK{R4;qz6%WMW7TkWTLJUrB9ND+x~d22GD4Fq#tRRB^mjIiRvyL25;`cGsmq zntTD_@KY*z8Ied-0eWxO(R_c1n9hiV!HA^M1encGu`EhC7Mgkqt}YiSs+1_e-JyfON`fSR|!=9R!Z_zz%oG$^mFok4m%hyP+8FSPzwpiHu(!sGY= zJf2xOJ&v6(pecG<5I_qSxH?_gz|`?H?D4zefy@zBcZcz;))jw*%q136f#9x!wZ58U zwQ*p3rl32}R`L+roX`lLT}VeTcp@(j&K1-Jv0a3@-AzMso^l$AjEtl4a_2{Y7C6*+ z9WaY_s3a*D$b6=gp$TyNTewQn3Se@UgW}5|G}M6U>&gF_{u1v7n#2(dOtU)x0000< KMNUMnLSTX#aNnT- delta 248 zcmVjv|HV&KORV y0pO&~B*lo55@CikGc@B(${@`kr_&}gkplo3bZQX~is{(^0000 + + 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