From 358c17236062d41c7cc0d66a0e9657ba148ca83b Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Sat, 18 Jun 2011 01:36:48 +0000 Subject: [PATCH] 2011-06-17 18:29 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/ideactions.prg * contrib/hbide/idedocks.prg * contrib/hbide/ideedit.prg * contrib/hbide/idefindreplace.prg * contrib/hbide/idehome.prg * contrib/hbide/idemain.prg * contrib/hbide/idesaveload.prg * Changed: the way "Stats" window was implemented in the parallel with edit instances. Now it is an independent "Qt_Sheet" window which can be activated with "Welcome" main toolbar icon. This has cleaned the editing environment. - Removed: non-mdi protocol for editing areas. It is now only one. This has simplified the code considerably and has also cleaned the ambiguity. ! Fixed: first-timer visual glitch which was presenting the two MDI windows side-by-side, "Stats" and "Main". --- harbour/ChangeLog | 20 + harbour/contrib/hbide/ideactions.prg | 35 +- harbour/contrib/hbide/idedocks.prg | 518 +++++++---------------- harbour/contrib/hbide/ideedit.prg | 45 +- harbour/contrib/hbide/idefindreplace.prg | 24 +- harbour/contrib/hbide/idehome.prg | 63 ++- harbour/contrib/hbide/idemain.prg | 10 +- harbour/contrib/hbide/idesaveload.prg | 13 +- 8 files changed, 256 insertions(+), 472 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c70e212b76..dc614c2a01 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,26 @@ The license applies to all entries newer than 2009-04-28. */ +2011-06-17 18:29 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/ideactions.prg + * contrib/hbide/idedocks.prg + * contrib/hbide/ideedit.prg + * contrib/hbide/idefindreplace.prg + * contrib/hbide/idehome.prg + * contrib/hbide/idemain.prg + * contrib/hbide/idesaveload.prg + * Changed: the way "Stats" window was implemented in the parallel + with edit instances. Now it is an independent "Qt_Sheet" window + which can be activated with "Welcome" main toolbar icon. + This has cleaned the editing environment. + + - Removed: non-mdi protocol for editing areas. It is now only one. + This has simplified the code considerably and has also cleaned + the ambiguity. + + ! Fixed: first-timer visual glitch which was presenting the two + MDI windows side-by-side, "Stats" and "Main". + 2011-06-17 12:18 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/setup.ui * contrib/hbide/ideedit.prg diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg index 4b7b552089..6c9293b19a 100644 --- a/harbour/contrib/hbide/ideactions.prg +++ b/harbour/contrib/hbide/ideactions.prg @@ -351,31 +351,8 @@ METHOD IdeActions:buildToolBar() oTBar:addItem( ::getAction( "TB_Rebuild" ), , , , , , "Rebuild" ) oTBar:addItem( ::getAction( "TB_RebuildLaunch" ), , , , , , "RebuildLaunch" ) oTBar:addItem( , , , , , nSep ) - IF ! ::oIde:lCurEditsMdi - oTBar:addItem( ::getAction( "TB_Undo" ), , , , , , "Undo" ) - oTBar:addItem( ::getAction( "TB_Redo" ), , , , , , "Redo" ) - oTBar:addItem( , , , , , nSep ) - oTBar:addItem( ::getAction( "TB_Cut" ), , , , , , "Cut" ) - oTBar:addItem( ::getAction( "TB_Copy" ), , , , , , "Copy" ) - oTBar:addItem( ::getAction( "TB_Paste" ), , , , , , "Paste" ) - oTBar:addItem( ::getAction( "TB_SelectAll" ), , , , , , "SelectAll" ) - oTBar:addItem( ::getAction( "TB_SelectionMode" ), , , , , , "SelectionMode" ) - oTBar:addItem( , , , , , nSep ) - oTBar:addItem( ::getAction( "TB_Find" ), , , , , , "Find" ) - oTBar:addItem( ::getAction( "TB_SetMark" ), , , , , , "SetMark" ) - oTBar:addItem( ::getAction( "TB_Goto" ), , , , , , "Goto" ) - oTBar:addItem( , , , , , nSep ) - oTBar:addItem( ::getAction( "ZoomIn" ), , , , , , "ZoomIn" ) - oTBar:addItem( ::getAction( "ZoomOut" ), , , , , , "ZoomOut" ) - oTBar:addItem( , , , , , nSep ) - ENDIF oTBar:oWidget:addWidget( ::oIde:oTM:buildToolsButton() ) - IF ! ::oIde:lCurEditsMdi - /* Candidate for separate class - though */ - oTBar:oWidget:addWidget( ::oIde:oTM:buildPanelsButton() ) - ENDIF - ::oIde:oMainToolbar := oTBar RETURN Self @@ -541,10 +518,6 @@ METHOD IdeActions:buildMainMenu() oSubMenu:oWidget:addSeparator() oSubMenu:oWidget:addAction( ::oIde:oMainToolbar:oWidget:toggleViewAction() ) - IF ! ::oIde:lCurEditsMdi - oSubMenu:oWidget:addAction( ::qTBarPanels:toggleViewAction() ) - oSubMenu:oWidget:addAction( ::qTBarLines:toggleViewAction() ) - ENDIF oSubMenu:oWidget:addAction( ::qTBarDocks:toggleViewAction() ) ::oIde:qStatusBarAction := QAction( oSubMenu:oWidget ) @@ -577,11 +550,9 @@ METHOD IdeActions:buildMainMenu() oSubMenu:oWidget:addAction( ::oDockB2:oWidget:toggleViewAction() ) * oSubMenu:oWidget:addAction( ::oDockB1:oWidget:toggleViewAction() ) * oSubMenu:oWidget:addAction( ::oDockB:oWidget:toggleViewAction() ) - IF ::oIde:lCurEditsMdi - oSubMenu:oWidget:addSeparator() - oSubMenu:oWidget:addAction( ::oDK:qMdiToolbarL:oWidget:toggleViewAction() ) - oSubMenu:oWidget:addAction( ::oDK:qMdiToolbar:oWidget:toggleViewAction() ) - ENDIF + oSubMenu:oWidget:addSeparator() + oSubMenu:oWidget:addAction( ::oDK:qMdiToolbarL:oWidget:toggleViewAction() ) + oSubMenu:oWidget:addAction( ::oDK:qMdiToolbar:oWidget:toggleViewAction() ) /*----------------------------------------------------------------------------*/ /* Project */ diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index 9380fcf0fb..777d269978 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -85,7 +85,6 @@ CLASS IdeDocks INHERIT IdeObject DATA qMdiToolBar DATA qMdiToolBarL DATA aViewsInfo INIT {} - DATA nViewStyle INIT 0 DATA qTBtnClose @@ -156,8 +155,6 @@ CLASS IdeDocks INHERIT IdeObject METHOD restState( nMode ) METHOD setButtonState( cButton, lChecked ) METHOD buildFormatWidget() - METHOD showStats() - METHOD hideStats() METHOD hideAllDocks() ENDCLASS @@ -342,26 +339,18 @@ METHOD IdeDocks:destroy() METHOD IdeDocks:getEditorPanelsInfo() LOCAL b_, a_:= {} FOR EACH b_ IN ::aViewsInfo - IF ::oIde:lCurEditsMdi - aadd( a_, b_[ 1 ] + "," + ; - iif( empty( b_[ 2 ] ), "", hbide_nArray2String( { b_[ 2 ]:x(), b_[ 2 ]:y(), b_[ 2 ]:width(), b_[ 2 ]:height() } ) ) + "," + ; - hb_ntos( b_[ 3 ] ) + "," + hb_ntos( b_[ 4 ] ) + "," + ; - hb_ntos( ::oStackedWidget:oWidget:viewMode() ) + "," + hb_ntos( ::nViewStyle ) + "," ; - ) - ELSE - aadd( a_, b_[ 1 ] + "," + ; - iif( empty( b_[ 2 ] ), "", hbide_nArray2String( { b_[ 2 ]:x(), b_[ 2 ]:y(), b_[ 2 ]:width(), b_[ 2 ]:height() } ) ) + "," + ; - hb_ntos( b_[ 3 ] ) + "," + hb_ntos( b_[ 4 ] ) + "," + ; - hb_ntos( b_[ 5 ] ) + "," + hb_ntos( b_[ 6 ] ) + "," ; - ) - ENDIF + aadd( a_, b_[ 1 ] + "," + ; + iif( empty( b_[ 2 ] ), "", hbide_nArray2String( { b_[ 2 ]:x(), b_[ 2 ]:y(), b_[ 2 ]:width(), b_[ 2 ]:height() } ) ) + "," + ; + hb_ntos( b_[ 3 ] ) + "," + hb_ntos( b_[ 4 ] ) + "," + ; + hb_ntos( ::oStackedWidget:oWidget:viewMode() ) + "," + hb_ntos( ::oINI:nEditsViewStyle ) + "," ; + ) NEXT RETURN a_ -/*------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------*/ METHOD IdeDocks:buildDialog() - LOCAL s, aSize, a_, lTiled := .t., x_ + LOCAL s, aSize, a_, x_, lNew := .f. ::oIde:oDlg := XbpDialog():new() ::oDlg:icon := hbide_image( "hbide" ) @@ -382,7 +371,7 @@ METHOD IdeDocks:buildDialog() ::oDlg:setCorner( Qt_BottomLeftCorner, Qt_LeftDockWidgetArea ) ::oDlg:setCorner( Qt_BottomRightCorner, Qt_RightDockWidgetArea ) - ::oDlg:oWidget:resize( 950,520 ) + ::oDlg:oWidget:resize( 1000,640 ) ::oIde:oDa := ::oDlg:drawingArea @@ -404,22 +393,14 @@ METHOD IdeDocks:buildDialog() ::oIde:qLayout:setVerticalSpacing( 0 ) // ::oDa:setLayout( ::qLayout ) - - IF ::oIde:lCurEditsMdi - ::buildMdiToolbar() - ::qLayout:addWidget( ::qMdiToolbar:oWidget , 0, 0, 1, 2 ) - ::buildMdiToolbarLeft() - ::qLayout:addWidget( ::qMdiToolbarL:oWidget , 1, 0, 1, 1 ) - ::buildStackedWidget() - ::qLayout:addWidget( ::oStackedWidget:oWidget, 1, 1, 1, 1 ) - ::buildSearchReplaceWidget() - ::qLayout:addWidget( ::oSearchReplace:oUI , 2, 0, 1, 2 ) - ELSE - ::buildStackedWidget() - ::qLayout:addWidget( ::oStackedWidget:oWidget, 0, 0, 1, 1 ) - ::buildSearchReplaceWidget() - ::qLayout:addWidget( ::oSearchReplace:oUI , 1, 0, 1, 1 ) - ENDIF + ::buildMdiToolbar() + ::qLayout:addWidget( ::qMdiToolbar:oWidget , 0, 0, 1, 2 ) + ::buildMdiToolbarLeft() + ::qLayout:addWidget( ::qMdiToolbarL:oWidget , 1, 0, 1, 1 ) + ::buildStackedWidget() + ::qLayout:addWidget( ::oStackedWidget:oWidget, 1, 1, 1, 1 ) + ::buildSearchReplaceWidget() + ::qLayout:addWidget( ::oSearchReplace:oUI , 2, 0, 1, 2 ) /* Normalize Views */ FOR EACH s IN ::oINI:aViews @@ -427,7 +408,6 @@ METHOD IdeDocks:buildDialog() asize( a_, 6 ) IF ! empty( a_[ 2 ] ) a_[ 2 ] := hbide_array2Rect( hbide_string2nArray( a_[ 2 ] ) ) - lTiled := .f. ENDIF DEFAULT a_[ 3 ] TO "0" DEFAULT a_[ 4 ] TO "0" @@ -440,35 +420,41 @@ METHOD IdeDocks:buildDialog() aadd( ::aViewsInfo, a_ ) NEXT IF ascan( ::aViewsInfo, {|e_| e_[ 1 ] == "Main" } ) == 0 + lNew := .t. hb_ains( ::aViewsInfo, 1, { "Main", NIL, 0, 0, QMdiArea_TabbedView, 0 }, .t. ) ENDIF - IF ascan( ::aViewsInfo, {|e_| e_[ 1 ] == "Stats" } ) == 0 - hb_ains( ::aViewsInfo, 1, { "Stats", NIL, 0, 0, QMdiArea_TabbedView, 0 }, .t. ) - ENDIF /* View Panels */ x_:= aclone( ::aViewsInfo ) FOR EACH a_ IN ::aViewsInfo ::buildViewWidget( a_[ 1 ] ) NEXT - IF ::oIde:lCurEditsMdi - IF lTiled - ::oStackedWidget:tileSubWindows() - ENDIF - ENDIF - ::setView( "Stats" ) /* Always call with name */ - IF ::oIde:lCurEditsMdi + ::setView( "Main" ) + + IF lNew + ::oStackedWidget:setViewMode( QMdiArea_TabbedView ) + ::oINI:nEditsViewStyle := HBPMDI_STYLE_MAXIMIZED + ::stackMaximized() + + ELSE IF x_[ 1,5 ] == QMdiArea_TabbedView ::oStackedWidget:setViewMode( QMdiArea_TabbedView ) ENDIF - IF x_[ 1,6 ] == 1 + IF x_[ 1,6 ] == HBPMDI_STYLE_TILED ::oStackedWidget:tileSubWindows() - ELSEIF x_[ 1,6 ] == 2 + ELSEIF x_[ 1,6 ] == HBPMDI_STYLE_CASCADED ::oStackedWidget:cascadeSubWindows() - ELSEIF x_[ 1,6 ] == 3 + ELSEIF x_[ 1,6 ] == HBPMDI_STYLE_MAXIMIZED + ::oINI:nEditsViewStyle := HBPMDI_STYLE_MAXIMIZED ::stackMaximized() + ELSEIF x_[ 1,6 ] == HBPMDI_STYLE_TILEDVERT + ::oINI:nEditsViewStyle := HBPMDI_STYLE_TILEDVERT + ::stackVertically() + ELSEIF x_[ 1,6 ] == HBPMDI_STYLE_TILEDHORZ + ::oINI:nEditsViewStyle := HBPMDI_STYLE_TILEDHORZ + ::stackHorizontally() ELSE FOR EACH a_ IN x_ IF !empty( a_[ 2 ] ) @@ -812,32 +798,32 @@ HB_TRACE( HB_TR_DEBUG, "projectTree_dropEvent" ) ::oStackedWidget:setViewMode( iif( ::oStackedWidget:viewMode() == QMdiArea_TabbedView, QMdiArea_SubWindowView, QMdiArea_TabbedView ) ) EXIT CASE "buttonViewOrganized_clicked" - ::nViewStyle := HBPMDI_STYLE_ORGANIZED + ::oINI:nEditsViewStyle := HBPMDI_STYLE_ORGANIZED ::restState() EXIT CASE "buttonSaveLayout_clicked" - IF ::nViewStyle == HBPMDI_STYLE_ORGANIZED + IF ::oINI:nEditsViewStyle == HBPMDI_STYLE_ORGANIZED ::savePanelsGeometry() ENDIF EXIT CASE "buttonViewTiled_clicked" ::oStackedWidget:tileSubWindows() - ::nViewStyle := HBPMDI_STYLE_TILED + ::oINI:nEditsViewStyle := HBPMDI_STYLE_TILED EXIT CASE "buttonViewCascaded_clicked" ::oStackedWidget:cascadeSubWindows() - ::nViewStyle := HBPMDI_STYLE_CASCADED + ::oINI:nEditsViewStyle := HBPMDI_STYLE_CASCADED EXIT CASE "buttonViewMaximized_clicked" - ::nViewStyle := HBPMDI_STYLE_MAXIMIZED + ::oINI:nEditsViewStyle := HBPMDI_STYLE_MAXIMIZED ::stackMaximized() EXIT CASE "buttonViewStackedVert_clicked" - ::nViewStyle := HBPMDI_STYLE_TILEDVERT + ::oINI:nEditsViewStyle := HBPMDI_STYLE_TILEDVERT ::stackVertically() EXIT CASE "buttonViewStackedHorz_clicked" - ::nViewStyle := HBPMDI_STYLE_TILEDHORZ + ::oINI:nEditsViewStyle := HBPMDI_STYLE_TILEDHORZ ::stackHorizontally() EXIT CASE "buttonViewZoomedIn_clicked" @@ -856,7 +842,7 @@ HB_TRACE( HB_TR_DEBUG, "projectTree_dropEvent" ) ENDIF IF p1[ 2 ] >= 8 .AND. !( ::cWrkView == p:objectName() ) ::setView( p:objectName() ) - IF !( p:objectName() == "Stats" ) .AND. ! empty( ::oEM ) .AND. ! empty( oEdit := ::oEM:getEditorCurrent() ) + IF ! empty( ::oEM ) .AND. ! empty( oEdit := ::oEM:getEditorCurrent() ) oEdit:setDocumentProperties() oEdit:qCoEdit:relayMarkButtons() oEdit:qCoEdit:toggleLineNumbers() @@ -903,26 +889,22 @@ METHOD IdeDocks:stackZoom( nMode ) HB_SYMBOL_UNUSED( nMode ) - IF ::nViewStyle == 4 .OR. ::nViewStyle == 5 - IF ::nViewStyle == 4 + IF ::oINI:nEditsViewStyle == 4 .OR. ::oINI:nEditsViewStyle == 5 + IF ::oINI:nEditsViewStyle == 4 nT := 0 FOR EACH qMdi IN ::oIde:aMdies - IF !( ::aViewsInfo[ qMdi:__enumIndex(), 1 ] == "Stats" ) - qRect := qMdi:geometry() - nH := qRect:height() + ( nMode * ( qRect:height() / 4 ) ) - qMdi:setGeometry( QRect( 0, nT, qRect:width(), nH ) ) - nT += nH - ENDIF + qRect := qMdi:geometry() + nH := qRect:height() + ( nMode * ( qRect:height() / 4 ) ) + qMdi:setGeometry( QRect( 0, nT, qRect:width(), nH ) ) + nT += nH NEXT ELSE nL := 0 FOR EACH qMdi IN ::oIde:aMdies - IF !( ::aViewsInfo[ qMdi:__enumIndex(), 1 ] == "Stats" ) - qRect := qMdi:geometry() - nW := qRect:width() + ( nMode * ( qRect:width() / 4 ) ) - qMdi:setGeometry( QRect( nL, 0, nW, qRect:height() ) ) - nL += nW - ENDIF + qRect := qMdi:geometry() + nW := qRect:width() + ( nMode * ( qRect:width() / 4 ) ) + qMdi:setGeometry( QRect( nL, 0, nW, qRect:height() ) ) + nL += nW NEXT ENDIF ENDIF @@ -939,15 +921,13 @@ METHOD IdeDocks:stackHorizontally() qObj := qArea:activeSubWindow() qVPort := qArea:viewport() nH := qVPort:height() - nW := qVPort:width() / ( len( ::oIde:aMdies ) - 1 ) + nW := qVPort:width() / len( ::oIde:aMdies ) nT := 0 nL := 0 FOR EACH qMdi IN ::oIde:aMdies - IF !( ::aViewsInfo[ qMdi:__enumIndex(), 1 ] == "Stats" ) - qMdi:setGeometry( QRect( nL, nT, nW, nH ) ) - nL += nW - ENDIF + qMdi:setGeometry( QRect( nL, nT, nW, nH ) ) + nL += nW NEXT ::oStackedWidget:setActiveSubWindow( qObj ) @@ -963,15 +943,13 @@ METHOD IdeDocks:stackVertically() qArea := ::oStackedWidget qObj := qArea:activeSubWindow() qVPort := qArea:viewport() - nH := qVPort:height() / ( len( ::oIde:aMdies ) - 1 ) + nH := qVPort:height() / len( ::oIde:aMdies ) nW := qVPort:width() nT := 0 FOR EACH qMdi IN ::oIde:aMdies - IF !( ::aViewsInfo[ qMdi:__enumIndex(), 1 ] == "Stats" ) - qMdi:setGeometry( QRect( 0, nT, nW, nH ) ) - nT += nH - ENDIF + qMdi:setGeometry( QRect( 0, nT, nW, nH ) ) + nT += nH NEXT ::oStackedWidget:setActiveSubWindow( qObj ) @@ -1052,16 +1030,14 @@ METHOD IdeDocks:setViewInitials() LOCAL a_ FOR EACH a_ IN ::aViewsInfo - IF !( a_[ 1 ] == "Stats" ) - ::setView( a_[ 1 ] ) + ::setView( a_[ 1 ] ) - IF ::qTabWidget:count() == 1 - ::oEM:setSourceVisibleByIndex( 0 ) - ELSE - ::qTabWidget:setCurrentIndex( 0 ) - ::qTabWidget:setCurrentIndex( ::qTabWidget:count() - 1 ) - ::qTabWidget:setCurrentIndex( 0 ) - ENDIF + IF ::qTabWidget:count() == 1 + ::oEM:setSourceVisibleByIndex( 0 ) + ELSE + ::qTabWidget:setCurrentIndex( 0 ) + ::qTabWidget:setCurrentIndex( ::qTabWidget:count() - 1 ) + ::qTabWidget:setCurrentIndex( 0 ) ENDIF NEXT @@ -1085,9 +1061,6 @@ METHOD IdeDocks:setView( cView ) aadd( ::aViewsInfo, { cView, NIL, 0, 0, 0, 0 } ) ::oTM:addPanelsMenu( cView ) ::buildViewWidget( cView ) - IF ! ::oIde:lCurEditsMdi - ::addPanelButton( cView ) - ENDIF ::setView( cView ) ENDIF ENDIF @@ -1096,25 +1069,18 @@ METHOD IdeDocks:setView( cView ) OTHERWISE IF ( n := ascan( ::aViews, {|o| iif( hb_isChar( o:oWidget:objectName() ), o:oWidget:objectName() == cView, .f. ) } ) ) > 0 ::oIde:cWrkView := cView - IF !( cView == "Stats" ) - ::oIde:qTabWidget := ::aViews[ n ]:oTabWidget:oWidget - ::oIde:oTabParent := ::aViews[ n ] + ::oIde:qTabWidget := ::aViews[ n ]:oTabWidget:oWidget + ::oIde:oTabParent := ::aViews[ n ] - nIndex := ::oIde:qTabWidget:currentIndex() - IF nIndex + 1 == ::oIde:qTabWidget:count() - IF !( ::oIde:lClosing ) - ::oIde:qTabWidget:setCurrentIndex( 0 ) - ::oIde:qTabWidget:setCurrentIndex( nIndex ) /* TODO: Must be last saved */ - ENDIF + nIndex := ::oIde:qTabWidget:currentIndex() + IF nIndex + 1 == ::oIde:qTabWidget:count() + IF !( ::oIde:lClosing ) + ::oIde:qTabWidget:setCurrentIndex( 0 ) + ::oIde:qTabWidget:setCurrentIndex( nIndex ) /* TODO: Must be last saved */ ENDIF - ELSE - ::showStats() - ENDIF - IF ::oIde:lCurEditsMdi - ::oStackedWidget:oWidget:setActiveSubWindow( ::oIde:aMdies[ n ] ) - ELSE - ::oStackedWidget:oWidget:setCurrentIndex( n - 1 ) ENDIF + + ::oStackedWidget:oWidget:setActiveSubWindow( ::oIde:aMdies[ n ] ) ::setStatusText( SB_PNL_VIEW, ::cWrkView ) ENDIF EXIT @@ -1125,31 +1091,6 @@ METHOD IdeDocks:setView( cView ) /*------------------------------------------------------------------------*/ -METHOD IdeDocks:hideStats() - - IF len( ::oIde:aMdies ) >= 1 - ::oIde:aMdies[ 1 ]:hide() - ENDIF - - RETURN Self - -/*----------------------------------------------------------------------*/ - -METHOD IdeDocks:showStats() - - IF len( ::oIde:aMdies ) >= 1 - IF ::oIde:aMdies[ 1 ]:isHidden() - ::oIde:aMdies[ 1 ]:show() - ELSE - ::oIde:aMdies[ 1 ]:hide() - ::setView( "Main" ) - ENDIF - ENDIF - - RETURN Self - -/*----------------------------------------------------------------------*/ - METHOD IdeDocks:buildMdiToolbarLeft() ::qMdiToolbarL := HbqToolbar():new() @@ -1265,29 +1206,19 @@ METHOD IdeDocks:setButtonState( cButton, lChecked ) METHOD IdeDocks:buildStackedWidget() - IF ::oIde:lCurEditsMdi - ::oIde:oStackedWidget := XbpWindow():new( ::oDa ) - ::oStackedWidget:oWidget := QMdiArea( ::oDa:oWidget ) - ::oStackedWidget:oWidget:setObjectName( "editMdiArea" ) - ::oStackedWidget:oWidget:setDocumentMode( .t. ) - ::oStackedWidget:oWidget:setTabShape( QTabWidget_Triangular ) - ::oStackedWidget:oWidget:setOption( QMdiArea_DontMaximizeSubWindowOnActivation, .t. ) - ::oStackedWidget:oWidget:setVerticalScrollBarPolicy( Qt_ScrollBarAsNeeded ) - ::oStackedWidget:oWidget:setHorizontalScrollBarPolicy( Qt_ScrollBarAsNeeded ) - ::oStackedWidget:oWidget:setActivationOrder( QMdiArea_CreationOrder ) + ::oIde:oStackedWidget := XbpWindow():new( ::oDa ) + ::oStackedWidget:oWidget := QMdiArea( ::oDa:oWidget ) + ::oStackedWidget:oWidget:setObjectName( "editMdiArea" ) + ::oStackedWidget:oWidget:setDocumentMode( .t. ) + ::oStackedWidget:oWidget:setTabShape( QTabWidget_Triangular ) + ::oStackedWidget:oWidget:setOption( QMdiArea_DontMaximizeSubWindowOnActivation, .t. ) + ::oStackedWidget:oWidget:setVerticalScrollBarPolicy( Qt_ScrollBarAsNeeded ) + ::oStackedWidget:oWidget:setHorizontalScrollBarPolicy( Qt_ScrollBarAsNeeded ) + ::oStackedWidget:oWidget:setActivationOrder( QMdiArea_CreationOrder ) - ::oDa:addChild( ::oStackedWidget ) + ::oDa:addChild( ::oStackedWidget ) - ::oStackedWidget:oWidget:connect( "subWindowActivated(QMdiSubWindow*)", {|p| ::execEvent( "mdiArea_subWindowActivated", p ) } ) - - ELSE - /* Its parent will be drawing area and pages will be XbpTabWidgets() */ - - ::oIde:oStackedWidget := XbpWindow():new( ::oDa ) - ::oStackedWidget:oWidget := QStackedWidget( ::oDa:oWidget ) - ::oStackedWidget:oWidget:setObjectName( "myStackedWidget" ) - ::oDa:addChild( ::oStackedWidget ) - ENDIF + ::oStackedWidget:oWidget:connect( "subWindowActivated(QMdiSubWindow*)", {|p| ::execEvent( "mdiArea_subWindowActivated", p ) } ) RETURN Self @@ -1296,107 +1227,58 @@ METHOD IdeDocks:buildStackedWidget() METHOD IdeDocks:buildViewWidget( cView ) LOCAL oFrame, qTBtnClose, qDrop, qMdi, n - IF ::oIde:lCurEditsMdi - qMdi := QMdiSubWindow() - qMdi:setWindowTitle( cView ) - qMdi:setObjectName( cView ) - IF cView == "Stats" - qMdi:setWindowIcon( hbide_image( "statistics" ) ) + qMdi := QMdiSubWindow() + qMdi:setWindowTitle( cView ) + qMdi:setObjectName( cView ) + qMdi:setWindowIcon( ::getPanelIcon( cView ) ) + + oFrame := XbpWindow():new( ::oStackedWidget ) + oFrame:oWidget := QWidget( ::oStackedWidget:oWidget ) + oFrame:oWidget:setObjectName( cView ) + ::oStackedWidget:addChild( oFrame ) + + oFrame:hbLayout := HBPLAYOUT_TYPE_VERTBOX + oFrame:qLayout:setContentsMargins( 0,0,0,0 ) + + oFrame:oTabWidget := XbpTabWidget():new():create( oFrame, , {0,0}, {200,200}, , .t. ) + + qTBtnClose := QToolButton() + qTBtnClose:setTooltip( "Close Tab" ) + qTBtnClose:setAutoRaise( .t. ) + qTBtnClose:setIcon( hbide_image( "closetab" ) ) + qTBtnClose:connect( "clicked()", {|| ::oSM:closeSource() } ) + oFrame:oTabWidget:qCornerWidget := qTBtnClose + oFrame:oTabWidget:oWidget:setCornerWidget( qTBtnClose, Qt_TopRightCorner ) + + qDrop := oFrame:oTabWidget:oWidget + + qDrop:setAcceptDrops( .t. ) + qDrop:connect( QEvent_DragEnter, {|p| ::execEvent( "editWidget_dragEnterEvent", p ) } ) + qDrop:connect( QEvent_DragMove , {|p| ::execEvent( "editWidget_dragMoveEvent" , p ) } ) + qDrop:connect( QEvent_Drop , {|p| ::execEvent( "editWidget_dropEvent" , p ) } ) + + oFrame:oTabWidget:oWidget:setUsesScrollButtons( .t. ) + oFrame:oTabWidget:oWidget:setMovable( .t. ) + + oFrame:oWidget:show() + oFrame:oTabWidget:oWidget:show() + + aadd( ::oIde:aViews, oFrame ) + aadd( ::oIde:aMdies, qMdi ) + + IF ( n := ascan( ::aViewsInfo, {|e_| e_[ 1 ] == cView } ) ) > 0 + IF !empty( ::aViewsInfo[ n, 2 ] ) + qMdi:setGeometry( ::aViewsInfo[ n, 2 ] ) ELSE - qMdi:setWindowIcon( ::getPanelIcon( cView ) ) + qMdi:resize( 300, 200 ) ENDIF - - oFrame := XbpWindow():new( ::oStackedWidget ) - oFrame:oWidget := QWidget( ::oStackedWidget:oWidget ) - oFrame:oWidget:setObjectName( cView ) /* This will form the basis of showing at top */ - ::oStackedWidget:addChild( oFrame ) - - oFrame:hbLayout := HBPLAYOUT_TYPE_VERTBOX - oFrame:qLayout:setContentsMargins( 0,0,0,0 ) - - oFrame:oTabWidget := XbpTabWidget():new():create( oFrame, , {0,0}, {200,200}, , .t. ) - - IF !( cView == "Stats" ) - qTBtnClose := QToolButton() - qTBtnClose:setTooltip( "Close Tab" ) - qTBtnClose:setAutoRaise( .t. ) - qTBtnClose:setIcon( hbide_image( "closetab" ) ) - qTBtnClose:connect( "clicked()", {|| ::oSM:closeSource() } ) - oFrame:oTabWidget:qCornerWidget := qTBtnClose - oFrame:oTabWidget:oWidget:setCornerWidget( qTBtnClose, Qt_TopRightCorner ) - - qDrop := oFrame:oTabWidget:oWidget - - qDrop:setAcceptDrops( .t. ) - qDrop:connect( QEvent_DragEnter, {|p| ::execEvent( "editWidget_dragEnterEvent", p ) } ) - qDrop:connect( QEvent_DragMove , {|p| ::execEvent( "editWidget_dragMoveEvent" , p ) } ) - qDrop:connect( QEvent_Drop , {|p| ::execEvent( "editWidget_dropEvent" , p ) } ) - ENDIF - - oFrame:oTabWidget:oWidget:setUsesScrollButtons( .t. ) - oFrame:oTabWidget:oWidget:setMovable( .t. ) - - oFrame:oWidget:show() - oFrame:oTabWidget:oWidget:show() - - aadd( ::oIde:aViews, oFrame ) - aadd( ::oIde:aMdies, qMdi ) - - IF ( n := ascan( ::aViewsInfo, {|e_| e_[ 1 ] == cView } ) ) > 0 - IF !empty( ::aViewsInfo[ n, 2 ] ) - qMdi:setGeometry( ::aViewsInfo[ n, 2 ] ) - ELSE - qMdi:resize( 300, 200 ) - ENDIF - ENDIF - qMdi:setWidget( oFrame:oWidget ) - - ::oStackedWidget:oWidget:addSubWindow( qMdi ) - qMdi:connect( "windowStateChanged(Qt::WindowStates,Qt::WindowStates)", ; - {|p,p1| ::execEvent( "mdiSubWindow_windowStateChanged", qMdi, { p, p1 } ) } ) - ::setView( cView ) - - ELSE - - oFrame := XbpWindow():new( ::oStackedWidget ) - oFrame:oWidget := QWidget( ::oStackedWidget:oWidget ) - oFrame:oWidget:setObjectName( cView ) /* This will form the basis of showing at top */ - ::oStackedWidget:addChild( oFrame ) - - oFrame:hbLayout := HBPLAYOUT_TYPE_VERTBOX - oFrame:qLayout:setContentsMargins( 0,0,0,0 ) - - oFrame:oTabWidget := XbpTabWidget():new():create( oFrame, , {0,0}, {200,200}, , .t. ) - oFrame:oTabWidget:oWidget:setDocumentMode( .t. ) - - IF !( cView == "Stats" ) - qTBtnClose := QToolButton() - qTBtnClose:setTooltip( "Close Tab" ) - qTBtnClose:setAutoRaise( .t. ) - qTBtnClose:setIcon( hbide_image( "closetab" ) ) - qTBtnClose:connect( "clicked()", {|| ::oSM:closeSource() } ) - oFrame:oTabWidget:qCornerWidget := qTBtnClose - oFrame:oTabWidget:oWidget:setCornerWidget( qTBtnClose, Qt_TopRightCorner ) - - qDrop := oFrame:oTabWidget:oWidget - - qDrop:setAcceptDrops( .t. ) - qDrop:connect( QEvent_DragEnter, {|p| ::execEvent( "editWidget_dragEnterEvent", p ) } ) - qDrop:connect( QEvent_DragMove , {|p| ::execEvent( "editWidget_dragMoveEvent" , p ) } ) - qDrop:connect( QEvent_Drop , {|p| ::execEvent( "editWidget_dropEvent" , p ) } ) - - ENDIF - - oFrame:oTabWidget:oWidget:setUsesScrollButtons( .t. ) - oFrame:oTabWidget:oWidget:setMovable( .t. ) - - aadd( ::oIde:aViews, oFrame ) - oFrame:oWidget:show() - oFrame:oTabWidget:oWidget:show() - - ::oStackedWidget:oWidget:addWidget( oFrame:oWidget ) - ::setView( cView ) ENDIF + qMdi:setWidget( oFrame:oWidget ) + + ::oStackedWidget:oWidget:addSubWindow( qMdi ) + qMdi:connect( "windowStateChanged(Qt::WindowStates,Qt::WindowStates)", ; + {|p,p1| ::execEvent( "mdiSubWindow_windowStateChanged", qMdi, { p, p1 } ) } ) + ::setView( cView ) RETURN oFrame @@ -1416,110 +1298,19 @@ METHOD IdeDocks:buildUpDownWidget() ::oIde:oUpDn := IdeUpDown():new( ::oIde ):create() ::oUpDn:oUI:hide() - IF ::oIde:lCurEditsMdi - ::oUpDn:oUI:setParent( ::qMdiToolbarL:oWidget ) - ::oUpDn:oUI:show() - ::qMdiToolbarL:addWidget( "UpDown", ::oUpDn:oUI:oWidget ) - ::oUpDn:oUI:hide() - ENDIF + ::oUpDn:oUI:setParent( ::qMdiToolbarL:oWidget ) + ::oUpDn:oUI:show() + ::qMdiToolbarL:addWidget( "UpDown", ::oUpDn:oUI:oWidget ) + ::oUpDn:oUI:hide() RETURN Self /*----------------------------------------------------------------------*/ METHOD IdeDocks:buildToolBarPanels() - LOCAL a_, aBtns, qAct, qTBtn + LOCAL a_, aBtns, qAct LOCAL qSize := QSize( 20,20 ) - IF ! ::oIde:lCurEditsMdi - /* Toolbar Panels */ - ::oIde:qTBarPanels := QToolBar() - ::qTBarPanels:setStyleSheet( GetStyleSheet( "QToolBarLR5", ::nAnimantionMode ) ) - ::qTBarPanels:setObjectName( "ToolBar_Panels" ) - ::qTBarPanels:setWindowTitle( "ToolBar: Editor Panels" ) - ::qTBarPanels:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea ) - ::qTBarPanels:setIconSize( qSize ) - - ::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarPanels ) - - FOR EACH a_ IN ::aViewsInfo - IF !( a_[ 1 ] == "Stats" ) - ::addPanelButton( a_[ 1 ] ) - ENDIF - NEXT - - /* Toolbar Line Actions */ - - ::oIde:qTBarLines := QToolBar() - ::qTBarLines:setStyleSheet( GetStyleSheet( "QToolBarLR5", ::nAnimantionMode ) ) - ::qTBarLines:setObjectName( "ToolBar_Lines" ) - ::qTBarLines:setWindowTitle( "ToolBar: Lines and Blocks" ) - ::qTBarLines:setIconSize( qSize ) - ::qTBarPanels:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea ) - - ::oDlg:oWidget:addToolBar( Qt_LeftToolBarArea, ::qTBarLines ) - - aBtns := {} - aadd( aBtns, { "movelineup" , "Move Current Line Up" , {|| ::oEM:moveLine( -1 ) } } ) - aadd( aBtns, { "movelinedown" , "Move Current Line Down" , {|| ::oEM:moveLine( 1 ) } } ) - aadd( aBtns, { "deleteline" , "Delete Current Line" , {|| ::oEM:deleteLine() } } ) - aadd( aBtns, { "duplicateline" , "Duplicate Current Line" , {|| ::oEM:duplicateLine() } } ) - aadd( aBtns, {} ) - aadd( aBtns, { "togglelinenumber", "Toggle Line Numbers" , {|| ::oEM:toggleLineNumbers() } } ) - aadd( aBtns, { "horzruler" , "Toggle Horizontal Ruler" , {|| ::oEM:toggleHorzRuler() } } ) - aadd( aBtns, { "curlinehilight" , "Toggle Current Line Hilight", {|| ::oEM:toggleCurrentLineHighlightMode() } } ) - aadd( aBtns, {} ) - aadd( aBtns, { "help1" , "Toggle Code Completion" , {|| ::oEM:toggleCodeCompetion() } } ) - aadd( aBtns, { "infotips" , "Toggle Completion Tips" , {|| ::oEM:toggleCompetionTips() } } ) - FOR EACH a_ IN aBtns - IF empty( a_ ) - ::qTBarLines:addSeparator() - ELSE - qTBtn := QToolButton() - qTBtn:setTooltip( a_[ 2 ] ) - qTBtn:setIcon( hbide_image( a_[ 1 ] ) ) - qTBtn:setMaximumWidth( 20 ) - qTBtn:setMaximumHeight( 20 ) - IF a_[ 1 ] $ "togglelinenumber,curlinehilight,horzruler" - //qTBtn:setCheckable( .t. ) - ENDIF - qTBtn:connect( "clicked()", a_[ 3 ] ) - ::qTBarLines:addWidget( qTBtn ) - aadd( ::aBtnLines, qTBtn ) - ENDIF - NEXT - ::qTBarLines:addSeparator() - - aBtns := {} - aadd( aBtns, { "toupper" , "To Upper" , {|| ::oEM:convertSelection( "ToUpper" ) } } ) - aadd( aBtns, { "tolower" , "To Lower" , {|| ::oEM:convertSelection( "ToLower" ) } } ) - aadd( aBtns, { "invertcase" , "Invert Case" , {|| ::oEM:convertSelection( "Invert" ) } } ) - aadd( aBtns, {} ) - aadd( aBtns, { "blockcomment" , "Block Comment" , {|| ::oEM:blockComment() } } ) - aadd( aBtns, { "streamcomment", "Stream Comment" , {|| ::oEM:streamComment() } } ) - aadd( aBtns, {} ) - aadd( aBtns, { "blockindentr" , "Indent Right" , {|| ::oEM:indent( 1 ) } } ) - aadd( aBtns, { "blockindentl" , "Indent Left" , {|| ::oEM:indent( -1 ) } } ) - aadd( aBtns, {} ) - aadd( aBtns, { "sgl2dblquote" , "Single to Double Quotes", {|| ::oEM:convertDQuotes() } } ) - aadd( aBtns, { "dbl2sglquote" , "Double to Single Quotes", {|| ::oEM:convertQuotes() } } ) - FOR EACH a_ IN aBtns - IF empty( a_ ) - ::qTBarLines:addSeparator() - ELSE - qTBtn := QToolButton() - qTBtn:setTooltip( a_[ 2 ] ) - qTBtn:setIcon( hbide_image( a_[ 1 ] ) ) - qTBtn:setMaximumWidth( 20 ) - qTBtn:setMaximumHeight( 20 ) - qTBtn:connect( "clicked()", a_[ 3 ] ) - ::qTBarLines:addWidget( qTBtn ) - aadd( ::aBtnLines, qTBtn ) - ENDIF - NEXT - ::qTBarLines:addSeparator() - ENDIF - /* Right-hand docks toolbar */ ::oIde:qTBarDocks := QToolBar() ::qTBarDocks:setStyleSheet( GetStyleSheet( "QToolBarLR5", ::nAnimantionMode ) ) @@ -1561,11 +1352,7 @@ METHOD IdeDocks:buildToolBarPanels() ENDIF NEXT - IF ::oIde:lCurEditsMdi - ::oDlg:oWidget:addToolBar( Qt_TopToolBarArea, ::qTBarDocks ) - ELSE - ::oDlg:oWidget:addToolBar( Qt_RightToolBarArea, ::qTBarDocks ) - ENDIF + ::oDlg:oWidget:addToolBar( Qt_TopToolBarArea, ::qTBarDocks ) /* User defined toolbars via Tools & Utilities */ ::oTM:buildUserToolbars() @@ -1585,15 +1372,11 @@ METHOD IdeDocks:disblePanelButton( qTBtn ) METHOD IdeDocks:getPanelIcon( cView ) LOCAL n - IF ::oIde:lCurEditsMdi - IF ( n := ascan( ::aViewsInfo, {|e_| e_[ 1 ] == cView } ) ) > 0 - RETURN hbide_image( "panel_" + hb_ntos( n - 1 ) ) - ENDIF - ELSE - IF ( n := ascan( ::aPanels, {|q| q:text() == cView } ) ) > 0 - RETURN hbide_image( "panel_" + hb_ntos( n ) ) - ENDIF + + IF ( n := ascan( ::aViewsInfo, {|e_| e_[ 1 ] == cView } ) ) > 0 + RETURN hbide_image( "panel_" + hb_ntos( n ) ) ENDIF + RETURN "" /*----------------------------------------------------------------------*/ @@ -1985,16 +1768,11 @@ METHOD IdeDocks:animateComponents( nMode ) /* Toolbars */ ::oMainToolbar:oWidget:setStyleSheet( GetStyleSheet( "QToolBar", nMode ) ) - IF ! ::oIde:lCurEditsMdi - ::qTBarPanels :setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) ) - ::qTBarLines :setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) ) - ENDIF ::qTBarDocks :setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) ) - IF ::oIde:lCurEditsMdi - ::qMdiToolbar:setStyleSheet( GetStyleSheet( "QToolBar", nMode ) ) - ::qMdiToolbarL:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) ) - ENDIF + ::qMdiToolbar:setStyleSheet( GetStyleSheet( "QToolBar", nMode ) ) + ::qMdiToolbarL:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) ) + /* User defined toolbars */ ::oTM:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) ) diff --git a/harbour/contrib/hbide/ideedit.prg b/harbour/contrib/hbide/ideedit.prg index 9fb2ec37a9..92eae0ff38 100644 --- a/harbour/contrib/hbide/ideedit.prg +++ b/harbour/contrib/hbide/ideedit.prg @@ -470,9 +470,6 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 ) EXIT CASE "Close Split Window" IF n > 0 /* 1 == Main Edit */ - IF ! ::oIde:lCurEditsMdi - ::oIde:oUpDn:oUI:setParent( ::oEditor:qEdit ) - ENDIF oo := ::oEditor:aEdits[ n ] hb_adel( ::oEditor:aEdits, n, .t. ) oo:destroy( .f. ) @@ -491,29 +488,19 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 ) ::gotoFunction() EXIT CASE "Cut" - IF ::oIde:lCurEditsMdi - ::cut() - ENDIF + ::cut() EXIT CASE "Copy" - IF ::oIde:lCurEditsMdi - ::copy() - ENDIF + ::copy() EXIT CASE "Paste" - IF ::oIde:lCurEditsMdi - ::paste() - ENDIF + ::paste() EXIT CASE "Undo" - IF ::oIde:lCurEditsMdi - ::undo() - ENDIF + ::undo() EXIT CASE "Redo" - IF ::oIde:lCurEditsMdi - ::redo() - ENDIF + ::redo() EXIT CASE "Diff" ::oEditor:vssExecute( "Diff" ) @@ -777,15 +764,9 @@ METHOD IdeEdit:dispStatusInfo() ::qEdit:hbGetSelectionInfo() nMode := ::aSelectionInfo[ 5 ] - - IF ::oIde:lCurEditsMdi - ::oDK:setButtonState( "stream", nMode > 1 ) - ELSE - ::oAC:getAction( "TB_SelectionMode" ):setIcon( hbide_image( iif( nMode == 3, "selectionline", "stream" ) ) ) - ::oAC:getAction( "TB_SelectionMode" ):setChecked( nMode > 1 ) - ENDIF - + ::oDK:setButtonState( "stream", nMode > 1 ) ::oDK:setStatusText( SB_PNL_STREAM, iif( nMode == 2, "Column", iif( nMode == 3, "Line", "Stream" ) ) ) + RETURN Self /*----------------------------------------------------------------------*/ @@ -1483,13 +1464,11 @@ METHOD IdeEdit:toggleHorzRuler() METHOD IdeEdit:toggleSelectionMode() LOCAL qFocus - IF ::oIde:lCurEditsMdi - qFocus := QApplication():focusWidget() - ::qEdit:hbSetSelectionMode( iif( ::oDK:setButtonState( "SelectionMode" ), 2, 1 ), .f. ) - qFocus:setFocus( 0 ) - ELSE - ::qEdit:hbSetSelectionMode( iif( ::oAC:getAction( "TB_SelectionMode" ):isChecked(), 2, 1 ), .f. ) - ENDIF + + qFocus := QApplication():focusWidget() + ::qEdit:hbSetSelectionMode( iif( ::oDK:setButtonState( "SelectionMode" ), 2, 1 ), .f. ) + qFocus:setFocus( 0 ) + RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/idefindreplace.prg b/harbour/contrib/hbide/idefindreplace.prg index e3f3e307b9..8df35975b0 100644 --- a/harbour/contrib/hbide/idefindreplace.prg +++ b/harbour/contrib/hbide/idefindreplace.prg @@ -115,21 +115,11 @@ METHOD IdeUpDown:show() LOCAL oEdit IF !empty( oEdit := ::oEM:getEditObjectCurrent() ) - IF ::oIde:lCurEditsMdi - oEdit:qEdit:hbGetSelectionInfo() - IF oEdit:aSelectionInfo[ 1 ] > -1 - ::oUI:setEnabled( .t. ) - ELSE - ::oUI:setEnabled( .f. ) - ENDIF + oEdit:qEdit:hbGetSelectionInfo() + IF oEdit:aSelectionInfo[ 1 ] > -1 + ::oUI:setEnabled( .t. ) ELSE - ::position() - oEdit:qEdit:hbGetSelectionInfo() - IF oEdit:aSelectionInfo[ 1 ] > -1 - ::oUI:show() - ELSE - ::oUI:hide() - ENDIF + ::oUI:setEnabled( .f. ) ENDIF ENDIF @@ -143,11 +133,7 @@ METHOD IdeUpDown:create( oIde ) ::oIde := oIde - IF ::oIde:lCurEditsMdi - ::oUI := hbide_getUI( "updown_v" ) - ELSE - ::oUI := hbide_getUI( "updown", ::oIde:oDlg:oWidget ) - ENDIF + ::oUI := hbide_getUI( "updown_v" ) ::oUI:setWindowFlags( hb_bitOr( Qt_Tool, Qt_FramelessWindowHint ) ) ::oUI:setFocusPolicy( Qt_NoFocus ) diff --git a/harbour/contrib/hbide/idehome.prg b/harbour/contrib/hbide/idehome.prg index 6a2396f801..6690f26265 100644 --- a/harbour/contrib/hbide/idehome.prg +++ b/harbour/contrib/hbide/idehome.prg @@ -99,6 +99,7 @@ CLASS IdeHome INHERIT IdeObject DATA qWelcomeBrowser DATA oFaqTab DATA qFaqBrowser + DATA oView DATA cClickedProject DATA cClickedSource @@ -121,6 +122,8 @@ CLASS IdeHome INHERIT IdeObject METHOD setStyleSheetTextBrowser( qBrw ) METHOD print() METHOD paintRequested( qPrinter ) + METHOD buildView() + METHOD show() ENDCLASS @@ -133,26 +136,68 @@ METHOD IdeHome:new( oIde ) /*----------------------------------------------------------------------*/ METHOD IdeHome:create( oIde ) - LOCAL oStatFrame DEFAULT oIde TO ::oIde ::oIde := oIde - oStatFrame := ::aViews[ 1 ] + ::buildView() - oStatFrame:oTabWidget:oWidget:setDocumentMode( .t. ) - oStatFrame:oTabWidget:oWidget:setStyleSheet( "QTabWidget::tab-bar {left: 5px;}" ) - oStatFrame:qLayout:setContentsMargins( 0,0,0,0 ) + ::oView:oTabWidget:oWidget:setDocumentMode( .t. ) + ::oView:oTabWidget:oWidget:setStyleSheet( "QTabWidget::tab-bar {left: 5px;}" ) + ::oView:qLayout:setContentsMargins( 0,0,0,0 ) ::buildWelcomeTab() ::buildFaqTab() - oStatFrame:oTabWidget:oWidget:setCurrentIndex( 0 ) + ::oView:oTabWidget:oWidget:setCurrentIndex( 0 ) + + ::oView:hide() RETURN Self /*----------------------------------------------------------------------*/ +METHOD IdeHome:show() + + IF ::oView:oWidget:isVisible() + ::oView:hide() + ELSE + ::oIde:setPosAndSizeByIniEx( ::oView:oWidget, ::oINI:cStatsDialogGeometry ) + ::oView:show() + ENDIF + + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD IdeHome:buildView() + LOCAL oFrame + + oFrame := XbpWindow():new( ::oDa ) + oFrame:oWidget := QWidget( ::oDa:oWidget ) + oFrame:oWidget:resize( 750,300 ) + oFrame:oWidget:connect( QEvent_Close, {|| ::oINI:cStatsDialogGeometry := hbide_posAndSize( ::oView:oWidget ) } ) + + oFrame:oWidget:setWindowFlags( Qt_Sheet ) + oFrame:oWidget:setObjectName( "Stats" ) + ::oDa:addChild( oFrame ) + + oFrame:hbLayout := HBPLAYOUT_TYPE_VERTBOX + oFrame:qLayout:setContentsMargins( 0,0,0,0 ) + + oFrame:oTabWidget := XbpTabWidget():new():create( oFrame, , {0,0}, {600,300}, , .t. ) + + oFrame:oTabWidget:oWidget:setUsesScrollButtons( .t. ) + oFrame:oTabWidget:oWidget:setMovable( .t. ) + + ::oView := oFrame + + ::oIde:setPosAndSizeByIniEx( oFrame:oWidget, ::oINI:cStatsDialogGeometry ) + + RETURN self + +/*----------------------------------------------------------------------*/ + METHOD IdeHome:destroy() IF !empty( ::qPrnDlg ) @@ -269,7 +314,8 @@ METHOD IdeHome:setStyleSheetTextBrowser( qBrw ) METHOD IdeHome:buildWelcomeTab() LOCAL oTab, qBrw, qSList - oTab := XbpTabPage():new( ::aViews[ 1 ], , { 5,5 }, { 700,400 }, , .t. ) + //oTab := XbpTabPage():new( ::aViews[ 1 ], , { 5,5 }, { 700,400 }, , .t. ) + oTab := XbpTabPage():new( ::oView, , { 5,5 }, { 700,400 }, , .t. ) oTab:caption := "Welcome" oTab:minimized := .F. oTab:create() @@ -472,7 +518,8 @@ METHOD IdeHome:formatSourceInfo( aHtm, aSrc ) METHOD IdeHome:buildFaqTab() LOCAL oTab, qBrw, aFaq, aHtm, a_, b_, s - oTab := XbpTabPage():new( ::aViews[ 1 ], , { 5,5 }, { 700,400 }, , .t. ) + //oTab := XbpTabPage():new( ::aViews[ 1 ], , { 5,5 }, { 700,400 }, , .t. ) + oTab := XbpTabPage():new( ::oView, , { 5,5 }, { 700,400 }, , .t. ) oTab:caption := "FAQ's" oTab:minimized := .F. oTab:create() diff --git a/harbour/contrib/hbide/idemain.prg b/harbour/contrib/hbide/idemain.prg index 7d0e7f10d6..14d0b3ab94 100644 --- a/harbour/contrib/hbide/idemain.prg +++ b/harbour/contrib/hbide/idemain.prg @@ -280,7 +280,6 @@ CLASS HbIde DATA lLineNumbersVisible INIT .t. DATA lHorzRulerVisible INIT .t. DATA lCurrentLineHighlightEnabled INIT .t. - DATA lCurEditsMdi INIT .t. DATA cWrkFolderLast INIT "" DATA cWrkProject INIT "" @@ -715,9 +714,9 @@ METHOD HbIde:create( aParams ) ::oDK:setView( "Main" ) ELSEIF ::nRunMode == HBIDE_RUN_MODE_HBP ::oDockED:hide() - ::oDK:setView( "Stats" ) + ::oDK:setView( "Main" ) ELSE - ::oDK:setView( "Stats" ) + ::oDK:setView( "Main" ) ::oDK:setView( cView ) ENDIF ::qTabWidget:setCurrentIndex( -1 ) @@ -730,8 +729,6 @@ METHOD HbIde:create( aParams ) qSplash := NIL qPixMap := NIL - ::oDK:hideStats() /* A Work in progress */ - /* Load tags last tagged projects */ ::oFN:loadTags( ::oINI:aTaggedProjects ) @@ -873,7 +870,8 @@ METHOD HbIde:execAction( cKey ) PostAppEvent( xbeP_Close, NIL, NIL, ::oDlg ) EXIT CASE "Home" - ::oDK:setView( "Stats" ) + //::oDK:setView( "Stats" ) + ::oHM:show() RETURN Self CASE "Animate" ::oDK:animateComponents() diff --git a/harbour/contrib/hbide/idesaveload.prg b/harbour/contrib/hbide/idesaveload.prg index 96f2428985..b4f5228f40 100644 --- a/harbour/contrib/hbide/idesaveload.prg +++ b/harbour/contrib/hbide/idesaveload.prg @@ -93,6 +93,7 @@ CLASS IdeINI INHERIT IdeObject DATA cDbStructDialogGeometry INIT "" DATA cTablesDialogGeometry INIT "" DATA cChangelogDialogGeometry INIT "" + DATA cStatsDialogGeometry INIT "" // DATA cRecentTabIndex INIT "" // @@ -163,7 +164,7 @@ CLASS IdeINI INHERIT IdeObject DATA lCompleteArgumented INIT .f. DATA aAppThemes INIT {} - DATA lEditsMdi INIT .f. + DATA lEditsMdi INIT .t. DATA lShowEditsLeftToolbar INIT .t. DATA lShowEditsTopToolbar INIT .t. @@ -178,6 +179,7 @@ CLASS IdeINI INHERIT IdeObject DATA cUserChangeLog INIT "" DATA lShowHideDocks INIT .t. + DATA nEditsViewStyle INIT 0 METHOD new( oIde ) METHOD create( oIde ) @@ -347,6 +349,7 @@ METHOD IdeINI:save( cHbideIni ) aadd( txt_, "DbStructDialogGeometry" + "=" + ::cDbStructDialogGeometry ) aadd( txt_, "TablesDialogGeometry" + "=" + ::cTablesDialogGeometry ) aadd( txt_, "ChangelogDialogGeometry" + "=" + ::cChangelogDialogGeometry ) + aadd( txt_, "StatsDialogGeometry" + "=" + ::cStatsDialogGeometry ) // aadd( txt_, "CurrentLineHighlightMode" + "=" + iif( ::lCurrentLineHighlightEnabled, "YES", "NO" ) ) aadd( txt_, "LineNumbersDisplayMode" + "=" + iif( ::lLineNumbersVisible, "YES", "NO" ) ) @@ -411,6 +414,7 @@ METHOD IdeINI:save( cHbideIni ) aadd( txt_, "UserChangeLog" + "=" + ::cUserChangeLog ) aadd( txt_, "VSSExe" + "=" + ::cVSSExe ) aadd( txt_, "VSSDatabase" + "=" + ::cVSSDatabase ) + aadd( txt_, "EditsViewStyle" + "=" + hb_ntos( ::nEditsViewStyle ) ) aadd( txt_, "" ) aadd( txt_, "[PROJECTS]" ) @@ -424,7 +428,7 @@ METHOD IdeINI:save( cHbideIni ) aadd( txt_, "[FILES]" ) aadd( txt_, " " ) nn := 0 - FOR j := 2 TO len( ::oIde:aViews ) + FOR j := 1 TO len( ::oIde:aViews ) ::oIde:lClosing := .t. ::oDK:setView( ::oIde:aViews[ j ]:oWidget:objectName() ) @@ -669,6 +673,7 @@ METHOD IdeINI:load( cHbideIni ) CASE "DbStructDialogGeometry" ; ::cDbStructDialogGeometry := cVal ; EXIT CASE "TablesDialogGeometry" ; ::cTablesDialogGeometry := cVal ; EXIT CASE "ChangelogDialogGeometry" ; ::cChangelogDialogGeometry := cVal ; EXIT + CASE "StatsDialogGeometry" ; ::cStatsDialogGeometry := cVal ; EXIT // CASE "CurrentLineHighlightMode" ; ::oIde:lCurrentLineHighlightEnabled := !( cVal == "NO" ); EXIT CASE "LineNumbersDisplayMode" ; ::oIde:lLineNumbersVisible := !( cVal == "NO" ); EXIT @@ -732,7 +737,7 @@ METHOD IdeINI:load( cHbideIni ) // CASE "VSSExe" ; ::cVSSExe := cVal ; EXIT CASE "VSSDatabase" ; ::cVSSDatabase := cVal ; EXIT - + CASE "EditsViewStyle" ; ::nEditsViewStyle := val( cVal ); EXIT ENDSWITCH ENDIF @@ -847,7 +852,7 @@ METHOD IdeINI:load( cHbideIni ) NEXT ENDIF - ::oIde:lCurEditsMdi := ::lEditsMdi + ::lEditsMdi := .t. /* Enabled Permanently - scheduled to be removed by next commit */ RETURN Self