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