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