2010-08-03 18:02 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/ideprojmanager.prg
% Fixed: ( hopefully ) the OS path syndrome when a .hbp from
Windows is ported to *nixes.
* contrib/hbide/ideedit.prg
! Minor.
* contrib/hbide/idedocks.prg
+ Implemented: MDI Editing Area - LeftToolbar - Actions:
1. Show Maximized: turns all panels in maximized mode.
In this mode MDI and Stacked protocols are almost the same,
though, MDI mode has many other advantages than Stacked one.
2. Show Stacked Vertically: viewport is distributed in equal
parts vertically and each panel is assigned this much height.
Width of the panel is limited to viewport width. In this
mode "Stats" panel is not considered.
3. Show Stacked Horizontally: viewport is distributed in
equal parts horizontally and each panel is assigned this
much width. Height of the panels equals viewport height.
4. Zoom-in: If view mode is "Stacked Vertically | Horizontally",
then per zoom-in increases the height|width of the panel by
25% more than the current. Zoom-in and zoom-out are never in the
same ratio.
If hbIDE is closed in maximized state, it is presented the same
at next run. This is not true for Vertical|Horizontal stacked view.
The reason is size of the viewport is not determined at the time
of panel creation.
Icons on the toolbar are not representing the actions properly,
and hence are subject to change.
This commit is contained in:
@@ -16,6 +16,42 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-08-03 18:02 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbide/ideprojmanager.prg
|
||||
% Fixed: ( hopefully ) the OS path syndrome when a .hbp from
|
||||
Windows is ported to *nixes.
|
||||
|
||||
* contrib/hbide/ideedit.prg
|
||||
! Minor.
|
||||
|
||||
* contrib/hbide/idedocks.prg
|
||||
+ Implemented: MDI Editing Area - LeftToolbar - Actions:
|
||||
1. Show Maximized: turns all panels in maximized mode.
|
||||
In this mode MDI and Stacked protocols are almost the same,
|
||||
though, MDI mode has many other advantages than Stacked one.
|
||||
|
||||
2. Show Stacked Vertically: viewport is distributed in equal
|
||||
parts vertically and each panel is assigned this much height.
|
||||
Width of the panel is limited to viewport width. In this
|
||||
mode "Stats" panel is not considered.
|
||||
|
||||
3. Show Stacked Horizontally: viewport is distributed in
|
||||
equal parts horizontally and each panel is assigned this
|
||||
much width. Height of the panels equals viewport height.
|
||||
|
||||
4. Zoom-in: If view mode is "Stacked Vertically | Horizontally",
|
||||
then per zoom-in increases the height|width of the panel by
|
||||
25% more than the current. Zoom-in and zoom-out are never in the
|
||||
same ratio.
|
||||
|
||||
If hbIDE is closed in maximized state, it is presented the same
|
||||
at next run. This is not true for Vertical|Horizontal stacked view.
|
||||
The reason is size of the viewport is not determined at the time
|
||||
of panel creation.
|
||||
|
||||
Icons on the toolbar are not representing the actions properly,
|
||||
and hence are subject to change.
|
||||
|
||||
2010-08-03 21:57 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* include/hbextern.ch
|
||||
* src/vm/Makefile
|
||||
|
||||
@@ -147,6 +147,11 @@ CLASS IdeDocks INHERIT IdeObject
|
||||
METHOD getEditorPanelsInfo()
|
||||
METHOD restPanelsGeometry()
|
||||
METHOD savePanelsGeometry()
|
||||
METHOD stackVertically()
|
||||
METHOD stackHorizontally()
|
||||
METHOD stackMaximized()
|
||||
METHOD stackZoom( nMode )
|
||||
METHOD restState( nMode )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -334,13 +339,24 @@ METHOD IdeDocks:buildDialog()
|
||||
IF x_[ 1,5 ] == QMdiArea_TabbedView
|
||||
::oStackedWidget:oWidget:setViewMode( QMdiArea_TabbedView )
|
||||
ENDIF
|
||||
FOR EACH a_ IN x_
|
||||
::oIde:aMdies[ a_:__enumIndex() ]:setWindowState( a_[ 4 ] )
|
||||
NEXT
|
||||
IF x_[ 1,6 ] == 1
|
||||
|
||||
IF x_[ 1,6 ] == 1
|
||||
::oStackedWidget:oWidget:tileSubWindows()
|
||||
ELSEIF x_[ 1,6 ] == 2
|
||||
::oStackedWidget:oWidget:cascadeSubWindows()
|
||||
ELSEIF x_[ 1,6 ] == 3
|
||||
::stackMaximized()
|
||||
#if 0 /* At this point size of the viewport is not determined */
|
||||
ELSEIF x_[ 1,6 ] == 4
|
||||
::stackVertically()
|
||||
ELSEIF x_[ 1,6 ] == 5
|
||||
::stackHorizontally()
|
||||
#endif
|
||||
ELSE
|
||||
FOR EACH a_ IN x_
|
||||
::oIde:aMdies[ a_:__enumIndex() ]:setGeometry( a_[ 2 ] )
|
||||
::oIde:aMdies[ a_:__enumIndex() ]:setWindowState( a_[ 4 ] )
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -572,7 +588,7 @@ HB_TRACE( HB_TR_ALWAYS, "projectTree_dropEvent" )
|
||||
|
||||
CASE "buttonViewOrganized_clicked"
|
||||
::nViewStyle := 0
|
||||
::restPanelsGeometry()
|
||||
::restState()
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewTiled_clicked"
|
||||
@@ -585,6 +601,29 @@ HB_TRACE( HB_TR_ALWAYS, "projectTree_dropEvent" )
|
||||
::nViewStyle := 2
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewMaximized_clicked"
|
||||
::nViewStyle := 3
|
||||
::stackMaximized()
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewStackedVert_clicked"
|
||||
::nViewStyle := 4
|
||||
::stackVertically()
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewStackedHorz_clicked"
|
||||
::nViewStyle := 5
|
||||
::stackHorizontally()
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewZoomedIn_clicked"
|
||||
::stackZoom( +1 )
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewZoomedOut_clicked"
|
||||
::stackZoom( -1 )
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewTabbed_clicked"
|
||||
::oStackedWidget:oWidget:setViewMode( iif( ::oStackedWidget:oWidget:viewMode() == QMdiArea_TabbedView, QMdiArea_SubWindowView, QMdiArea_TabbedView ) )
|
||||
EXIT
|
||||
@@ -610,6 +649,116 @@ HB_TRACE( HB_TR_ALWAYS, "projectTree_dropEvent" )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:restState( nMode )
|
||||
LOCAL qMdi
|
||||
|
||||
HB_SYMBOL_UNUSED( nMode )
|
||||
FOR EACH qMdi IN ::oIde:aMdies
|
||||
qMdi:setWindowState( 0 )
|
||||
NEXT
|
||||
::restPanelsGeometry()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:stackMaximized()
|
||||
LOCAL qObj, qMdi
|
||||
|
||||
qObj := QMdiSubWindow():from( ::oStackedWidget:oWidget:activeSubWindow() )
|
||||
FOR EACH qMdi IN ::oIde:aMdies
|
||||
qMdi:setWindowState( Qt_WindowMaximized )
|
||||
NEXT
|
||||
::oStackedWidget:oWidget:setActiveSubWindow( qObj )
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:stackZoom( nMode )
|
||||
LOCAL qMdi, nT, nL, nH, nW, qRect
|
||||
|
||||
HB_SYMBOL_UNUSED( nMode )
|
||||
|
||||
IF ::nViewStyle == 4 .OR. ::nViewStyle == 5
|
||||
IF ::nViewStyle == 4
|
||||
nT := 0
|
||||
FOR EACH qMdi IN ::oIde:aMdies
|
||||
IF ::aViewsInfo[ qMdi:__enumIndex(), 1 ] != "Stats"
|
||||
qRect := QRect():from( qMdi:geometry() )
|
||||
nH := qRect:height() + ( nMode * ( qRect:height() / 4 ) )
|
||||
qMdi:setGeometry( QRect():new( 0, nT, qRect:width(), nH ) )
|
||||
nT += nH
|
||||
ENDIF
|
||||
NEXT
|
||||
ELSE
|
||||
nL := 0
|
||||
FOR EACH qMdi IN ::oIde:aMdies
|
||||
IF ::aViewsInfo[ qMdi:__enumIndex(), 1 ] != "Stats"
|
||||
qRect := QRect():from( qMdi:geometry() )
|
||||
nW := qRect:width() + ( nMode * ( qRect:width() / 4 ) )
|
||||
qMdi:setGeometry( QRect():new( nL, 0, nW, qRect:height() ) )
|
||||
nL += nW
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:stackHorizontally()
|
||||
LOCAL qArea, qObj, qVPort, nH, nT, nW, qMdi, nL
|
||||
|
||||
::restState( 0 )
|
||||
|
||||
qArea := ::oStackedWidget:oWidget
|
||||
|
||||
qObj := QMdiSubWindow():from( qArea:activeSubWindow() )
|
||||
|
||||
qVPort := QWidget():from( qArea:viewport() )
|
||||
nH := qVPort:height()
|
||||
nW := qVPort:width() / ( len( ::oIde:aMdies ) - 1 )
|
||||
nT := 0
|
||||
nL := 0
|
||||
|
||||
FOR EACH qMdi IN ::oIde:aMdies
|
||||
IF ::aViewsInfo[ qMdi:__enumIndex(), 1 ] != "Stats"
|
||||
qMdi:setGeometry( QRect():new( nL, nT, nW, nH ) )
|
||||
nL += nW
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
::oStackedWidget:oWidget:setActiveSubWindow( qObj )
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:stackVertically()
|
||||
LOCAL qArea, qObj, qVPort, nH, nT, nW, qMdi
|
||||
|
||||
::restState()
|
||||
|
||||
qArea := ::oStackedWidget:oWidget
|
||||
|
||||
qObj := QMdiSubWindow():from( qArea:activeSubWindow() )
|
||||
|
||||
qVPort := QWidget():from( qArea:viewport() )
|
||||
nH := qVPort:height() / ( len( ::oIde:aMdies ) - 1 )
|
||||
nW := qVPort:width()
|
||||
nT := 0
|
||||
|
||||
FOR EACH qMdi IN ::oIde:aMdies
|
||||
IF ::aViewsInfo[ qMdi:__enumIndex(), 1 ] != "Stats"
|
||||
qMdi:setGeometry( QRect():new( 0, nT, nW, nH ) )
|
||||
nT += nH
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
::oStackedWidget:oWidget:setActiveSubWindow( qObj )
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:restPanelsGeometry()
|
||||
LOCAL a_, n
|
||||
FOR EACH a_ IN ::aViewsInfo
|
||||
@@ -821,6 +970,11 @@ METHOD IdeDocks:buildMdiToolbarLeft()
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View as arranged" , "view_organized" , {|| ::execEvent( "buttonViewOrganized_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View as cascaded" , "view_cascaded" , {|| ::execEvent( "buttonViewCascaded_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View as tiled" , "view_tiled" , {|| ::execEvent( "buttonViewTiled_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View Maximized" , "fullscreen" , {|| ::execEvent( "buttonViewMaximized_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View Vertically Tiled" , "view_tiled" , {|| ::execEvent( "buttonViewStackedVert_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View Horizontally Tiled" , "view_tiled" , {|| ::execEvent( "buttonViewStackedHorz_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View Zoom In" , "zoomin" , {|| ::execEvent( "buttonViewZoomedIn_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "View Zoom Out" , "zoomout" , {|| ::execEvent( "buttonViewZoomedOut_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, {} ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, { "Save layout" , "save" , {|| ::execEvent( "buttonSaveLayout_clicked" ) }, .f. } ) )
|
||||
aadd( aBtn, ::buildToolButton( qTBar, {} ) )
|
||||
@@ -984,8 +1138,9 @@ METHOD IdeDocks:buildStackedWidget()
|
||||
::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:setVerticalScrollBarPolicy( Qt_ScrollBarAlwaysOn )
|
||||
::oStackedWidget:oWidget:setHorizontalScrollBarPolicy( Qt_ScrollBarAlwaysOn )
|
||||
::oStackedWidget:oWidget:setActivationOrder( QMdiArea_CreationOrder )
|
||||
|
||||
::oDa:addChild( ::oStackedWidget )
|
||||
|
||||
|
||||
@@ -448,7 +448,6 @@ METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
|
||||
IF !hbqt_isEmptyQtPointer( pAct )
|
||||
qAct := QAction():configure( pAct )
|
||||
cAct := strtran( qAct:text(), "&", "" )
|
||||
HB_TRACE( HB_TR_ALWAYS, cAct )
|
||||
SWITCH cAct
|
||||
CASE "Split Horizontally"
|
||||
::oEditor:split( 1, oEdit )
|
||||
|
||||
@@ -94,6 +94,8 @@ CLASS IdeSource
|
||||
METHOD IdeSource:new( cSource )
|
||||
LOCAL cFilt, cPathFile, cPath, cFile, cExt
|
||||
|
||||
cSource := hbide_pathToOSPath( cSource )
|
||||
|
||||
hbide_parseHbpFilter( cSource, @cFilt, @cPathFile )
|
||||
hb_fNameSplit( cPathFile, @cPath, @cFile, @cExt )
|
||||
|
||||
@@ -102,7 +104,8 @@ METHOD IdeSource:new( cSource )
|
||||
::filter := cFilt
|
||||
::path := hbide_pathNormalized( cPath, .t. )
|
||||
::file := cFile
|
||||
::ext := lower( cExt )
|
||||
//::ext := lower( cExt )
|
||||
::ext := cExt
|
||||
|
||||
RETURN Self
|
||||
|
||||
|
||||
Reference in New Issue
Block a user