diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index 8cd1500425..437bff26e3 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -16,6 +16,54 @@
The license applies to all entries newer than 2009-04-28.
*/
+2010-08-07 15:35 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
+ + contrib/hbide/resources/dbf_p1.png
+ + contrib/hbide/resources/dbf_p10.png
+ + contrib/hbide/resources/dbf_p2.png
+ + contrib/hbide/resources/dbf_p3.png
+ + contrib/hbide/resources/dbf_p4.png
+ + contrib/hbide/resources/dbf_p5.png
+ + contrib/hbide/resources/dbf_p6.png
+ + contrib/hbide/resources/dbf_p7.png
+ + contrib/hbide/resources/dbf_p8.png
+ + contrib/hbide/resources/dbf_p9.png
+ * contrib/hbide/resources/formview.png
+ * contrib/hbide/resources/home3.png
+ * contrib/hbide/resources/new.png
+ * contrib/hbide/resources/print.png
+ * contrib/hbide/resources/statistics.png
+ * contrib/hbide/resources/view_organized.png
+ * contrib/hbide/resources/view_tiled.png
+ * contrib/hbide/resources/view_vertstacked.png
+ * contrib/hbide/resources/view_zoomin.png
+ * contrib/hbide/resources/view_zoomout.png
+ + contrib/hbide/resources/zoomin3.png
+ + contrib/hbide/resources/zoomout3.png
+ * contrib/hbide/hbide.qrc
+ + Added and refined above images.
+
+ * contrib/hbide/idedocks.prg
+ + Assigned: "statistics" icon to "Welcome" tab.
+ ! Reworked: many artifacts.
+
+ * contrib/hbide/idebrowse.prg
+ + Implemented: Edits MDI area icons equivilent functionality
+ in ideDBU panels also. Now you can view browsers in
+ organized, cascaded, tiled, maximized, vertically tiled,
+ horizontally tiled, mode. Verically|Horizontally tiled
+ modes can be zoomed to fit the user requirements.
+ However the last close mode is not retained. Next run
+ always open the "Main" panel with "Organized" view.
+
+ + Assigned: color-differentiated icons to every open browser
+ window. Now the view is more attractive and allows one to
+ memorize a browser by color.
+
+
+ With this commit, rounds of beutification for this session ends.
+ Now concentrating on a really-useful implementation you will
+ know by the end of next-week.
+
2010-08-07 15:28 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbxbp/xbp.ch
+ Added: few more constants with HBP* prefix to be used
diff --git a/harbour/contrib/hbide/hbide.qrc b/harbour/contrib/hbide/hbide.qrc
index 7d19a9c113..f52a38fe83 100644
--- a/harbour/contrib/hbide/hbide.qrc
+++ b/harbour/contrib/hbide/hbide.qrc
@@ -40,6 +40,16 @@
resources/database_search.png
resources/dbl2sglquote.png
resources/dbstruct.png
+resources/dbf_p1.png
+resources/dbf_p2.png
+resources/dbf_p3.png
+resources/dbf_p4.png
+resources/dbf_p5.png
+resources/dbf_p6.png
+resources/dbf_p7.png
+resources/dbf_p8.png
+resources/dbf_p9.png
+resources/dbf_p10.png
resources/dc_delete.png
resources/dc_down.png
resources/dc_folder.png
@@ -103,6 +113,7 @@
resources/hb-16x16.png
resources/hb-32x32.png
resources/hbide.png
+resources/hbide3.png
resources/hbidesplash.png
resources/hbidesplashwatermark.png
resources/help.png
@@ -189,6 +200,7 @@
resources/source_res.png
resources/source_txt.png
resources/source_unknown.png
+resources/statistics.png
resources/spacestotabs.png
resources/stream.png
resources/streamcomment.png
@@ -225,5 +237,7 @@
resources/xmate.png
resources/zoomin.png
resources/zoomout.png
+resources/zoomin3.png
+resources/zoomout3.png
diff --git a/harbour/contrib/hbide/idebrowse.prg b/harbour/contrib/hbide/idebrowse.prg
index 7f2eace8cd..c1addbd40b 100644
--- a/harbour/contrib/hbide/idebrowse.prg
+++ b/harbour/contrib/hbide/idebrowse.prg
@@ -558,34 +558,39 @@ METHOD IdeBrowseManager:execEvent( cEvent, p, p1 )
ENDIF
EXIT
- CASE "buttonViewOrganized_clicked"
- ::oCurPanel:nViewStyle := 0
- ::oCurPanel:restGeometry()
- ::oCurPanel:prepare()
- EXIT
-
- CASE "buttonSaveLayout_clicked"
- ::oCurPanel:saveGeometry()
- EXIT
-
- CASE "buttonViewTiled_clicked"
- ::oCurPanel:saveGeometry()
- ::oCurPanel:tileSubWindows()
- ::oCurPanel:nViewStyle := 1
- ::oCurPanel:prepare()
- EXIT
-
- CASE "buttonViewCascaded_clicked"
- ::oCurPanel:saveGeometry()
- ::oCurPanel:cascadeSubWindows()
- ::oCurPanel:nViewStyle := 2
- ::oCurPanel:prepare()
- EXIT
-
+ /* Left-toolbar actions */
CASE "buttonViewTabbed_clicked"
::oCurPanel:setViewMode( iif( ::oCurPanel:viewMode() == QMdiArea_TabbedView, QMdiArea_SubWindowView, QMdiArea_TabbedView ) )
EXIT
+ CASE "buttonViewOrganized_clicked"
+ ::oCurPanel:setViewStyle( HBPMDI_STYLE_ORGANIZED )
+ EXIT
+ CASE "buttonSaveLayout_clicked"
+ ::oCurPanel:saveGeometry()
+ EXIT
+ CASE "buttonViewCascaded_clicked"
+ ::oCurPanel:setViewStyle( HBPMDI_STYLE_CASCADED )
+ EXIT
+ CASE "buttonViewTiled_clicked"
+ ::oCurPanel:setViewStyle( HBPMDI_STYLE_TILED )
+ EXIT
+ CASE "buttonViewMaximized_clicked"
+ ::oCurPanel:setViewStyle( HBPMDI_STYLE_MAXIMIZED )
+ EXIT
+ CASE "buttonViewStackedVert_clicked"
+ ::oCurPanel:setViewStyle( HBPMDI_STYLE_TILEDVERT )
+ EXIT
+ CASE "buttonViewStackedHorz_clicked"
+ ::oCurPanel:setViewStyle( HBPMDI_STYLE_TILEDHORZ )
+ EXIT
+ CASE "buttonViewZoomedIn_clicked"
+ ::oCurPanel:tilesZoom( +1 )
+ EXIT
+ CASE "buttonViewZoomedOut_clicked"
+ ::oCurPanel:tilesZoom( -1 )
+ EXIT
+ /* Left-toolbar Table Manipulation Actions */
CASE "buttonDbStruct_clicked"
IF !empty( ::oCurBrw )
::showStruct()
@@ -663,6 +668,7 @@ METHOD IdeBrowseManager:execEvent( cEvent, p, p1 )
EXIT
CASE "buttonZaptable_clicked"
EXIT
+ /* End - left-toolbar actions */
ENDSWITCH
@@ -909,7 +915,7 @@ METHOD IdeBrowseManager:buildToolbar()
::buildToolButton( ::qToolbar, {} )
::buildIndexButton()
::buildToolButton( ::qToolbar, { "Search in table" , "find" , {|| ::execEvent( "buttonFind_clicked" ) }, .f. } )
- ::buildToolButton( ::qToolbar, { "Goto record" , "gotoline" , {|| ::execEvent( "buttonGoto_clicked" ) }, .f. } )
+ ::buildToolButton( ::qToolbar, { "Goto record" , "gotoline3" , {|| ::execEvent( "buttonGoto_clicked" ) }, .f. } )
::buildToolButton( ::qToolbar, {} )
::buildToolButton( ::qToolbar, { "Close current table", "dc_delete" , {|| ::execEvent( "buttonClose_clicked" ) }, .f. } )
::qToolbar:addWidget( sp3 )
@@ -931,23 +937,22 @@ METHOD IdeBrowseManager:buildLeftToolbar()
qTBar := ::qToolbarL
aBtn := {}
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Toggle tabbed view" , "view_tabbed" , {|| ::execEvent( "buttonViewTabbed_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Toggle tabbed view" , "view_tabbed" , {|| ::execEvent( "buttonViewTabbed_clicked" ) }, .f. } ) )
hbide_buildToolbarButton( qTBar, {} )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View as arranged" , "view_organized" , {|| ::execEvent( "buttonViewOrganized_clicked" ) }, .f. } ) )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Save layout" , "save3" , {|| ::execEvent( "buttonSaveLayout_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View as arranged" , "view_organized" , {|| ::execEvent( "buttonViewOrganized_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Save layout" , "save3" , {|| ::execEvent( "buttonSaveLayout_clicked" ) }, .f. } ) )
hbide_buildToolbarButton( qTBar, {} )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View as cascaded" , "view_cascaded" , {|| ::execEvent( "buttonViewCascaded_clicked" ) }, .f. } ) )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View as tiled" , "view_tiled" , {|| ::execEvent( "buttonViewTiled_clicked" ) }, .f. } ) )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Maximized" , "fullscreen" , {|| ::execEvent( "buttonViewMaximized_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View as cascaded" , "view_cascaded" , {|| ::execEvent( "buttonViewCascaded_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View as tiled" , "view_tiled" , {|| ::execEvent( "buttonViewTiled_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Maximized" , "fullscreen" , {|| ::execEvent( "buttonViewMaximized_clicked" ) }, .f. } ) )
aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Vertically Tiled" , "view_vertstacked", {|| ::execEvent( "buttonViewStackedVert_clicked" ) }, .f. } ) )
aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Horizontally Tiled" , "view_horzstacked", {|| ::execEvent( "buttonViewStackedHorz_clicked" ) }, .f. } ) )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Zoom In" , "view_zoomin" , {|| ::execEvent( "buttonViewZoomedIn_clicked" ) }, .f. } ) )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Zoom Out" , "view_zoomout" , {|| ::execEvent( "buttonViewZoomedOut_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Zoom In" , "view_zoomin" , {|| ::execEvent( "buttonViewZoomedIn_clicked" ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "View Zoom Out" , "view_zoomout" , {|| ::execEvent( "buttonViewZoomedOut_clicked" ) }, .f. } ) )
hbide_buildToolbarButton( qTBar, {} )
aeval( aBtn, {|q| aadd( ::aToolBtns, q ) } )
-#if 1
::buildToolButton( ::qToolbarL, { "Append a record" , "database_add" , {|| ::execEvent( "buttonAppendRecord_clicked" ) }, .f. } )
::buildToolButton( ::qToolbarL, { "Delete a record" , "database_remove" , {|| ::execEvent( "buttonDelRecord_clicked" ) }, .f. } )
::buildToolButton( ::qToolbarL, { "Lock/Unlock Record" , "database_lock" , {|| ::execEvent( "buttonLockRecord_clicked" ) }, .f. } )
@@ -960,7 +965,6 @@ METHOD IdeBrowseManager:buildLeftToolbar()
::buildToolButton( ::qToolbarL, { "Search in Table" , "database_search" , {|| ::execEvent( "buttonSearchInTable_clicked" ) }, .f. } )
::buildToolButton( ::qToolbarL, {} )
::buildToolButton( ::qToolbarL, { "Zap Table" , "database_process" , {|| ::execEvent( "buttonZaptable_clicked" ) }, .f. } )
-#endif
RETURN Self
@@ -1156,19 +1160,12 @@ CLASS IdeBrowsePanel INHERIT IdeObject
METHOD saveGeometry()
METHOD restGeometry()
METHOD activateBrowser()
+ METHOD setViewStyle( nStyle )
+ METHOD tileVertically()
+ METHOD tileHorizontally()
+ METHOD tilesZoom( nMode )
- METHOD viewMode() INLINE ::qWidget:viewMode()
- METHOD setViewMode( nMode ) INLINE ::qWidget:setViewMode( nMode )
- METHOD tileSubWindows() INLINE ::qWidget:tileSubWindows()
- METHOD cascadeSubWindows() INLINE ::qWidget:cascadeSubWindows()
- METHOD activateNextSubWindow() INLINE ::qWidget:activateNextSubWindow()
- METHOD activatePreviousSubWindow() INLINE ::qWidget:activatePreviousSubWindow()
-
- #if 0
- closeActiveSubWindow()
- closeAllSubWindows()
- setActiveSubWindow( QMdiSubWindow )
- #endif
+ ERROR HANDLER OnError( ... )
ENDCLASS
@@ -1184,6 +1181,11 @@ METHOD IdeBrowsePanel:new( oIde, cPanel, oManager )
::qWidget:setObjectName( ::cPanel )
::qWidget:setDocumentMode( .t. )
::qWidget:setOption( QMdiArea_DontMaximizeSubWindowOnActivation, .t. )
+ ::qWidget:setVerticalScrollBarPolicy( Qt_ScrollBarAsNeeded )
+ ::qWidget:setHorizontalScrollBarPolicy( Qt_ScrollBarAsNeeded )
+ ::qWidget:setDocumentMode( .t. )
+ ::qWidget:setTabShape( QTabWidget_Triangular )
+ ::qWidget:setViewMode( QMdiArea_TabbedView )
::connect( ::qWidget, "subWindowActivated(QMdiSubWindow)", {|p| ::execEvent( "mdiArea_subWindowActivated", p ) } )
@@ -1205,6 +1207,156 @@ METHOD IdeBrowsePanel:destroy()
/*----------------------------------------------------------------------*/
+METHOD IdeBrowsePanel:onError( ... )
+ LOCAL cMsg
+
+ cMsg := __GetMessage()
+ IF SubStr( cMsg, 1, 1 ) == "_"
+ cMsg := SubStr( cMsg, 2 )
+ ENDIF
+
+ RETURN ::qWidget:&cMsg( ... )
+
+/*------------------------------------------------------------------------*/
+
+METHOD IdeBrowsePanel:setViewStyle( nStyle )
+ LOCAL qObj, a_
+ LOCAL nOldStyle := ::nViewStyle
+
+ IF hb_isNumeric( nStyle )
+ IF nStyle != ::nViewStyle
+ IF ::nViewStyle == HBPMDI_STYLE_ORGANIZED
+ ::saveGeometry()
+ ENDIF
+
+ IF ::nViewStyle == HBPMDI_STYLE_MAXIMIZED
+ qObj := QMdiSubWindow():from( ::activeSubWindow() )
+ FOR EACH a_ IN ::aBrowsers
+ a_[ 2 ]:setWindowState( Qt_WindowNoState )
+ NEXT
+ ::setActiveSubWindow( qObj )
+ ENDIF
+
+ SWITCH nStyle
+ CASE HBPMDI_STYLE_ORGANIZED
+ ::restGeometry()
+ EXIT
+ CASE HBPMDI_STYLE_CASCADED
+ ::qWidget:cascadeSubWindows()
+ EXIT
+ CASE HBPMDI_STYLE_TILED
+ ::qWidget:tileSubWindows()
+ EXIT
+ CASE HBPMDI_STYLE_MAXIMIZED
+ qObj := QMdiSubWindow():from( ::activeSubWindow() )
+ FOR EACH a_ IN ::aBrowsers
+ a_[ 2 ]:setWindowState( Qt_WindowMaximized )
+ NEXT
+ ::setActiveSubWindow( qObj )
+ EXIT
+ CASE HBPMDI_STYLE_TILEDVERT
+ ::tileVertically()
+ EXIT
+ CASE HBPMDI_STYLE_TILEDHORZ
+ ::tileHorizontally()
+ EXIT
+ ENDSWITCH
+
+ ::nViewStyle := nStyle
+ ::prepare()
+ ENDIF
+ ENDIF
+ RETURN nOldStyle
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeBrowsePanel:tileVertically()
+ LOCAL qObj, qVPort, nH, nT, nW, a_
+
+ qObj := ::activeSubWindow()
+ qVPort := QWidget():from( ::viewport() )
+ nH := qVPort:height() / len( ::aBrowsers )
+ nW := qVPort:width()
+ nT := 0
+ FOR EACH a_ IN ::aBrowsers
+ a_[ 2 ]:setGeometry( QRect():new( 0, nT, nW, nH ) )
+ nT += nH
+ NEXT
+ ::setActiveSubWindow( qObj )
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeBrowsePanel:tileHorizontally()
+ LOCAL qObj, qVPort, nH, nT, nW, nL, a_
+
+ qObj := ::activeSubWindow()
+ qVPort := QWidget():from( ::viewport() )
+ nH := qVPort:height()
+ nW := qVPort:width() / len( ::aBrowsers )
+ nT := 0
+ nL := 0
+ FOR EACH a_ IN ::aBrowsers
+ a_[ 2 ]:setGeometry( QRect():new( nL, nT, nW, nH ) )
+ nL += nW
+ NEXT
+ ::setActiveSubWindow( qObj )
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeBrowsePanel:tilesZoom( nMode )
+ LOCAL qMdi, nT, nL, nH, nW, qRect, a_
+
+ IF ::nViewStyle == HBPMDI_STYLE_TILEDVERT .OR. ::nViewStyle == HBPMDI_STYLE_TILEDHORZ
+ IF ::nViewStyle == HBPMDI_STYLE_TILEDVERT
+ nT := 0
+ FOR EACH a_ IN ::aBrowsers
+ qMdi := a_[ 2 ]
+ qRect := QRect():from( qMdi:geometry() )
+ nH := qRect:height() + ( nMode * ( qRect:height() / 4 ) )
+ qMdi:setGeometry( QRect():new( 0, nT, qRect:width(), nH ) )
+ nT += nH
+ NEXT
+ ELSE
+ nL := 0
+ FOR EACH a_ IN ::aBrowsers
+ qMdi := a_[ 2 ]
+ qRect := QRect():from( qMdi:geometry() )
+ nW := qRect:width() + ( nMode * ( qRect:width() / 4 ) )
+ qMdi:setGeometry( QRect():new( nL, 0, nW, qRect:height() ) )
+ nL += nW
+ NEXT
+ ENDIF
+
+ ::prepare()
+ ENDIF
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
+METHOD IdeBrowsePanel:saveGeometry()
+ LOCAL a_
+ IF ::nViewStyle == HBPMDI_STYLE_ORGANIZED
+ FOR EACH a_ IN ::aBrowsers
+ a_[ SUB_GEOMETRY ] := QRect():from( a_[ SUB_WINDOW ]:geometry() )
+ NEXT
+ ENDIF
+ RETURN Self
+
+/*------------------------------------------------------------------------*/
+
+METHOD IdeBrowsePanel:restGeometry()
+ LOCAL a_
+ FOR EACH a_ IN ::aBrowsers
+ IF hb_isObject( a_[ SUB_GEOMETRY ] )
+ a_[ SUB_WINDOW ]:setGeometry( a_[ SUB_GEOMETRY ] )
+ ENDIF
+ NEXT
+ RETURN Self
+
+/*----------------------------------------------------------------------*/
+
METHOD IdeBrowsePanel:destroyBrw( oBrw )
LOCAL n, oSub
@@ -1296,30 +1448,6 @@ METHOD IdeBrowsePanel:activateBrowser()
ENDIF
RETURN Self
-/*----------------------------------------------------------------------*/
-
-METHOD IdeBrowsePanel:saveGeometry()
- LOCAL a_
- IF ::nViewStyle == 0 /* Only if in self organized mode */
- FOR EACH a_ IN ::aBrowsers
- a_[ SUB_GEOMETRY ] := QRect():from( a_[ SUB_WINDOW ]:geometry() )
- NEXT
- ENDIF
- RETURN Self
-
-/*------------------------------------------------------------------------*/
-
-METHOD IdeBrowsePanel:restGeometry()
- LOCAL a_
- IF ::nViewStyle == 0
- FOR EACH a_ IN ::aBrowsers
- IF hb_isObject( a_[ SUB_GEOMETRY ] )
- a_[ SUB_WINDOW ]:setGeometry( a_[ SUB_GEOMETRY ] )
- ENDIF
- NEXT
- ENDIF
- RETURN Self
-
/*----------------------------------------------------------------------*/
//
// Class IdeBrowse
@@ -1376,6 +1504,8 @@ CLASS IdeBrowse INHERIT IdeObject
DATA aSeek INIT {}
DATA aToFld INIT {}
+ CLASSDATA nIdentity INIT 0
+
METHOD new( oIde, oManager, oPanel, aInfo )
METHOD create( oIde, oManager, oPanel, aInfo )
METHOD configure()
@@ -1702,6 +1832,7 @@ METHOD IdeBrowse:buildMdiWindow()
::qMdi:setWindowTitle( ::cTable )
::qMdi:setObjectName( hb_ntos( nID ) )
+ ::qMdi:setWindowIcon( hbide_image( "dbf_p" + hb_ntos( ::nID ) ) )
IF ! empty( ::aInfo[ TBL_GEOMETRY ] )
qRect := hb_aTokens( ::aInfo[ TBL_GEOMETRY ], " " )
diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg
index 67485be1eb..02eb013ddd 100644
--- a/harbour/contrib/hbide/idedocks.prg
+++ b/harbour/contrib/hbide/idedocks.prg
@@ -246,20 +246,20 @@ METHOD IdeDocks:getEditorPanelsInfo()
METHOD IdeDocks:buildDialog()
LOCAL s, aSize, a_, lTiled := .t., x_
- ::oIde:oDlg := XbpDialog():new()
- ::oDlg:icon := hbide_image( "hbide" )
- ::oDlg:title := "Harbour IDE"
+ ::oIde:oDlg := XbpDialog():new()
+ ::oDlg:icon := hbide_image( "hbide" )
+ ::oDlg:title := "Harbour IDE"
::oDlg:qtObject := hbide_getUI( "mainwindow" )
::oDlg:create( , , , , , .f. )
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow", ::nAnimantionMode ) )
::oDlg:close := {|| hbide_getYesNo( "hbIDE is about to be closed!", "Are you sure?" ) }
- ::oDlg:oWidget:setDockOptions( QMainWindow_AllowTabbedDocks + QMainWindow_ForceTabbedDocks )
- ::oDlg:oWidget:setTabPosition( Qt_BottomDockWidgetArea, QTabWidget_South )
- ::oDlg:oWidget:setCorner( Qt_BottomLeftCorner, Qt_LeftDockWidgetArea )
- ::oDlg:oWidget:setCorner( Qt_BottomRightCorner, Qt_RightDockWidgetArea )
- ::oDlg:oWidget:resize( 900,470 )
+ ::oDlg:setDockOptions( QMainWindow_AllowTabbedDocks + QMainWindow_ForceTabbedDocks )
+ ::oDlg:setTabPosition( Qt_BottomDockWidgetArea, QTabWidget_South )
+ ::oDlg:setCorner( Qt_BottomLeftCorner, Qt_LeftDockWidgetArea )
+ ::oDlg:setCorner( Qt_BottomRightCorner, Qt_RightDockWidgetArea )
+ ::oDlg:resize( 900,470 )
::oIde:oDa := ::oDlg:drawingArea
@@ -280,7 +280,7 @@ METHOD IdeDocks:buildDialog()
::oIde:qLayout:setHorizontalSpacing( 0 )
::oIde:qLayout:setVerticalSpacing( 0 )
//
- ::oDa:oWidget:setLayout( ::qLayout )
+ ::oDa:setLayout( ::qLayout )
IF ::oIde:lCurEditsMdi
::buildMdiToolbar()
@@ -308,7 +308,7 @@ METHOD IdeDocks:buildDialog()
ENDIF
DEFAULT a_[ 3 ] TO "0"
DEFAULT a_[ 4 ] TO "0"
- DEFAULT a_[ 5 ] TO "0"
+ DEFAULT a_[ 5 ] TO hb_ntos( QMdiArea_TabbedView )
DEFAULT a_[ 6 ] TO "0"
a_[ 3 ] := val( a_[ 3 ] )
a_[ 4 ] := val( a_[ 4 ] )
@@ -330,20 +330,20 @@ METHOD IdeDocks:buildDialog()
NEXT
IF ::oIde:lCurEditsMdi
IF lTiled
- ::oStackedWidget:oWidget:tileSubWindows()
+ ::oStackedWidget:tileSubWindows()
ENDIF
ENDIF
::setView( "Stats" ) /* Always call with name */
IF ::oIde:lCurEditsMdi
IF x_[ 1,5 ] == QMdiArea_TabbedView
- ::oStackedWidget:oWidget:setViewMode( QMdiArea_TabbedView )
+ ::oStackedWidget:setViewMode( QMdiArea_TabbedView )
ENDIF
IF x_[ 1,6 ] == 1
- ::oStackedWidget:oWidget:tileSubWindows()
+ ::oStackedWidget:tileSubWindows()
ELSEIF x_[ 1,6 ] == 2
- ::oStackedWidget:oWidget:cascadeSubWindows()
+ ::oStackedWidget:cascadeSubWindows()
ELSEIF x_[ 1,6 ] == 3
::stackMaximized()
#if 0 /* At this point size of the viewport is not determined */
@@ -588,53 +588,46 @@ HB_TRACE( HB_TR_DEBUG, "projectTree_dropEvent" )
ENDIF
EXIT
+ /* Left-toolbar actions */
+ CASE "buttonViewTabbed_clicked"
+ ::oStackedWidget:setViewMode( iif( ::oStackedWidget:viewMode() == QMdiArea_TabbedView, QMdiArea_SubWindowView, QMdiArea_TabbedView ) )
+ EXIT
CASE "buttonViewOrganized_clicked"
- ::nViewStyle := 0
+ ::nViewStyle := HBPMDI_STYLE_ORGANIZED
::restState()
EXIT
-
- CASE "buttonViewTiled_clicked"
- ::oStackedWidget:oWidget:tileSubWindows()
- ::nViewStyle := 1
- EXIT
-
- CASE "buttonViewCascaded_clicked"
- ::oStackedWidget:oWidget:cascadeSubWindows()
- ::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
-
CASE "buttonSaveLayout_clicked"
- IF ::nViewStyle == 0
+ IF ::nViewStyle == HBPMDI_STYLE_ORGANIZED
::savePanelsGeometry()
ENDIF
EXIT
+ CASE "buttonViewTiled_clicked"
+ ::oStackedWidget:tileSubWindows()
+ ::nViewStyle := HBPMDI_STYLE_TILED
+ EXIT
+ CASE "buttonViewCascaded_clicked"
+ ::oStackedWidget:cascadeSubWindows()
+ ::nViewStyle := HBPMDI_STYLE_CASCADED
+ EXIT
+ CASE "buttonViewMaximized_clicked"
+ ::nViewStyle := HBPMDI_STYLE_MAXIMIZED
+ ::stackMaximized()
+ EXIT
+ CASE "buttonViewStackedVert_clicked"
+ ::nViewStyle := HBPMDI_STYLE_TILEDVERT
+ ::stackVertically()
+ EXIT
+ CASE "buttonViewStackedHorz_clicked"
+ ::nViewStyle := HBPMDI_STYLE_TILEDHORZ
+ ::stackHorizontally()
+ EXIT
+ CASE "buttonViewZoomedIn_clicked"
+ ::stackZoom( +1 )
+ EXIT
+ CASE "buttonViewZoomedOut_clicked"
+ ::stackZoom( -1 )
+ EXIT
+ /* Ends: MDI actions */
CASE "mdiSubWindow_windowStateChanged"
IF ! empty( ::oIde:aMdies )
@@ -653,25 +646,22 @@ HB_TRACE( HB_TR_DEBUG, "projectTree_dropEvent" )
METHOD IdeDocks:restState( nMode )
LOCAL qMdi
-
HB_SYMBOL_UNUSED( nMode )
FOR EACH qMdi IN ::oIde:aMdies
- qMdi:setWindowState( 0 )
+ qMdi:setWindowState( Qt_WindowNoState )
NEXT
::restPanelsGeometry()
-
RETURN Self
/*----------------------------------------------------------------------*/
METHOD IdeDocks:stackMaximized()
LOCAL qObj, qMdi
-
- qObj := QMdiSubWindow():from( ::oStackedWidget:oWidget:activeSubWindow() )
+ qObj := QMdiSubWindow():from( ::oStackedWidget:activeSubWindow() )
FOR EACH qMdi IN ::oIde:aMdies
qMdi:setWindowState( Qt_WindowMaximized )
NEXT
- ::oStackedWidget:oWidget:setActiveSubWindow( qObj )
+ ::oStackedWidget:setActiveSubWindow( qObj )
RETURN Self
/*----------------------------------------------------------------------*/
@@ -713,10 +703,8 @@ METHOD IdeDocks:stackHorizontally()
::restState( 0 )
- qArea := ::oStackedWidget:oWidget
-
+ qArea := ::oStackedWidget
qObj := QMdiSubWindow():from( qArea:activeSubWindow() )
-
qVPort := QWidget():from( qArea:viewport() )
nH := qVPort:height()
nW := qVPort:width() / ( len( ::oIde:aMdies ) - 1 )
@@ -730,7 +718,7 @@ METHOD IdeDocks:stackHorizontally()
ENDIF
NEXT
- ::oStackedWidget:oWidget:setActiveSubWindow( qObj )
+ ::oStackedWidget:setActiveSubWindow( qObj )
RETURN Self
/*----------------------------------------------------------------------*/
@@ -738,12 +726,10 @@ METHOD IdeDocks:stackHorizontally()
METHOD IdeDocks:stackVertically()
LOCAL qArea, qObj, qVPort, nH, nT, nW, qMdi
- ::restState()
-
- qArea := ::oStackedWidget:oWidget
+ ::restState( 0 )
+ qArea := ::oStackedWidget
qObj := QMdiSubWindow():from( qArea:activeSubWindow() )
-
qVPort := QWidget():from( qArea:viewport() )
nH := qVPort:height() / ( len( ::oIde:aMdies ) - 1 )
nW := qVPort:width()
@@ -756,7 +742,7 @@ METHOD IdeDocks:stackVertically()
ENDIF
NEXT
- ::oStackedWidget:oWidget:setActiveSubWindow( qObj )
+ ::oStackedWidget:setActiveSubWindow( qObj )
RETURN Self
/*----------------------------------------------------------------------*/
@@ -987,8 +973,8 @@ METHOD IdeDocks:buildMdiToolbarLeft()
aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Toggle Code Completion" , "help1" , {|| ::oEM:toggleCodeCompetion() }, .f. } ) )
aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Toggle Completion Tips" , "infotips" , {|| ::oEM:toggleCompetionTips() }, .f. } ) )
hbide_buildToolbarButton( qTBar, {} )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Zoom In" , "zoomin" , {|| ::oEM:zoom( +1 ) }, .f. } ) )
- aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Zoom Out" , "zoomout" , {|| ::oEM:zoom( -1 ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Zoom In" , "zoomin3" , {|| ::oEM:zoom( +1 ) }, .f. } ) )
+ aadd( aBtn, hbide_buildToolbarButton( qTBar, { "Zoom Out" , "zoomout3" , {|| ::oEM:zoom( -1 ) }, .f. } ) )
hbide_buildToolbarButton( qTBar, {} )
aeval( aBtn, {|q| aadd( ::aMdiBtns, q ) } )
@@ -1114,7 +1100,9 @@ METHOD IdeDocks:buildViewWidget( cView )
qMdi := QMdiSubWindow():new( ::oStackedWidget:oWidget )
qMdi:setWindowTitle( cView )
qMdi:setObjectName( cView )
- IF cView != "Stats"
+ IF cView == "Stats"
+ qMdi:setWindowIcon( hbide_image( "statistics" ) )
+ ELSE
qMdi:setWindowIcon( ::getPanelIcon( cView ) )
ENDIF
diff --git a/harbour/contrib/hbide/resources/dbf_p1.png b/harbour/contrib/hbide/resources/dbf_p1.png
new file mode 100644
index 0000000000..5d94874575
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p1.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p10.png b/harbour/contrib/hbide/resources/dbf_p10.png
new file mode 100644
index 0000000000..69ce1f73d8
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p10.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p2.png b/harbour/contrib/hbide/resources/dbf_p2.png
new file mode 100644
index 0000000000..42aa4ea275
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p2.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p3.png b/harbour/contrib/hbide/resources/dbf_p3.png
new file mode 100644
index 0000000000..5b01f7998d
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p3.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p4.png b/harbour/contrib/hbide/resources/dbf_p4.png
new file mode 100644
index 0000000000..268d76ca11
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p4.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p5.png b/harbour/contrib/hbide/resources/dbf_p5.png
new file mode 100644
index 0000000000..9d6f3dd82f
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p5.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p6.png b/harbour/contrib/hbide/resources/dbf_p6.png
new file mode 100644
index 0000000000..5fe7e8d2d6
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p6.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p7.png b/harbour/contrib/hbide/resources/dbf_p7.png
new file mode 100644
index 0000000000..4ede4fc3d2
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p7.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p8.png b/harbour/contrib/hbide/resources/dbf_p8.png
new file mode 100644
index 0000000000..83fcaebacf
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p8.png differ
diff --git a/harbour/contrib/hbide/resources/dbf_p9.png b/harbour/contrib/hbide/resources/dbf_p9.png
new file mode 100644
index 0000000000..a7b2da329d
Binary files /dev/null and b/harbour/contrib/hbide/resources/dbf_p9.png differ
diff --git a/harbour/contrib/hbide/resources/formview.png b/harbour/contrib/hbide/resources/formview.png
index cda2d6a4f4..d2f0bef5a2 100644
Binary files a/harbour/contrib/hbide/resources/formview.png and b/harbour/contrib/hbide/resources/formview.png differ
diff --git a/harbour/contrib/hbide/resources/home3.png b/harbour/contrib/hbide/resources/home3.png
index 0d3e8b7e09..bad88fd942 100644
Binary files a/harbour/contrib/hbide/resources/home3.png and b/harbour/contrib/hbide/resources/home3.png differ
diff --git a/harbour/contrib/hbide/resources/new.png b/harbour/contrib/hbide/resources/new.png
index 26c7a1cb05..ff2cee8574 100644
Binary files a/harbour/contrib/hbide/resources/new.png and b/harbour/contrib/hbide/resources/new.png differ
diff --git a/harbour/contrib/hbide/resources/print.png b/harbour/contrib/hbide/resources/print.png
index abae8512fd..3a2d4b8391 100644
Binary files a/harbour/contrib/hbide/resources/print.png and b/harbour/contrib/hbide/resources/print.png differ
diff --git a/harbour/contrib/hbide/resources/statistics.png b/harbour/contrib/hbide/resources/statistics.png
new file mode 100644
index 0000000000..e34407257d
Binary files /dev/null and b/harbour/contrib/hbide/resources/statistics.png differ
diff --git a/harbour/contrib/hbide/resources/view_organized.png b/harbour/contrib/hbide/resources/view_organized.png
index efdb341079..da8657443d 100644
Binary files a/harbour/contrib/hbide/resources/view_organized.png and b/harbour/contrib/hbide/resources/view_organized.png differ
diff --git a/harbour/contrib/hbide/resources/view_tiled.png b/harbour/contrib/hbide/resources/view_tiled.png
index 144ac0bde3..fce318bb65 100644
Binary files a/harbour/contrib/hbide/resources/view_tiled.png and b/harbour/contrib/hbide/resources/view_tiled.png differ
diff --git a/harbour/contrib/hbide/resources/view_vertstacked.png b/harbour/contrib/hbide/resources/view_vertstacked.png
index f11f3a01ae..b625fe6f5a 100644
Binary files a/harbour/contrib/hbide/resources/view_vertstacked.png and b/harbour/contrib/hbide/resources/view_vertstacked.png differ
diff --git a/harbour/contrib/hbide/resources/view_zoomin.png b/harbour/contrib/hbide/resources/view_zoomin.png
index ba6171b110..4a9fbb8c34 100644
Binary files a/harbour/contrib/hbide/resources/view_zoomin.png and b/harbour/contrib/hbide/resources/view_zoomin.png differ
diff --git a/harbour/contrib/hbide/resources/view_zoomout.png b/harbour/contrib/hbide/resources/view_zoomout.png
index 8b8874dd03..5ea56d1816 100644
Binary files a/harbour/contrib/hbide/resources/view_zoomout.png and b/harbour/contrib/hbide/resources/view_zoomout.png differ
diff --git a/harbour/contrib/hbide/resources/zoomin3.png b/harbour/contrib/hbide/resources/zoomin3.png
new file mode 100644
index 0000000000..8b08dc6a37
Binary files /dev/null and b/harbour/contrib/hbide/resources/zoomin3.png differ
diff --git a/harbour/contrib/hbide/resources/zoomout3.png b/harbour/contrib/hbide/resources/zoomout3.png
new file mode 100644
index 0000000000..68fb4062d4
Binary files /dev/null and b/harbour/contrib/hbide/resources/zoomout3.png differ