diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index dddf086982..24e3c2d350 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -17,6 +17,26 @@
past entries belonging to author(s): Viktor Szakats.
*/
+2010-02-18 05:58 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
+ + contrib/hbide/resources/searchreplacepanel.ui
+ + contrib/hbide/resources/searchreplacepanel.uic
+
+ * contrib/hbide/ideactions.prg
+ * contrib/hbide/idedocks.prg
+ * contrib/hbide/ideeditor.prg
+ * contrib/hbide/idefindreplace.prg
+ * contrib/hbide/ideobject.prg
+ * contrib/hbide/idestylesheets.prg
+ + Prepared to use panel instead of "Replace/Find" dialog.
+ ! Vaiables name uniformity for docking widgets.
+ ! Simplification and centralization of creation of "Docking" widgets.
+ % Fixed to not crash when "Find in Files" was not called before exit.
+
+ ; Press CTRL+F and see a panel appearing inbetween editor and statusbar.
+ This widget has to be matured a little and will facilitate that
+ search and replace action will never hide any part of the
+ editing area. A final ( uptil now ) reform in user-interface.
+
2010-02-18 10:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/extrap.c
+ Added OS/2 CPU dump (x86).
diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg
index c4d119307d..249e674d3b 100644
--- a/harbour/contrib/hbide/ideactions.prg
+++ b/harbour/contrib/hbide/ideactions.prg
@@ -580,7 +580,7 @@ METHOD IdeActions:buildMainMenu()
oSubMenu:addItem( { oSubMenu2, NIL } )
hbide_menuAddSep( oSubMenu )
oMenuBar:addItem( { oSubMenu, NIL } )
- oSubMenu:oWidget:addAction_4( ::oSkeltn:oWidget:toggleViewAction() )
+ oSubMenu:oWidget:addAction_4( ::oSkeltnDock:oWidget:toggleViewAction() )
/*----------------------------------------------------------------------------*/
/* Docks */
@@ -592,9 +592,9 @@ METHOD IdeActions:buildMainMenu()
oSubMenu:oWidget:addAction_4( ::oDockED:oWidget:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::oDockPT:oWidget:toggleViewAction() )
- oSubMenu:oWidget:addAction_4( ::oDockR:oWidget:toggleViewAction() )
- oSubMenu:oWidget:addAction_4( ::oHelp:oWidget:toggleViewAction() )
- oSubMenu:oWidget:addAction_4( ::oSkeltn:oWidget:toggleViewAction() )
+ oSubMenu:oWidget:addAction_4( ::oFuncDock:oWidget:toggleViewAction() )
+ oSubMenu:oWidget:addAction_4( ::oHelpDock:oWidget:toggleViewAction() )
+ oSubMenu:oWidget:addAction_4( ::oSkeltnDock:oWidget:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::oThemesDock:oWidget:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::oEnvironDock:oWidget:toggleViewAction() )
oSubMenu:oWidget:addAction_4( ::oPropertiesDock:oWidget:toggleViewAction() )
diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg
index a5d6a5f53b..bab628cbb5 100644
--- a/harbour/contrib/hbide/idedocks.prg
+++ b/harbour/contrib/hbide/idedocks.prg
@@ -89,6 +89,7 @@ CLASS IdeDocks INHERIT IdeObject
METHOD buildDialog()
METHOD buildViewWidget()
METHOD buildStackedWidget()
+ METHOD buildSearchReplaceWidget()
METHOD buildDockWidgets()
METHOD buildProjectTree()
METHOD buildEditorTree()
@@ -97,7 +98,6 @@ CLASS IdeDocks INHERIT IdeObject
METHOD buildLinkResults()
METHOD buildOutputResults()
METHOD buildFindInFiles()
- METHOD buildGenericDock()
METHOD buildThemesDock()
METHOD buildPropertiesDock()
METHOD buildEnvironDock()
@@ -112,6 +112,7 @@ CLASS IdeDocks INHERIT IdeObject
METHOD execSkeleton( nMode, p )
METHOD addPanelButton( cPanel )
METHOD disblePanelButton( qTBtn )
+ METHOD getADockWidget( nArea, cObjectName, cWindowTitle )
ENDCLASS
@@ -156,32 +157,61 @@ METHOD IdeDocks:destroy()
qTBtn := NIL
NEXT
-
RETURN Self
/*----------------------------------------------------------------------*/
-METHOD IdeDocks:buildDockWidgets()
+METHOD IdeDocks:getADockWidget( nArea, cObjectName, cWindowTitle )
+ LOCAL oDock
+
+ oDock := XbpWindow():new()
+ oDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
+ oDock:oWidget:setObjectName( cObjectName )
+ ::oDlg:addChild( oDock )
+ oDock:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
+ oDock:oWidget:setAllowedAreas( nArea )
+ oDock:oWidget:setWindowTitle( cWindowTitle )
+ oDock:oWidget:setFocusPolicy( Qt_NoFocus )
+ oDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
+ oDock:hide()
+
+ oDock:hbLayout := HBPLAYOUT_TYPE_VERTBOX
+ oDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
+
+ RETURN oDock
+
+/*----------------------------------------------------------------------*/
+
+ METHOD IdeDocks:buildDockWidgets()
::buildToolBarPanels()
::buildProjectTree()
::buildEditorTree()
+
::buildFuncList()
- ::buildCompileResults()
- ::buildLinkResults()
- ::buildOutputResults()
+
::buildHelpWidget()
::buildSkeletonWidget()
::buildFindInFiles()
- ::buildGenericDock()
::buildThemesDock()
::buildPropertiesDock()
::buildEnvironDock()
+ ::buildCompileResults()
+ ::buildLinkResults()
+ ::buildOutputResults()
+
::oDlg:oWidget:tabifyDockWidget( ::oDockB:oWidget , ::oDockB1:oWidget )
::oDlg:oWidget:tabifyDockWidget( ::oDockB1:oWidget, ::oDockB2:oWidget )
+ ::oDlg:oWidget:tabifyDockWidget( ::oHelpDock:oWidget , ::oSkeltnDock:oWidget )
+ ::oDlg:oWidget:tabifyDockWidget( ::oSkeltnDock:oWidget , ::oFindDock:oWidget )
+ ::oDlg:oWidget:tabifyDockWidget( ::oFindDock:oWidget , ::oThemesDock:oWidget )
+ ::oDlg:oWidget:tabifyDockWidget( ::oThemesDock:oWidget , ::oPropertiesDock:oWidget )
+ ::oDlg:oWidget:tabifyDockWidget( ::oPropertiesDock:oWidget, ::oEnvironDock:oWidget )
+ ::oDlg:oWidget:tabifyDockWidget( ::oEnvironDock:oWidget , ::oFuncDock:oWidget )
+
RETURN Self
/*----------------------------------------------------------------------*/
@@ -226,21 +256,6 @@ METHOD IdeDocks:execEvent( nMode, p )
/*----------------------------------------------------------------------*/
-METHOD IdeDocks:buildStackedWidget()
-
- /* Its parent will be drawing area and pages will be XbpTabWidgets() */
-
- ::oIde:oStackedWidget := XbpWindow():new( ::oDa )
- ::oStackedWidget:oWidget := QStackedWidget():new( ::oDa:oWidget )
- ::oStackedWidget:oWidget:setObjectName( "myStackedWidget" )
- ::oDa:addChild( ::oStackedWidget )
-
- ::oStackedWidget:connect( ::oStackedWidget:oWidget, "currentChanged(int)", {|p| ::execEvent( 1, p ) } )
-
- RETURN Self
-
-/*----------------------------------------------------------------------*/
-
METHOD IdeDocks:buildDialog()
LOCAL s
@@ -282,6 +297,8 @@ METHOD IdeDocks:buildDialog()
::buildStackedWidget()
::qLayout:addWidget_1( ::oStackedWidget:oWidget, 0, 0, 1, 1 )
+ ::buildSearchReplaceWidget()
+ ::qLayout:addWidget_1( ::oSearchReplace:oUI, 1, 0, 1, 1 )
/* View Panels */
::buildViewWidget() /* Main */
@@ -296,6 +313,30 @@ METHOD IdeDocks:buildDialog()
/*----------------------------------------------------------------------*/
+METHOD IdeDocks:buildStackedWidget()
+
+ /* Its parent will be drawing area and pages will be XbpTabWidgets() */
+
+ ::oIde:oStackedWidget := XbpWindow():new( ::oDa )
+ ::oStackedWidget:oWidget := QStackedWidget():new( ::oDa:oWidget )
+ ::oStackedWidget:oWidget:setObjectName( "myStackedWidget" )
+ ::oDa:addChild( ::oStackedWidget )
+
+ ::oStackedWidget:connect( ::oStackedWidget:oWidget, "currentChanged(int)", {|p| ::execEvent( 1, p ) } )
+
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeDocks:buildSearchReplaceWidget()
+
+ ::oIde:oSearchReplace := IdeSearchReplace():new( ::oIde ):create()
+ ::oSearchReplace:oUI:hide()
+
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
METHOD IdeDocks:buildViewWidget()
LOCAL n := len( ::aViews ) + 1
LOCAL oFrame
@@ -607,35 +648,18 @@ METHOD IdeDocks:buildEditorTree()
METHOD IdeDocks:buildFuncList()
- ::oIde:oDockR := XbpWindow():new()
- ::oDockR:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oDockR:oWidget:setObjectName( "dockFuncList" )
- ::oDlg:addChild( ::oDockR )
- ::oDockR:oWidget:setFeatures( QDockWidget_DockWidgetClosable + QDockWidget_DockWidgetMovable )
- ::oDockR:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oDockR:oWidget:setWindowTitle( "Functions List" )
- ::oDockR:oWidget:setFocusPolicy( Qt_NoFocus )
+ ::oIde:oFuncDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockFuncList", "Functions List" )
- ::oIde:oFuncList := XbpListBox():new( ::oDockR ):create( , , { 0,0 }, { 100,400 }, , .t. )
+ ::oIde:oFuncList := XbpListBox():new( ::oFuncDock ):create( , , { 0,0 }, { 100,400 }, , .t. )
+ ::oFuncList:oWidget:setEditTriggers( QAbstractItemView_NoEditTriggers )
//::oFuncList:ItemMarked := {|mp1, mp2, oXbp| ::gotoFunction( mp1, mp2, oXbp ) }
::oFuncList:ItemSelected := {|mp1, mp2, oXbp| ::oIde:gotoFunction( mp1, mp2, oXbp ) }
/* Harbour Extension : prefixed with "hb" */
::oFuncList:hbContextMenu := {|mp1, mp2, oXbp| ::oIde:manageFuncContext( mp1, mp2, oXbp ) }
- ::oFuncList:oWidget:setEditTriggers( QAbstractItemView_NoEditTriggers )
-
- ::oDockR:oWidget:setWidget( ::oFuncList:oWidget )
-
- ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oDockR:oWidget, Qt_Vertical )
-
- IF ::oIde:aIni[ INI_HBIDE, FunctionListVisible ] == "YES"
- ::oIde:lDockRVisible := .t.
- //::setSizeAndPosByIni( ::oDockR:oWidget, FunctionListGeometry )
- ELSE
- ::oIde:lDockRVisible := .f.
- ::oDockR:hide()
- ENDIF
+ ::oFuncDock:oWidget:setWidget( ::oFuncList:oWidget )
+ ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFuncDock:oWidget, Qt_Vertical )
RETURN Self
@@ -646,20 +670,11 @@ METHOD IdeDocks:buildHelpWidget()
qUrl := QUrl():new( "idemainpage.html" )
qStr := QStringList():new()
- //qStr:append( "./" )
qStr:append( hb_dirBase() + "docs" )
- ::oIde:oHelp := XbpWindow():new()
- ::oHelp:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oHelp:oWidget:setObjectName( "dockHelp" )
- ::oDlg:addChild( ::oHelp )
- ::oHelp:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
- ::oHelp:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oHelp:oWidget:setWindowTitle( "hbIDE Help" )
- ::oHelp:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oHelp:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
+ ::oIde:oHelpDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockHelp", "hbIDE Help" )
- ::oIde:qHelpBrw := QTextBrowser():new( ::oHelp:oWidget )
+ ::oIde:qHelpBrw := QTextBrowser():new( ::oHelpDock:oWidget )
::qHelpBrw:show()
::qHelpBrw:setContextMenuPolicy( Qt_CustomContextMenu )
::qHelpBrw:setOpenExternalLinks( .t. )
@@ -667,14 +682,10 @@ METHOD IdeDocks:buildHelpWidget()
::qHelpBrw:setSearchPaths( qStr )
::qHelpBrw:setSource( qUrl )
- ::oHelp:oWidget:setWidget( ::oIde:qHelpBrw )
+ ::oHelpDock:oWidget:setWidget( ::oIde:qHelpBrw )
+ ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oHelpDock:oWidget, Qt_Horizontal )
- ::oHelp:connect( ::qHelpBrw, "customContextMenuRequested(QPoint)", {|p| ::execEvent( 2, p ) } )
-
- // ::oHelp:connect( ::qHelpBrw )
-
- ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oHelp:oWidget, Qt_Horizontal )
- ::oHelp:hide()
+ ::oHelpDock:connect( ::qHelpBrw, "customContextMenuRequested(QPoint)", {|p| ::execEvent( 2, p ) } )
RETURN Self
@@ -732,6 +743,7 @@ METHOD IdeDocks:buildOutputResults()
::oDockB2:oWidget:setAllowedAreas( Qt_BottomDockWidgetArea )
::oDockB2:oWidget:setWindowTitle( "Output Console" )
::oDockB2:oWidget:setFocusPolicy( Qt_NoFocus )
+ ::oDockB2:hide()
::oIde:oOutputResult := XbpRtf():new( ::oDockB2 ):create( , , { 0,0 }, { 100, 400 }, , .T. )
::oOutputResult:oWidget:setAcceptRichText( .T. )
@@ -740,7 +752,6 @@ METHOD IdeDocks:buildOutputResults()
::oDockB2:oWidget:setWidget( ::oOutputResult:oWidget )
::oDlg:oWidget:addDockWidget_1( Qt_BottomDockWidgetArea, ::oDockB2:oWidget, Qt_Horizontal )
- ::oDockB2:hide()
::connect( ::oIde:oOutputResult:oWidget, "copyAvailable(bool)", {|l| ::outputDoubleClicked( l ) } )
@@ -890,9 +901,9 @@ METHOD IdeDocks:toggleLeftDocks()
METHOD IdeDocks:toggleRightDocks()
IF ::lDockRVisible
- ::oDockR:hide()
+ ::oFuncDock:hide()
ELSE
- ::oDockR:show()
+ ::oFuncDock:show()
ENDIF
::oIde:lDockRVisible := !( ::lDockRVisible )
@@ -920,22 +931,22 @@ METHOD IdeDocks:toggleBottomDocks()
METHOD IdeDocks:buildSkeletonWidget()
LOCAL oUI
- ::oIde:oSkeltn := XbpWindow():new()
- ::oSkeltn:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oSkeltn:oWidget:setObjectName( "dockSkeleton" )
- ::oDlg:addChild( ::oSkeltn )
- ::oSkeltn:oWidget:setFeatures( QDockWidget_DockWidgetClosable + QDockWidget_DockWidgetFloatable + ;
- QDockWidget_DockWidgetVerticalTitleBar )
- ::oSkeltn:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oSkeltn:oWidget:setWindowTitle( "Code Skeletons" )
- ::oSkeltn:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oSkeltn:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
+ ::oIde:oSkeltnDock := XbpWindow():new()
+ ::oSkeltnDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
+ ::oSkeltnDock:oWidget:setObjectName( "dockSkeleton" )
+ ::oDlg:addChild( ::oSkeltnDock )
+ ::oSkeltnDock:oWidget:setFeatures( QDockWidget_DockWidgetClosable + QDockWidget_DockWidgetFloatable )
+ ::oSkeltnDock:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
+ ::oSkeltnDock:oWidget:setWindowTitle( "Code Skeletons" )
+ ::oSkeltnDock:oWidget:setFocusPolicy( Qt_NoFocus )
+ ::oSkeltnDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
+ ::oSkeltnDock:hide()
- ::oIde:oSkeltnUI := HbQtUI():new( ::oIde:resPath + "skeletons.uic", ::oSkeltn:oWidget ):build()
+ ::oIde:oSkeltnUI := HbQtUI():new( ::oIde:resPath + "skeletons.uic", ::oSkeltnDock:oWidget ):build()
- ::oSkeltn:oWidget:setWidget( ::oIde:oSkeltnUI:oWidget )
+ ::oSkeltnDock:oWidget:setWidget( ::oIde:oSkeltnUI:oWidget )
- ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oSkeltn:oWidget, Qt_Horizontal )
+ ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oSkeltnDock:oWidget, Qt_Horizontal )
oUI := ::oIde:oSkeltnUI
@@ -953,8 +964,6 @@ METHOD IdeDocks:buildSkeletonWidget()
//::oSkeltnUI:q_editCode:setFont( ::oFont:oWidget )
aeval( ::aSkltns, {|e_| ::oSkeltnUI:q_listNames:addItem( e_[ 1 ] ) } )
- ::oSkeltn:hide()
-
RETURN Self
/*----------------------------------------------------------------------*/
@@ -1019,92 +1028,28 @@ METHOD IdeDocks:execSkeleton( nMode, p )
/*----------------------------------------------------------------------*/
-METHOD IdeDocks:buildGenericDock()
-
- ::oIde:oGeneral := XbpWindow():new()
- ::oGeneral:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oGeneral:oWidget:setObjectName( "General Purpose Dock" )
- ::oDlg:addChild( ::oGeneral )
- //::oGeneral:oWidget:setFeatures( QDockWidget_DockWidgetVerticalTitleBar )
- ::oGeneral:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oGeneral:oWidget:setWindowTitle( "Generic" )
- ::oGeneral:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oGeneral:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
-
- ::oGeneral:hbLayout := HBPLAYOUT_TYPE_HORZBOX
- ::oGeneral:qLayout:setContentsMargins( 2, 2, 2, 2 )
-
- ::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oGeneral:oWidget, Qt_Horizontal )
-
- ::oGeneral:hide()
-
- RETURN Self
-
-/*----------------------------------------------------------------------*/
-
METHOD IdeDocks:buildThemesDock()
- ::oIde:oThemesDock := XbpWindow():new()
- ::oThemesDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oThemesDock:oWidget:setObjectName( "Editor Themes" )
- ::oDlg:addChild( ::oThemesDock )
- ::oThemesDock:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
- ::oThemesDock:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oThemesDock:oWidget:setWindowTitle( "Editor Themes" )
- ::oThemesDock:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oThemesDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
-
- ::oThemesDock:hbLayout := HBPLAYOUT_TYPE_VERTBOX
- ::oThemesDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
-
+ ::oIde:oThemesDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockThemes", "Editor Themes" )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oThemesDock:oWidget, Qt_Horizontal )
- ::oThemesDock:hide()
-
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildPropertiesDock()
- ::oIde:oPropertiesDock := XbpWindow():new()
- ::oPropertiesDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oPropertiesDock:oWidget:setObjectName( "Project Properties" )
- ::oDlg:addChild( ::oPropertiesDock )
- ::oPropertiesDock:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
- ::oPropertiesDock:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oPropertiesDock:oWidget:setWindowTitle( "Project Properties" )
- ::oPropertiesDock:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oPropertiesDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
-
- ::oPropertiesDock:hbLayout := HBPLAYOUT_TYPE_VERTBOX
- ::oPropertiesDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
-
+ ::oIde:oPropertiesDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockProperties", "Project Properties" )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oPropertiesDock:oWidget, Qt_Horizontal )
- ::oPropertiesDock:hide()
-
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:buildEnvironDock()
- ::oIde:oEnvironDock := XbpWindow():new()
- ::oEnvironDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oEnvironDock:oWidget:setObjectName( "Compiler Environments" )
- ::oDlg:addChild( ::oEnvironDock )
- ::oEnvironDock:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
- ::oEnvironDock:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oEnvironDock:oWidget:setWindowTitle( "Compiler Environments" )
- ::oEnvironDock:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oEnvironDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
-
- ::oEnvironDock:hbLayout := HBPLAYOUT_TYPE_HORZBOX
- ::oEnvironDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
-
+ ::oIde:oEnvironDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockEnvironments", "Compiler Environments" )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oEnvironDock:oWidget, Qt_Horizontal )
- ::oEnvironDock:hide()
RETURN Self
@@ -1112,21 +1057,8 @@ METHOD IdeDocks:buildEnvironDock()
METHOD IdeDocks:buildFindInFiles()
- ::oIde:oFindDock := XbpWindow():new()
- ::oFindDock:oWidget := QDockWidget():new( ::oDlg:oWidget )
- ::oFindDock:oWidget:setObjectName( "Find In Files" )
- ::oDlg:addChild( ::oFindDock )
- ::oFindDock:oWidget:setFeatures( QDockWidget_DockWidgetClosable )
- ::oFindDock:oWidget:setAllowedAreas( Qt_RightDockWidgetArea )
- ::oFindDock:oWidget:setWindowTitle( "Find In Files" )
- ::oFindDock:oWidget:setFocusPolicy( Qt_NoFocus )
- ::oFindDock:oWidget:setStyleSheet( getStyleSheet( "QDockWidget" ) )
-
- ::oFindDock:hbLayout := HBPLAYOUT_TYPE_HORZBOX
- ::oFindDock:qLayout:setContentsMargins( 2, 2, 2, 2 )
-
+ ::oIde:oFindDock := ::getADockWidget( Qt_RightDockWidgetArea, "dockFindInFiles", "Find in Files" )
::oDlg:oWidget:addDockWidget_1( Qt_RightDockWidgetArea, ::oFindDock:oWidget, Qt_Horizontal )
- ::oFindDock:hide()
RETURN Self
diff --git a/harbour/contrib/hbide/ideeditor.prg b/harbour/contrib/hbide/ideeditor.prg
index cded75edc0..5b158910dd 100644
--- a/harbour/contrib/hbide/ideeditor.prg
+++ b/harbour/contrib/hbide/ideeditor.prg
@@ -1120,7 +1120,7 @@ hbide_dbg( "IdeEditor:destroy()", 0, ::sourceFile )
IF ::qTabWidget:count() == 0
IF ::lDockRVisible
- ::oDockR:hide()
+ ::oFuncDock:hide()
::oIde:lDockRVisible := .f.
ENDIF
ENDIF
diff --git a/harbour/contrib/hbide/idefindreplace.prg b/harbour/contrib/hbide/idefindreplace.prg
index 3cdaf71fdc..0b1f299137 100644
--- a/harbour/contrib/hbide/idefindreplace.prg
+++ b/harbour/contrib/hbide/idefindreplace.prg
@@ -71,6 +71,37 @@
/*----------------------------------------------------------------------*/
+CLASS IdeSearchReplace INHERIT IdeObject
+
+ METHOD new( oIde )
+ METHOD create( oIde )
+
+ ENDCLASS
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeSearchReplace:new( oIde )
+
+ ::oIde := oIde
+
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeSearchReplace:create( oIde )
+
+ DEFAULT oIde TO ::oIde
+
+ ::oIde := oIde
+
+ ::oUI := HbQtUI():new( ::oIde:resPath + "searchreplacepanel.uic", ::oIde:oDlg:oWidget ):build()
+
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+// IdeFindReplace
+/*----------------------------------------------------------------------*/
+
CLASS IdeFindReplace INHERIT IdeObject
METHOD new( oIde )
@@ -126,7 +157,8 @@ METHOD IdeFindReplace:create( oIde )
::oUI:signal( "buttonFind" , "clicked()", {|| ::onClickFind() } )
::oUI:signal( "buttonReplace", "clicked()", {|| ::onClickReplace() } )
::oUI:signal( "buttonClose" , "clicked()", ;
- {|| ::oIde:aIni[ INI_HBIDE, FindDialogGeometry ] := hbide_posAndSize( ::oUI:oWidget ), ::oUI:hide() } )
+ {|| ::oIde:aIni[ INI_HBIDE, FindDialogGeometry ] := hbide_posAndSize( ::oUI:oWidget ), ;
+ ::oUI:hide(), ::oSearchReplace:oUI:hide() } )
::oUI:signal( "comboFindWhat", "editTextChanged(text)", {|| ::oUI:q_radioEntire:setChecked( .t. ) } )
@@ -144,6 +176,8 @@ METHOD IdeFindReplace:create( oIde )
METHOD IdeFindReplace:show()
LOCAL cText, qLineEdit
+ ::oSearchReplace:oUI:show()
+
::oUI:q_buttonReplace:setEnabled( .f. )
::oUI:q_checkGlobal:setEnabled( .f. )
::oUI:q_checkNoPrompting:setEnabled( .f. )
@@ -667,13 +701,13 @@ METHOD IdeFindInFiles:execContextMenu( p )
METHOD IdeFindInFiles:destroy()
LOCAL qItem
- ::disconnect( ::oUI:oWidget, "rejected()" )
+ IF !empty( ::oUI )
+ ::disconnect( ::oUI:oWidget, "rejected()" )
- FOR EACH qItem IN ::aItems
- qItem := NIL
- NEXT
-
- //::oUI:destroy()
+ FOR EACH qItem IN ::aItems
+ qItem := NIL
+ NEXT
+ ENDIF
RETURN Self
@@ -808,7 +842,7 @@ METHOD IdeFindInFiles:find()
ENDIF
ENDIF
- IF !empty( cFolder )
+ IF ::oUI:q_checkFolders:isChecked() .AND. ! empty( cFolder )
::showLog( LOG_SECTION, "Folders" )
IF !empty( aFolderSrc )
::showLog( LOG_SECTION_ITEM, "Folder: " + cFolder )
diff --git a/harbour/contrib/hbide/ideobject.prg b/harbour/contrib/hbide/ideobject.prg
index 4b7220fdfa..8ff6160366 100644
--- a/harbour/contrib/hbide/ideobject.prg
+++ b/harbour/contrib/hbide/ideobject.prg
@@ -153,7 +153,7 @@ CLASS IdeObject
ACCESS oDockED INLINE ::oIde:oDockED
ACCESS oEditTree INLINE ::oIde:oEditTree
ACCESS oOpenedSources INLINE ::oIde:oOpenedSources
- ACCESS oDockR INLINE ::oIde:oDockR
+ ACCESS oFuncDock INLINE ::oIde:oFuncDock
ACCESS oFuncList INLINE ::oIde:oFuncList
ACCESS oDockB INLINE ::oIde:oDockB
ACCESS oCompileResult INLINE ::oIde:oCompileResult
@@ -163,13 +163,14 @@ CLASS IdeObject
ACCESS oOutputResult INLINE ::oIde:oOutputResult
ACCESS oStackedWidget INLINE ::oIde:oStackedWidget
ACCESS oFrame INLINE ::oIde:oFrame
- ACCESS oHelp INLINE ::oIde:oHelp
- ACCESS oSkeltn INLINE ::oIde:oSkeltn
+ ACCESS oHelpDock INLINE ::oIde:oHelpDock
+ ACCESS oSkeltnDock INLINE ::oIde:oSkeltnDock
ACCESS oSkeltnUI INLINE ::oIde:oSkeltnUI
ACCESS oGeneral INLINE ::oIde:oGeneral
ACCESS oThemesDock INLINE ::oIde:oThemesDock
ACCESS oPropertiesDock INLINE ::oIde:oPropertiesDock
ACCESS oEnvironDock INLINE ::oIde:oEnvironDock
+ ACCESS oSearchReplace INLINE ::oIde:oSearchReplace
ACCESS lProjTreeVisible INLINE ::oIde:lProjTreeVisible
ACCESS lDockRVisible INLINE ::oIde:lDockRVisible
diff --git a/harbour/contrib/hbide/idestylesheets.prg b/harbour/contrib/hbide/idestylesheets.prg
index d3595eff98..9ba13793bf 100644
--- a/harbour/contrib/hbide/idestylesheets.prg
+++ b/harbour/contrib/hbide/idestylesheets.prg
@@ -309,11 +309,12 @@ FUNCTION GetStyleSheet( cWidget )
aadd( txt_, 'QDockWidget { ' )
aadd( txt_, ' border: 1px solid darkgray; ' )
aadd( txt_, ' } ' )
- //aadd( txt_, 'QDockWidget::title { ' )
- //aadd( txt_, ' text-align: left; /* align the text to the left */ ' )
- //aadd( txt_, ' background: darkgray; ' )
- //aadd( txt_, ' padding-left: 5px; ' )
- //aadd( txt_, ' } ' )
+ aadd( txt_, 'QDockWidget::title { ' )
+ aadd( txt_, ' background-color: qlineargradient(x1:0, y1:1, x2:0, y2:0, ' )
+ aadd( txt_, ' stop:0 lightgray, stop:1 darkgray); ' )
+ aadd( txt_, ' padding-left: 10px; ' )
+ aadd( txt_, ' padding-top: 3px; ' )
+ aadd( txt_, ' } ' )
ENDCASE
diff --git a/harbour/contrib/hbide/resources/searchreplacepanel.ui b/harbour/contrib/hbide/resources/searchreplacepanel.ui
new file mode 100644
index 0000000000..599d596055
--- /dev/null
+++ b/harbour/contrib/hbide/resources/searchreplacepanel.ui
@@ -0,0 +1,103 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 572
+ 38
+
+
+
+ Form
+
+
+ border-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));
+
+
+ -
+
+
+ ...
+
+
+
+ -
+
+
+
+ 25
+ 16777215
+
+
+
+ Find:
+
+
+
+ -
+
+
+
+ 200
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+
+ -
+
+
+ ...
+
+
+
+ -
+
+
+ ...
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 200
+ 0
+
+
+
+
+ 200
+ 16777215
+
+
+
+
+
+
+
+
+
diff --git a/harbour/contrib/hbide/resources/searchreplacepanel.uic b/harbour/contrib/hbide/resources/searchreplacepanel.uic
new file mode 100644
index 0000000000..d51e7687bf
--- /dev/null
+++ b/harbour/contrib/hbide/resources/searchreplacepanel.uic
@@ -0,0 +1,110 @@
+/********************************************************************************
+** Form generated from reading ui file 'searchreplacepanel.ui'
+**
+** Created: Thu Feb 18 05:42:14 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 SEARCHREPLACEPANEL_H
+#define SEARCHREPLACEPANEL_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+
+class Ui_Form
+{
+public:
+ QHBoxLayout *horizontalLayout;
+ QToolButton *buttonClose;
+ QLabel *label;
+ QComboBox *comboBox;
+ QToolButton *toolButton_2;
+ QToolButton *toolButton_3;
+ QSpacerItem *horizontalSpacer;
+ QComboBox *comboBox_2;
+
+ void setupUi(QWidget *Form)
+ {
+ if (Form->objectName().isEmpty())
+ Form->setObjectName(QString::fromUtf8("Form"));
+ Form->resize(572, 38);
+ Form->setStyleSheet(QString::fromUtf8("border-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));"));
+ horizontalLayout = new QHBoxLayout(Form);
+ horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+ buttonClose = new QToolButton(Form);
+ buttonClose->setObjectName(QString::fromUtf8("buttonClose"));
+
+ horizontalLayout->addWidget(buttonClose);
+
+ label = new QLabel(Form);
+ label->setObjectName(QString::fromUtf8("label"));
+ label->setMaximumSize(QSize(25, 16777215));
+
+ horizontalLayout->addWidget(label);
+
+ comboBox = new QComboBox(Form);
+ comboBox->setObjectName(QString::fromUtf8("comboBox"));
+ comboBox->setMinimumSize(QSize(200, 0));
+ comboBox->setMaximumSize(QSize(100, 16777215));
+
+ horizontalLayout->addWidget(comboBox);
+
+ toolButton_2 = new QToolButton(Form);
+ toolButton_2->setObjectName(QString::fromUtf8("toolButton_2"));
+
+ horizontalLayout->addWidget(toolButton_2);
+
+ toolButton_3 = new QToolButton(Form);
+ toolButton_3->setObjectName(QString::fromUtf8("toolButton_3"));
+
+ horizontalLayout->addWidget(toolButton_3);
+
+ horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ horizontalLayout->addItem(horizontalSpacer);
+
+ comboBox_2 = new QComboBox(Form);
+ comboBox_2->setObjectName(QString::fromUtf8("comboBox_2"));
+ comboBox_2->setMinimumSize(QSize(200, 0));
+ comboBox_2->setMaximumSize(QSize(200, 16777215));
+
+ horizontalLayout->addWidget(comboBox_2);
+
+
+ retranslateUi(Form);
+
+ QMetaObject::connectSlotsByName(Form);
+ } // setupUi
+
+ void retranslateUi(QWidget *Form)
+ {
+ Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8));
+ buttonClose->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8));
+ label->setText(QApplication::translate("Form", "Find:", 0, QApplication::UnicodeUTF8));
+ toolButton_2->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8));
+ toolButton_3->setText(QApplication::translate("Form", "...", 0, QApplication::UnicodeUTF8));
+ Q_UNUSED(Form);
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class Form: public Ui_Form {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // SEARCHREPLACEPANEL_H