2010-05-03 00:38 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* contrib/hbxbp/xbptoolbar.prg
    ! Issued: setWindowaTitle() for main menubar.

  + contrib/hbide/resources/keyboardmappings.png
    + Icon for "keyboard Mappings" menu option.

  * contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/idefindreplace.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideobject.prg
  * contrib/hbide/ideshortcuts.prg
    + Implemented: almost all the docks can be placed on any of the areas.
      Exception is "Output Console" which is only dockable to top or bottom.
    + Main toolbar and statusbar featured to toggle. Statusbar, however is 
      session dependant, i.e., is not saved for next run. 
    ! Many artifacts fixed for Search/Replace engine, all the three variants.
    ! "Exppression" edit fixed to respect "Enter" key press to start searching.
    ! More artifacts I must be forgetting.
This commit is contained in:
Pritpal Bedi
2010-05-03 07:49:22 +00:00
parent f80d1e5132
commit a776467075
11 changed files with 229 additions and 106 deletions

View File

@@ -17,6 +17,29 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-05-03 00:38 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbxbp/xbptoolbar.prg
! Issued: setWindowaTitle() for main menubar.
+ contrib/hbide/resources/keyboardmappings.png
+ Icon for "keyboard Mappings" menu option.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: almost all the docks can be placed on any of the areas.
Exception is "Output Console" which is only dockable to top or bottom.
+ Main toolbar and statusbar featured to toggle. Statusbar, however is
session dependant, i.e., is not saved for next run.
! Many artifacts fixed for Search/Replace engine, all the three variants.
! "Exppression" edit fixed to respect "Enter" key press to start searching.
! More artifacts I must be forgetting.
2010-05-02 18:11 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
% Fixed to honor right-to-left selection.

View File

@@ -268,6 +268,7 @@ CLASS HbIde
DATA aMarkTBtns INIT array( 6 )
DATA lClosing INIT .f.
DATA lStatusBarVisible INIT .t.
METHOD new( aParams )
METHOD create( aParams )
@@ -323,8 +324,6 @@ METHOD HbIde:new( aParams )
METHOD HbIde:create( aParams )
LOCAL qPixmap, qSplash, n, cView
HB_TRACE( HB_TR_ALWAYS, "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() ) )
@@ -460,21 +459,6 @@ HB_TRACE( HB_TR_ALWAYS, "HbIde:create( cProjIni )", "#Params=" )
/* Display cWrkEnvironment in StatusBar */
::oDK:dispEnvironment( ::cWrkEnvironment )
/* These docks must not be visible even IDE exits them open */
#if 0
::oPropertiesDock:hide()
::oEnvironDock:hide()
::oThemesDock:hide()
::oSkeltnDock:hide()
::oHelpDock:hide()
::oFindDock:hide()
::oDockB1:hide()
::oDockB2:hide()
::oDockB:hide()
::oDocViewDock:hide()
::oDocWriteDock:hide()
#endif
#if 0 /* for screen capture */
n := seconds()
DO WHILE .t.
@@ -535,24 +519,6 @@ HB_TRACE( HB_TR_ALWAYS, "HbIde:create( cProjIni )", "#Params=" )
CASE ::mp1 == xbeK_ESC
::oSM:closeSource()
CASE ::mp1 == xbeK_CTRL_G
::oEM:goto()
CASE ::mp1 == xbeK_CTRL_F
IF !empty( ::qCurEdit )
::oFR:show()
ENDIF
CASE ::mp1 == xbeK_CTRL_N
IF !empty( ::qCurEdit )
::oFR:find()
ENDIF
CASE ::mp1 == xbeK_CTRL_R
IF !empty( ::qCurEdit )
::oFR:replace()
ENDIF
ENDCASE
ENDIF
@@ -654,6 +620,15 @@ METHOD HbIde:showApplicationCursor( nCursor )
METHOD HbIde:execAction( cKey )
SWITCH cKey
CASE "ToggleStatusBar"
IF ::lStatusBarVisible
::oSBar:oWidget:hide()
ELSE
::oSBar:oWidget:show()
ENDIF
::lStatusBarVisible := ! ::lStatusBarVisible
EXIT
CASE "Tools"
::oTM:show()
EXIT
@@ -862,10 +837,10 @@ METHOD HbIde:execEditorAction( cKey )
::oEM:insertText( cKey )
EXIT
CASE "ZoomIn"
::oEM:zoom( 1 )
::oEM:zoom( +1 )
EXIT
CASE "ZoomOut"
::oEM:zoom( 0 )
::oEM:zoom( -1 )
EXIT
CASE "FormatBraces"
::oEM:formatBraces()

View File

@@ -309,7 +309,7 @@ METHOD IdeActions:loadActions()
aadd( aAct, { "Environments" , "Environments..." , "envconfig" , "" , "No", "Yes" } )
aadd( aAct, { "GotoFunc" , "Goto Function" , "dc_function" , "" , "No", "Yes" } )
aadd( aAct, { "Shortcuts" , "Keyboard Mappings" , "" , "" , "No", "Yes" } )
aadd( aAct, { "Shortcuts" , "Keyboard Mappings" , "keyboardmappings","" , "No", "Yes" } )
* aadd( aAct, { "Tools" , "Tools & Utilities" , "tools" , "" , "No", "Yes" } )
RETURN aAct
@@ -325,10 +325,14 @@ METHOD IdeActions:buildToolBar()
oTBar:imageHeight := 22
oTBar:create( , , { 0, ::oDlg:currentSize()[ 2 ]-60 }, { ::oDlg:currentSize()[ 1 ], 60 } )
oTBar:setStyleSheet( GetStyleSheet( "QToolBar", ::nAnimantionMode ) )
oTBar:oWidget:setMaximumHeight( 28 )
//oTBar:oWidget:setMaximumHeight( 28 )
#if 0
oTBar:oWidget:setAllowedAreas( Qt_TopToolBarArea )
oTBar:oWidget:setMovable( .f. )
oTBar:oWidget:setFloatable( .f. )
#else
oTBar:oWidget:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea )
#endif
oTBar:buttonClick := {|oButton| ::oIde:execAction( oButton:key ) }
@@ -518,9 +522,11 @@ METHOD IdeActions:buildMainMenu()
oSubMenu:addItem( { "Toggle Animation", {|| oIde:execAction( "Animate" ) } } )
oSubMenu:oWidget:addSeparator()
oSubMenu:oWidget:addAction_4( ::oIde:oMainToolbar:oWidget:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::qTBarPanels:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::qTBarLines:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::qTBarDocks:toggleViewAction() )
oSubMenu:addItem( { "Toggle Statusbar", {|| oIde:execAction( "ToggleStatusBar" ) } } )
oSubMenu:oWidget:addSeparator()
oSubMenu:oWidget:addAction_4( ::oDockPT:oWidget:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::oDockED:oWidget:toggleViewAction() )

View File

@@ -128,7 +128,7 @@ CLASS IdeDocks INHERIT IdeObject
METHOD dispEnvironment( cEnviron )
METHOD addPanelButton( cPanel )
METHOD disblePanelButton( qTBtn )
METHOD getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
METHOD getADockWidget( nAreas, cObjectName, cWindowTitle, nFlags )
METHOD getPanelIcon( cView )
METHOD animateComponents( nMode )
@@ -295,7 +295,7 @@ METHOD IdeDocks:buildDockWidgets()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
METHOD IdeDocks:getADockWidget( nAreas, cObjectName, cWindowTitle, nFlags )
LOCAL oDock, nBasic
DEFAULT nFlags TO 0
@@ -307,7 +307,7 @@ METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle, nFlags )
oDock:oWidget:setObjectName( cObjectName )
::oDlg:addChild( oDock )
oDock:oWidget:setFeatures( nBasic )
oDock:oWidget:setAllowedAreas( nArea )
oDock:oWidget:setAllowedAreas( nAreas )
oDock:oWidget:setWindowTitle( cWindowTitle )
oDock:oWidget:setFocusPolicy( Qt_NoFocus )
oDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget", ::nAnimantionMode ) )
@@ -482,10 +482,7 @@ METHOD IdeDocks:buildToolBarPanels()
::qTBarPanels:setObjectName( "ToolBar_Panels" )
::qTBarPanels:setWindowTitle( "ToolBar: Editor Panels" )
::qTBarPanels:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea )
//::qTBarPanels:setOrientation( Qt_Vertical )
::qTBarPanels:setIconSize( qSize )
//::qTBarPanels:setMovable( .f. )
//::qTBarPanels:setFloatable( .f. )
::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarPanels )
@@ -502,10 +499,6 @@ METHOD IdeDocks:buildToolBarPanels()
::qTBarLines:setWindowTitle( "ToolBar: Lines and Blocks" )
::qTBarLines:setIconSize( qSize )
::qTBarPanels:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea )
* ::qTBarLines:setAllowedAreas( Qt_LeftToolBarArea )
* ::qTBarLines:setOrientation( Qt_Vertical )
* ::qTBarLines:setMovable( .f. )
* ::qTBarLines:setFloatable( .f. )
::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarLines )
@@ -573,12 +566,7 @@ METHOD IdeDocks:buildToolBarPanels()
::qTBarDocks:setIconSize( QSize():new( 16,16 ) )
::qTBarDocks:setToolButtonStyle( Qt_ToolButtonIconOnly )
::qTBarPanels:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea )
#if 0
::qTBarDocks:setAllowedAreas( Qt_RightToolBarArea )
::qTBarDocks:setOrientation( Qt_Vertical )
::qTBarDocks:setMovable( .f. )
::qTBarDocks:setFloatable( .f. )
#endif
aBtns := {}
aadd( aBtns, { ::oDockPT , "projtree" } )
aadd( aBtns, { ::oDockED , "editstree" } )
@@ -596,8 +584,6 @@ METHOD IdeDocks:buildToolBarPanels()
aadd( aBtns, { ::oFindDock , "search" } )
aadd( aBtns, {} )
aadd( aBtns, { ::oDockB2 , "builderror" } )
* aadd( aBtns, { ::oDockB1 , "builderror" } )
* aadd( aBtns, { ::oDockB , "builderror" } )
FOR EACH a_ IN aBtns
IF empty( a_ )
@@ -665,8 +651,9 @@ METHOD IdeDocks:addPanelButton( cPanel )
METHOD IdeDocks:buildProjectTree()
LOCAL i, oItem
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oDockPT := ::getADockWidget( Qt_LeftDockWidgetArea, "dockProjectTree", "Projects", QDockWidget_DockWidgetFloatable )
::oIde:oDockPT := ::getADockWidget( nAreas, "dockProjectTree", "Projects", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oDockPT:oWidget, Qt_Vertical )
::oIde:oProjTree := XbpTreeView():new()
@@ -713,8 +700,9 @@ METHOD IdeDocks:buildProjectTree()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildEditorTree()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oDockED := ::getADockWidget( Qt_LeftDockWidgetArea, "dockEditorTabs", "Editors", QDockWidget_DockWidgetFloatable )
::oIde:oDockED := ::getADockWidget( nAreas, "dockEditorTabs", "Editors", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oDockED:oWidget, Qt_Vertical )
::oIde:oEditTree := XbpTreeView():new()
@@ -746,8 +734,9 @@ METHOD IdeDocks:buildEditorTree()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildSkeletonsTree()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oSkltnsTreeDock := ::getADockWidget( Qt_LeftDockWidgetArea, "dockSkltnsTree", "Skeletons", QDockWidget_DockWidgetFloatable )
::oIde:oSkltnsTreeDock := ::getADockWidget( nAreas, "dockSkltnsTree", "Skeletons", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_LeftDockWidgetArea, ::oSkltnsTreeDock:oWidget, Qt_Vertical )
::connect( ::oSkltnsTreeDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockSkltnsTree_visibilityChanged, p ) } )
@@ -757,8 +746,9 @@ METHOD IdeDocks:buildSkeletonsTree()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildFuncList()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oFuncDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockFuncList", "Functions List", QDockWidget_DockWidgetFloatable )
::oIde:oFuncDock := ::getADockWidget( nAreas, "dockFuncList", "Functions List", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFuncDock:oWidget, Qt_Vertical )
::connect( ::oFuncDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( oFuncDock_visibilityChanged, p ) } )
@@ -830,8 +820,9 @@ METHOD IdeDocks:buildLinkResults()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildOutputResults()
LOCAL nAreas := Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oDockB2 := ::getADockWidget( Qt_BottomDockWidgetArea, "dockOutputResults", "Output Console", QDockWidget_DockWidgetFloatable )
::oIde:oDockB2 := ::getADockWidget( nAreas, "dockOutputResults", "Output Console", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB2:oWidget, Qt_Horizontal )
::oIde:oOutputResult := XbpRtf():new( ::oDockB2 ):create( , , { 0,0 }, { 100, 400 }, , .T. )
@@ -904,8 +895,9 @@ METHOD IdeDocks:buildStatusBar()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildThemesDock()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oThemesDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockThemes", "Theme Manager", QDockWidget_DockWidgetFloatable )
::oIde:oThemesDock := ::getADockWidget( nAreas, "dockThemes", "Theme Manager", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oThemesDock:oWidget, Qt_Horizontal )
::connect( ::oThemesDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockThemes_visibilityChanged, p ) } )
@@ -915,8 +907,9 @@ METHOD IdeDocks:buildThemesDock()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildPropertiesDock()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oPropertiesDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockProperties", "Project Properties", QDockWidget_DockWidgetFloatable )
::oIde:oPropertiesDock := ::getADockWidget( nAreas, "dockProperties", "Project Properties", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oPropertiesDock:oWidget, Qt_Horizontal )
::connect( ::oPropertiesDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockProperties_visibilityChanged, p ) } )
@@ -926,8 +919,9 @@ METHOD IdeDocks:buildPropertiesDock()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildFindInFiles()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oFindDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockFindInFiles", "Find in Files", QDockWidget_DockWidgetFloatable )
::oIde:oFindDock := ::getADockWidget( nAreas, "dockFindInFiles", "Find in Files", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFindDock:oWidget, Qt_Horizontal )
::connect( ::oFindDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockFindInFiles_visibilityChanged, p ) } )
@@ -937,8 +931,9 @@ METHOD IdeDocks:buildFindInFiles()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildDocViewer()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oDocViewDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockDocViewer", "Harbour Documentation", QDockWidget_DockWidgetFloatable )
::oIde:oDocViewDock := ::getADockWidget( nAreas, "dockDocViewer", "Harbour Documentation", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oDocViewDock:oWidget, Qt_Horizontal )
::connect( ::oDocViewDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockDocViewer_visibilityChanged, p ) } )
@@ -948,8 +943,9 @@ METHOD IdeDocks:buildDocViewer()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildDocWriter()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oDocWriteDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockDocWriter", "Documentation Writer", QDockWidget_DockWidgetFloatable )
::oIde:oDocWriteDock := ::getADockWidget( nAreas, "dockDocWriter", "Documentation Writer", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oDocWriteDock:oWidget, Qt_Horizontal )
::connect( ::oDocWriteDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( dockDocWriter_visibilityChanged, p ) } )
@@ -959,8 +955,9 @@ METHOD IdeDocks:buildDocWriter()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildFunctionsDock()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oFunctionsDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockFunctions", "Projects Functions Lookup", QDockWidget_DockWidgetFloatable )
::oIde:oFunctionsDock := ::getADockWidget( nAreas, "dockFunctions", "Projects Functions Lookup", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFunctionsDock:oWidget, Qt_Horizontal )
::connect( ::oFunctionsDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( docFunctions_visibilityChanged, p ) } )
@@ -970,8 +967,9 @@ METHOD IdeDocks:buildFunctionsDock()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildEnvironDock()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oEnvironDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockEnvironments", "Compiler Environments", QDockWidget_DockWidgetFloatable )
::oIde:oEnvironDock := ::getADockWidget( nAreas, "dockEnvironments", "Compiler Environments", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oEnvironDock:oWidget, Qt_Horizontal )
::connect( ::oEnvironDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( docEnvironments_visibilityChanged, p ) } )
@@ -981,8 +979,9 @@ METHOD IdeDocks:buildEnvironDock()
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildSkeletonWidget()
LOCAL nAreas := Qt_LeftDockWidgetArea + Qt_RightDockWidgetArea + Qt_TopDockWidgetArea + Qt_BottomDockWidgetArea
::oIde:oSkeltnDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockSkeleton", "Code Skeletons", QDockWidget_DockWidgetFloatable )
::oIde:oSkeltnDock := ::getADockWidget( nAreas, "dockSkeleton", "Code Skeletons", QDockWidget_DockWidgetFloatable )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oSkeltnDock:oWidget, Qt_Horizontal )
::connect( ::oSkeltnDock:oWidget, "visibilityChanged(bool)", {|p| ::execEvent( docSkeletons_visibilityChanged, p ) } )

View File

@@ -711,7 +711,7 @@ METHOD IdeEditsManager:insertText( cKey )
RETURN Self
ENDIF
IF !( hbide_isValidText( cFile ) )
MsgBox( 'File type unknown or unsupported: ' + cFile )
MsgBox( "File type unknown or unsupported: " + cFile )
RETURN Self
ENDIF
cText := hb_memoread( cFile )
@@ -830,6 +830,7 @@ METHOD IdeEditsManager:RemoveTrailingSpaces()
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:zoom( nKey )
#if 0
LOCAL nPointSize, qFont, oEdit, oEditor
IF ! empty( oEditor := ::getEditorCurrent() )
@@ -851,6 +852,13 @@ METHOD IdeEditsManager:zoom( nKey )
NEXT
ENDIF
ENDIF
#endif
LOCAL oEdit
IF !empty( oEdit := ::getEditObjectCurrent() )
oEdit:zoom( nKey )
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
@@ -916,11 +924,12 @@ METHOD IdeEditsManager:goto( nLine )
nLine := qCursor:blockNumber()
qGo := QInputDialog():new( ::oDlg:oWidget )
qGo:setInputMode( 1 )
qGo:setIntMinimum( 1 )
qGo:setIntMaximum( nRows + 1 )
qGo:setIntMaximum( nRows )
qGo:setIntValue( nLine + 1 )
qGo:setLabelText( "Goto Line Number [1-" + hb_ntos( nRows ) + "]" )
qGo:setWindowTitle( "Harbour-Qt" )
qGo:setWindowTitle( "Harbour" )
::setPosByIni( qGo, GotoDialogGeometry )
qGo:exec()
@@ -1410,6 +1419,9 @@ CLASS IdeEdit INHERIT IdeObject
DATA nProtoCol INIT -1
DATA isSuspended INIT .f.
DATA fontFamily INIT "Courier New"
DATA pointSize INIT 10
DATA currentPointSize INIT 10
DATA qFont
DATA aBlockCopyContents INIT {}
@@ -1475,6 +1487,7 @@ CLASS IdeEdit INHERIT IdeObject
METHOD pasteBlockContents()
METHOD insertBlockContents( aCord )
METHOD deleteBlockContents( aCord )
METHOD zoom( nKey )
ENDCLASS
@@ -1543,12 +1556,43 @@ METHOD IdeEdit:create( oEditor, nMode )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:zoom( nKey )
DEFAULT nKey TO 0
IF nKey == 1
IF ::currentPointSize + 1 < 30
::currentPointSize++
ENDIF
ELSEIF nKey == -1
IF ::currentPointSize - 1 > 5
::currentPointSize--
ENDIF
ELSEIF nKey == 0
::currentPointSize := ::pointSize
ELSEIF nKey >= 5 .AND. nKey <= 30
::currentPointSize := nKey
ELSE
RETURN Self
ENDIF
::setFont()
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeEdit:setFont()
::qFont := QFont():new()
::qFont:setFamily( "Courier New" )
::qFont:setFamily( ::fontFamily )
::qFont:setFixedPitch( .t. )
::qFont:setPointSize( 10 )
::qFont:setPointSize( ::currentPointSize )
::qEdit:setFont( ::qFont )

View File

@@ -216,10 +216,9 @@ METHOD IdeSearchReplace:beginFind()
::oUI:q_radioTop:setChecked( .t. )
::oUI:show()
::oUI:oWidget:activateWindow()
::cFind := ""
::oUI:q_comboFind:setFocus( Qt_MouseFocusReason )
::qFindLineEdit:activateWindow()
::qFindLineEdit:setFocus_1()
::qFindLineEdit:selectAll()
@@ -278,6 +277,8 @@ METHOD IdeSearchReplace:startFromTop()
CLASS IdeFindReplace INHERIT IdeObject
DATA qLineEdit
METHOD new( oIde )
METHOD create( oIde )
METHOD destroy()
@@ -303,7 +304,10 @@ METHOD IdeFindReplace:new( oIde )
METHOD IdeFindReplace:destroy()
::oUI:destroy()
IF !empty( ::oUI )
::disConnect( ::qLineEdit, "returnPressed()" )
::oUI:destroy()
ENDIF
RETURN Self
@@ -315,7 +319,7 @@ METHOD IdeFindReplace:create( oIde )
::oIde := oIde
::oUI := HbQtUI():new( ::oIde:resPath + "finddialog.uic", ::oIde:oDlg:oWidget ):build()
::oUI := HbQtUI():new( hbide_uic( "finddialog" ), ::oIde:oDlg:oWidget ):build()
::oUI:setWindowFlags( Qt_Sheet )
aeval( ::oIde:aIni[ INI_FIND ], {|e| ::oUI:q_comboFindWhat:addItem( e ) } )
@@ -339,12 +343,15 @@ METHOD IdeFindReplace:create( oIde )
::oUI:q_comboReplaceWith:setEnabled( p == 0 ), ;
iif( p == 1, ::oUI:q_buttonReplace:setEnabled( .f. ), NIL ) } )
::qLineEdit := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() )
::connect( ::qLineEdit, "returnPressed()", {|| ::onClickFind() } )
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeFindReplace:show()
LOCAL cText, qLineEdit
LOCAL cText
::oUI:q_buttonReplace:setEnabled( .f. )
::oUI:q_checkGlobal:setEnabled( .f. )
@@ -353,11 +360,10 @@ METHOD IdeFindReplace:show()
::oIde:setPosByIni( ::oUI:oWidget, FindDialogGeometry )
::oUI:q_comboFindWhat:setFocus()
qLineEdit := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() )
IF !empty( cText := ::oEM:getSelectedText() )
qLineEdit:setText( cText )
::qLineEdit:setText( cText )
ENDIF
qLineEdit:selectAll()
::qLineEdit:selectAll()
::oUI:show()
@@ -457,7 +463,7 @@ METHOD IdeFindReplace:onClickFind()
::oUI:q_buttonReplace:setEnabled( .f. )
::oUI:q_checkGlobal:setEnabled( .f. )
::oUI:q_checkNoPrompting:setEnabled( .f. )
::oUI:q_buttonFind:activateWindow()
::oUI:q_buttonFind:setFocus_1()
ENDIF
@@ -477,8 +483,7 @@ METHOD IdeFindReplace:find( lWarn )
nFlags += iif( ::oUI:q_checkMatchCase:isChecked(), QTextDocument_FindCaseSensitively, 0 )
nFlags += iif( ::oUI:q_radioUp:isChecked(), QTextDocument_FindBackward, 0 )
//IF !( lFound := ::qCurEdit:find( cText, nFlags ) ) .and. lWarn
IF !( lFound := ::oEM:getEditCurrent():find( cText, nFlags ) ) .and. lWarn
IF !( lFound := ::oEM:getEditCurrent():find( cText, nFlags ) ) .AND. lWarn
hbide_showWarning( "Cannot find : " + cText )
ENDIF
ENDIF
@@ -567,6 +572,8 @@ CLASS IdeFindInFiles INHERIT IdeObject
DATA lShowOnCreate INIT .T.
DATA lInDockWindow INIT .F.
DATA qEditFind
METHOD new( oIde, lShowOnCreate )
METHOD create( oIde, lShowOnCreate )
METHOD destroy()
@@ -610,6 +617,8 @@ METHOD IdeFindInFiles:destroy()
LOCAL qItem
IF !empty( ::oUI )
::disConnect( ::qEditFind, "returnPressed()" )
FOR EACH qItem IN ::aItems
qItem := NIL
NEXT
@@ -688,19 +697,21 @@ METHOD IdeFindInFiles:buildUI()
/* Attach all signals */
//
::oUI:signal( "buttonClose" , "clicked()" , {| | ::execEvent( "buttonClose" ) } )
::oUI:signal( "buttonFolder" , "clicked()" , {| | ::execEvent( "buttonFolder" ) } )
::oUI:signal( "buttonFind" , "clicked()" , {| | ::execEvent( "buttonFind" ) } )
::oUI:signal( "buttonRepl" , "clicked()" , {| | ::execEvent( "buttonRepl" ) } )
::oUI:signal( "buttonStop" , "clicked()" , {| | ::execEvent( "buttonStop" ) } )
::oUI:signal( "checkAll" , "stateChanged(int)" , {|p| ::execEvent( "checkAll", p ) } )
::oUI:signal( "comboFind" , "currentIndexChanged(QString)", {|p| ::execEvent( "comboFind", p ) } )
::oUI:signal( "checkListOnly", "stateChanged(int)" , {|p| ::execEvent( "checkListOnly", p ) } )
::oUI:signal( "checkFolders" , "stateChanged(int)" , {|p| ::execEvent( "checkFolders", p ) } )
::oUI:signal( "editResults" , "copyAvailable(bool)" , {|l| ::execEvent( "editResults", l ) } )
::oUI:signal( "buttonClose" , "clicked()" , {| | ::execEvent( "buttonClose" ) } )
::oUI:signal( "buttonFolder" , "clicked()" , {| | ::execEvent( "buttonFolder" ) } )
::oUI:signal( "buttonFind" , "clicked()" , {| | ::execEvent( "buttonFind" ) } )
::oUI:signal( "buttonRepl" , "clicked()" , {| | ::execEvent( "buttonRepl" ) } )
::oUI:signal( "buttonStop" , "clicked()" , {| | ::execEvent( "buttonStop" ) } )
::oUI:signal( "checkAll" , "stateChanged(int)" , {|p| ::execEvent( "checkAll", p ) } )
::oUI:signal( "comboExpr" , "currentIndexChanged(QString)", {|p| ::execEvent( "comboFind", p ) } )
::oUI:signal( "checkListOnly", "stateChanged(int)" , {|p| ::execEvent( "checkListOnly", p ) } )
::oUI:signal( "checkFolders" , "stateChanged(int)" , {|p| ::execEvent( "checkFolders", p ) } )
::oUI:signal( "editResults" , "copyAvailable(bool)" , {|l| ::execEvent( "editResults", l ) } )
::oUI:signal( "editResults" , "customContextMenuRequested(QPoint)", {|p| ::execEvent( "editResults-contextMenu", p ) } )
HB_TRACE( HB_TR_ALWAYS, "-------------------------", 1 )
::qEditFind := QLineEdit():from( ::oUI:q_comboExpr:lineEdit() )
::connect( ::qEditFind, "returnPressed()", {|| ::execEvent( "buttonFind" ) } )
RETURN Self
/*----------------------------------------------------------------------*/

View File

@@ -186,10 +186,11 @@ FUNCTION hbide_posAndSize( qWidget )
/*----------------------------------------------------------------------*/
FUNCTION hbide_showWarning( cMsg, cInfo, cTitle )
FUNCTION hbide_showWarning( cMsg, cInfo, cTitle, qParent )
LOCAL oMB
DEFAULT cTitle TO "Information"
DEFAULT cTitle TO "Information"
DEFAULT qParent TO SetAppWindow():pWidget
oMB := QMessageBox():new()
oMB:setText( cMsg )
@@ -197,7 +198,7 @@ FUNCTION hbide_showWarning( cMsg, cInfo, cTitle )
oMB:setInformativeText( cInfo )
ENDIF
oMB:setIcon( QMessageBox_Critical )
oMB:setParent( SetAppWindow():pWidget )
oMB:setParent( qParent )
oMB:setWindowFlags( Qt_Dialog )
oMB:setWindowTitle( cTitle )

View File

@@ -196,6 +196,7 @@ CLASS IdeObject
ACCESS lTabCloseRequested INLINE ::oIde:lTabCloseRequested
ACCESS isColumnSelectionEnabled INLINE ::oIde:isColumnSelectionEnabled
ACCESS lLineNumbersVisible INLINE ::oIde:lLineNumbersVisible
ACCESS lStatusBarVisible INLINE ::oIde:lStatusBarVisible
ACCESS aMarkTBtns INLINE ::oIde:aMarkTBtns

View File

@@ -169,6 +169,12 @@ CLASS IdeShortcuts INHERIT IdeObject
METHOD launch( cProj )
METHOD insert( cText )
METHOD separator( cSep )
METHOD findAgain()
METHOD replace()
METHOD toUpper()
METHOD toLower()
METHOD invertCase()
METHOD zoom( nKey )
ENDCLASS
@@ -1034,6 +1040,42 @@ METHOD IdeShortcuts:separator( cSep )
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:findAgain()
IF !empty( ::qCurEdit )
::oFR:find()
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:replace()
IF !empty( ::qCurEdit )
::oFR:replace()
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:toUpper()
RETURN ::oEM:convertSelection( "ToUpper" )
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:toLower()
RETURN ::oEM:convertSelection( "ToLower" )
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:invertCase()
RETURN ::oEM:convertSelection( "Invert" )
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:zoom( nKey )
RETURN ::oEM:zoom( nKey )
/*----------------------------------------------------------------------*/
METHOD IdeShortcuts:loadMethods()
#if 0
aadd( ::aMethods, { '', ;
@@ -1067,6 +1109,12 @@ METHOD IdeShortcuts:loadMethods()
aadd( ::aMethods, { 'findDlg()', ;
'findDlg()', ;
'Invokes "Find and Replace" dialog.' } )
aadd( ::aMethods, { 'findAgain()', ;
'findAgain()', ;
'Finds last search string without opening the dialog.' } )
aadd( ::aMethods, { 'replace()', ;
'replace()', ;
'Replaces last replace string if some text is already selected without opening the dialog.' } )
aadd( ::aMethods, { 'findDlgEx()', ;
'findDlgEx()', ;
'Invokes extended "Find and Replace" dialog at the bottom of editing area.' } )
@@ -1085,6 +1133,15 @@ METHOD IdeShortcuts:loadMethods()
aadd( ::aMethods, { 'streamComment()', ;
'streamComment()', ;
'Encloses currently selected text in Anci-C like comments /* */' } )
aadd( ::aMethods, { 'toUpper()', ;
'toUpper()', ;
'Converts currently selected text to upper-case.' } )
aadd( ::aMethods, { 'toLower()', ;
'toLower()', ;
'Converts currently selected text to lower-case.' } )
aadd( ::aMethods, { 'invertCase()', ;
'invertCase()', ;
'Inverts case of currently selected text: upper => lower; lower => upper.' } )
aadd( ::aMethods, { 'build( cProj )', ;
'build( "" )', ;
'Builds <cProj> if it is already loaded. All sources are saved if found in modified state before "build" is initiated.' } )
@@ -1116,6 +1173,9 @@ METHOD IdeShortcuts:loadMethods()
'execTool( "", "", "", .f., .f. )', ;
'Executes a program or file with parameters and other attributes.' + CRLF + ;
'http://hbide.vouch.info/ ( Topic: Tools and Utilities )' } )
aadd( ::aMethods, { 'zoom( nVal )' , ;
'zoom( +1 )' , ;
'Zooms in/out the current editing instance. nVal: 1-one size up; -1-one size less; NIL-original size; 5~30-to size.' } )
RETURN Self
@@ -1141,6 +1201,8 @@ METHOD IdeShortcuts:loadDftSCuts()
* aadd( b_, { "Revert to Saved" , "R" , "NO", "NO" , "YES", "", '::revertToSaved()' , "" , "", "" } )
aadd( b_, { "Find Dialog" , "F" , "NO", "YES", "NO" , "", '::findDlg()' , "find" , "", "" } )
aadd( b_, { "Find Again" , "N" , "NO", "YES", "NO" , "", '::findAgain()' , "" , "", "" } )
aadd( b_, { "Replace" , "R" , "NO", "YES", "NO" , "", '::replace()' , "" , "", "" } )
aadd( b_, { "Find Dialog Ex" , "F" , "NO", "YES", "YES", "", '::findDlgEx()' , "find" , "", "" } )
aadd( b_, { "Goto Line" , "G" , "NO", "YES", "NO" , "", '::gotoLine()' , "gotoline" , "", "" } )

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

View File

@@ -154,6 +154,7 @@ METHOD XbpToolbar:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oWidget := QToolBar():new( ::oParent:oWidget )
::oWidget:setObjectName( "XBPTOOLBARMAIN" )
::oWidget:setWindowTitle( "Toolbar: Main" )
::oParent:oWidget:addToolBar_1( ::oWidget )
IF ::imageWidth > 0 .and. ::imageHeight > 0
@@ -295,8 +296,8 @@ METHOD XbpToolbar:execSlot( cSlot, p )
IF cSlot == "triggered(bool)"
::buttonClick( p )
ENDIF
ENDIF
RETURN NIL
/*----------------------------------------------------------------------*/
@@ -363,7 +364,7 @@ METHOD XbpToolbar:buttonClick( ... )
::sl_lbClick := a_[ 1 ]
ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbClick )
eval( ::sl_lbClick, a_[ 1 ], NIL, Self )
ENDIF
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
@@ -374,7 +375,7 @@ METHOD XbpToolbar:change( ... )
::sl_change := a_[ 1 ]
ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_change )
eval( ::sl_change, NIL, NIL, Self )
ENDIF
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
@@ -385,7 +386,7 @@ METHOD XbpToolbar:buttonMenuClick( ... )
::sl_buttonMenuClick := a_[ 1 ]
ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_buttonMenuClick )
eval( ::sl_buttonMenuClick, NIL, NIL, Self )
ENDIF
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/
@@ -396,7 +397,7 @@ METHOD XbpToolbar:buttonDropDown( ... )
::sl_buttonDropDown := a_[ 1 ]
ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_buttonDropDown )
eval( ::sl_buttonDropDown, NIL, NIL, Self )
ENDIF
ENDIF
RETURN Self
/*----------------------------------------------------------------------*/