2010-07-04 08:40 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbqt/hbqt.ch
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added: more slots covering QMdiArea and QMdiSubWindow classes.
* contrib/hbxbp/xbpbrowse.prg
! Reworked: event handelling methods more spontaneous.
+ contrib/hbide/resources/browser.png
+ contrib/hbide/resources/formview.png
+ contrib/hbide/resources/thumbnail.png
+ contrib/hbide/resources/view_cascaded.png
+ contrib/hbide/resources/view_organized.png
+ contrib/hbide/resources/view_tabbed.png
+ contrib/hbide/resources/view_tiled.png
* contrib/hbide/hbide.qrc
+ Added: few images as above.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideskeletons.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
+ Reworked: application theme management.
Now it includes the missing components from previous.
+ Reworked: ideDBU interface.
Now it is hosted in a MDI interface which is more natural
to table management, including relational views. User can
rearrange and resize the browsers to his personal tastes.
Here is the layout hirarchy of ideDBU:
hbIDE
ideDBU - docking pane, right-hand, floatable, dockable.
Toolbar
Add a table, Form View, Tabbed View, Original View,
Cascaded View, Tiled View, Remove browser,
Panels - create button, switch menu
Panels - user defined, only one visible at a time
Panel 1
Browser 1 - .dbf, an array ( TODO, functionality is there )
Browser 2
Browser n
Panel 2
Browser 1
Browser 2
Browser n
Panel n
Browser 1
Browser 2
Browser n
Panels retain their last contents and are presented
on next run as is. The only exception being panel "Main"
is always the first visible.
NOTE: there is a lot on my drawing board.
So far I was struggling to make the behavior of
XbpBrowser stable per TBrowse specs and interface
design. Rest will follow soon.
@@ -16,6 +16,74 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-07-04 08:40 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbqt/hbqt.ch
|
||||
* contrib/hbqt/hbqt_hbslots.cpp
|
||||
* contrib/hbqt/hbqt_hbslots.h
|
||||
+ Added: more slots covering QMdiArea and QMdiSubWindow classes.
|
||||
|
||||
* contrib/hbxbp/xbpbrowse.prg
|
||||
! Reworked: event handelling methods more spontaneous.
|
||||
|
||||
+ contrib/hbide/resources/browser.png
|
||||
+ contrib/hbide/resources/formview.png
|
||||
+ contrib/hbide/resources/thumbnail.png
|
||||
+ contrib/hbide/resources/view_cascaded.png
|
||||
+ contrib/hbide/resources/view_organized.png
|
||||
+ contrib/hbide/resources/view_tabbed.png
|
||||
+ contrib/hbide/resources/view_tiled.png
|
||||
|
||||
* contrib/hbide/hbide.qrc
|
||||
+ Added: few images as above.
|
||||
|
||||
* contrib/hbide/hbide.prg
|
||||
* contrib/hbide/ideactions.prg
|
||||
* contrib/hbide/idebrowse.prg
|
||||
* contrib/hbide/idedocks.prg
|
||||
* contrib/hbide/ideeditor.prg
|
||||
* contrib/hbide/idemisc.prg
|
||||
* contrib/hbide/ideskeletons.prg
|
||||
* contrib/hbide/idestylesheets.prg
|
||||
* contrib/hbide/idethemes.prg
|
||||
* contrib/hbide/idetools.prg
|
||||
|
||||
+ Reworked: application theme management.
|
||||
Now it includes the missing components from previous.
|
||||
|
||||
+ Reworked: ideDBU interface.
|
||||
Now it is hosted in a MDI interface which is more natural
|
||||
to table management, including relational views. User can
|
||||
rearrange and resize the browsers to his personal tastes.
|
||||
Here is the layout hirarchy of ideDBU:
|
||||
|
||||
hbIDE
|
||||
ideDBU - docking pane, right-hand, floatable, dockable.
|
||||
Toolbar
|
||||
Add a table, Form View, Tabbed View, Original View,
|
||||
Cascaded View, Tiled View, Remove browser,
|
||||
Panels - create button, switch menu
|
||||
Panels - user defined, only one visible at a time
|
||||
Panel 1
|
||||
Browser 1 - .dbf, an array ( TODO, functionality is there )
|
||||
Browser 2
|
||||
Browser n
|
||||
Panel 2
|
||||
Browser 1
|
||||
Browser 2
|
||||
Browser n
|
||||
Panel n
|
||||
Browser 1
|
||||
Browser 2
|
||||
Browser n
|
||||
Panels retain their last contents and are presented
|
||||
on next run as is. The only exception being panel "Main"
|
||||
is always the first visible.
|
||||
|
||||
NOTE: there is a lot on my drawing board.
|
||||
So far I was struggling to make the behavior of
|
||||
XbpBrowser stable per TBrowse specs and interface
|
||||
design. Rest will follow soon.
|
||||
|
||||
2010-07-04 15:53 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* harbour-win-spec
|
||||
* harbour-wce-spec
|
||||
|
||||
@@ -509,7 +509,6 @@ METHOD HbIde:create( aParams )
|
||||
ENDIF
|
||||
|
||||
::oDockB2:hide() /* This widget never contains anything so must be forced to hide */
|
||||
::oQScintillaDock:hide()
|
||||
|
||||
/* Request Main Window to Appear on the Screen */
|
||||
::oHM:refresh()
|
||||
@@ -524,6 +523,9 @@ METHOD HbIde:create( aParams )
|
||||
::qTabWidget:setCurrentIndex( 0 )
|
||||
NEXT
|
||||
|
||||
/* Refresh Stylesheet for all components at once */
|
||||
::oDK:animateComponents( ::nAnimantionMode )
|
||||
|
||||
::oDlg:Show()
|
||||
IF ::nRunMode == HBIDE_RUN_MODE_PRG
|
||||
::oDockPT:hide()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<file>resources/blockcomment.png</file>
|
||||
<file>resources/blockindentl.png</file>
|
||||
<file>resources/blockindentr.png</file>
|
||||
<file>resources/browser.png</file>
|
||||
<file>resources/build.png</file>
|
||||
<file>resources/builderror.png</file>
|
||||
<file>resources/buildlaunch.png</file>
|
||||
@@ -67,6 +68,7 @@
|
||||
<file>resources/fl_txt.png</file>
|
||||
<file>resources/folder.png</file>
|
||||
<file>resources/font.png</file>
|
||||
<file>resources/formview.png</file>
|
||||
<file>resources/fullscreen.png</file>
|
||||
<file>resources/go-bottom.png</file>
|
||||
<file>resources/go-down.png</file>
|
||||
@@ -174,6 +176,7 @@
|
||||
<file>resources/tabunmodified.png</file>
|
||||
<file>resources/tests.png</file>
|
||||
<file>resources/text.png</file>
|
||||
<file>resources/thumbnail.png</file>
|
||||
<file>resources/togglelinenumber.png</file>
|
||||
<file>resources/tolower.png</file>
|
||||
<file>resources/tools.png</file>
|
||||
@@ -183,6 +186,10 @@
|
||||
<file>resources/unload_1.png</file>
|
||||
<file>resources/up.png</file>
|
||||
<file>resources/up16.png</file>
|
||||
<file>resources/view_cascaded.png</file>
|
||||
<file>resources/view_organized.png</file>
|
||||
<file>resources/view_tabbed.png</file>
|
||||
<file>resources/view_tiled.png</file>
|
||||
<file>resources/vr-16x16.png</file>
|
||||
<file>resources/vr.png</file>
|
||||
<file>resources/xmate.png</file>
|
||||
|
||||
@@ -382,14 +382,17 @@ METHOD IdeActions:buildToolBar()
|
||||
METHOD IdeActions:buildMainMenu()
|
||||
LOCAL oMenuBar, oSubMenu, oSubMenu2, n, f
|
||||
LOCAL oIde := ::oIde
|
||||
// LOCAL cTheme := "QMenuPop"
|
||||
|
||||
oMenuBar := ::oDlg:MenuBar()
|
||||
oMenuBar:setStyleSheet( GetStyleSheet( "QMenuBar", ::nAnimantionMode ) )
|
||||
//oMenuBar:setStyleSheet( GetStyleSheet( "QMenuBar", ::nAnimantionMode ) )
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* File */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
oSubMenu := XbpMenu():new( oMenuBar ):create()
|
||||
//oSubMenu:oWidget:setStyleSheet( GetStyleSheet( cTheme ) )
|
||||
|
||||
oSubMenu:title := "~File"
|
||||
|
||||
oSubMenu2 := XbpMenu():new( oSubMenu ):create()
|
||||
@@ -523,36 +526,37 @@ METHOD IdeActions:buildMainMenu()
|
||||
oSubMenu := XbpMenu():new( oMenuBar ):create()
|
||||
oSubMenu:title := "~View"
|
||||
oMenuBar:addItem( { oSubMenu, NIL } )
|
||||
//oSubMenu:oWidget:setStyleSheet( GetStyleSheet( cTheme ) )
|
||||
|
||||
oSubMenu:addItem( { "Toggle Animation", {|| oIde:execAction( "Animate" ) } } )
|
||||
oSubMenu:addItem( { "Toggle Animation", {|| oIde:execAction( "Animate" ) } } )
|
||||
oSubMenu:oWidget:addSeparator()
|
||||
oSubMenu:oWidget:addAction_4( ::oIde:oMainToolbar:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarPanels:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarLines:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarDocks:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oIde:oMainToolbar:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarPanels:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarLines:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::qTBarDocks:toggleViewAction() )
|
||||
oSubMenu:addItem( { "Toggle Statusbar", {|| oIde:execAction( "ToggleStatusBar" ) } } )
|
||||
oSubMenu:oWidget:addSeparator()
|
||||
oSubMenu:oWidget:addAction_4( ::oDockPT:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDockED:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oSkltnsTreeDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDockPT:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDockED:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oSkltnsTreeDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addSeparator()
|
||||
oSubMenu:oWidget:addAction_4( ::oHelpDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDocViewDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDocWriteDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oFuncDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oFunctionsDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oPropertiesDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oEnvironDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oSkeltnDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oThemesDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oFindDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oSourceThumbnailDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oQScintillaDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oHelpDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDocViewDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDocWriteDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oFuncDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oFunctionsDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oPropertiesDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oEnvironDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oSkeltnDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oThemesDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oFindDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oSourceThumbnailDock:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oQScintillaDock:oWidget:toggleViewAction() )
|
||||
|
||||
oSubMenu:oWidget:addSeparator()
|
||||
oSubMenu:oWidget:addAction_4( ::oDockB2:oWidget:toggleViewAction() )
|
||||
* oSubMenu:oWidget:addAction_4( ::oDockB1:oWidget:toggleViewAction() )
|
||||
* oSubMenu:oWidget:addAction_4( ::oDockB:oWidget:toggleViewAction() )
|
||||
oSubMenu:oWidget:addAction_4( ::oDockB2:oWidget:toggleViewAction() )
|
||||
* oSubMenu:oWidget:addAction_4( ::oDockB1:oWidget:toggleViewAction() )
|
||||
* oSubMenu:oWidget:addAction_4( ::oDockB:oWidget:toggleViewAction() )
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Project */
|
||||
|
||||
@@ -75,6 +75,26 @@
|
||||
#define BRW_TYPE_DBF 1
|
||||
#define BRW_TYPE_ARRAY 2
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
#define TBL_PANEL 1
|
||||
#define TBL_NAME 2
|
||||
#define TBL_ALIAS 3
|
||||
#define TBL_DRIVER 4
|
||||
#define TBL_INDEX 5
|
||||
#define TBL_RECORD 6
|
||||
#define TBL_CURSOR 7
|
||||
#define TBL_GEOMETRY 8
|
||||
#define TBL_NEXT 9
|
||||
|
||||
#define TBL_VRBLS 9
|
||||
|
||||
#define SUB_ID 1
|
||||
#define SUB_WINDOW 2
|
||||
#define SUB_GEOMETRY 3
|
||||
#define SUB_BROWSER 4
|
||||
#define SUB_NIL 5
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
CLASS IdeBrowseManager INHERIT IdeObject
|
||||
@@ -92,21 +112,28 @@ CLASS IdeBrowseManager INHERIT IdeObject
|
||||
DATA oCurBrw
|
||||
DATA oCurPanel
|
||||
|
||||
DATA qPanelsMenu
|
||||
DATA qPanelsButton
|
||||
DATA aPanelsAct INIT {}
|
||||
|
||||
METHOD new( oIde )
|
||||
METHOD create( oIde )
|
||||
METHOD show()
|
||||
METHOD destroy()
|
||||
METHOD buildToolbar()
|
||||
METHOD execEvent( cEvent, p )
|
||||
METHOD addTable( cFileDBF, cAlias )
|
||||
METHOD execEvent( cEvent, p, p1 )
|
||||
METHOD addTable( cFileDBF, cAlias, aInfo )
|
||||
METHOD addArray( aData, aAttr )
|
||||
METHOD getPanelNames()
|
||||
METHOD getPanelsInfo()
|
||||
METHOD addPanels()
|
||||
METHOD addPanel( cPanel )
|
||||
METHOD showPanel( cPanel )
|
||||
METHOD setPanel( cPanel )
|
||||
METHOD isPanel( cPanel )
|
||||
METHOD loadTables()
|
||||
METHOD buildPanelsButton()
|
||||
METHOD addPanelsMenu( cPanel )
|
||||
METHOD setStyleSheet( nMode )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -119,22 +146,51 @@ METHOD IdeBrowseManager:new( oIde )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:getPanelNames()
|
||||
LOCAL aNames := {}
|
||||
aeval( ::aPanels, {|e| aadd( aNames, e:cPanel ) } )
|
||||
LOCAL oPanel, aNames := {}, aAttr
|
||||
|
||||
FOR EACH oPanel IN ::aPanels
|
||||
aAttr := {}
|
||||
|
||||
aadd( aAttr, oPanel:cPanel )
|
||||
aadd( aAttr, hb_ntos( oPanel:viewMode() ) )
|
||||
aadd( aAttr, hb_ntos( oPanel:nViewStyle ) )
|
||||
|
||||
aadd( aNames, hbide_array2String( aAttr, "," ) )
|
||||
NEXT
|
||||
RETURN aNames
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:getPanelsInfo()
|
||||
LOCAL oBrw, oPanel
|
||||
LOCAL aInfo := {}
|
||||
LOCAL oBrw, oPanel, aSub
|
||||
LOCAL aInfo := {}, aAttr
|
||||
|
||||
FOR EACH oPanel IN ::aPanels
|
||||
FOR EACH oBrw IN oPanel:aItems
|
||||
FOR EACH aSub IN oPanel:subWindows()
|
||||
aAttr := array( TBL_VRBLS )
|
||||
aAttr[ TBL_PANEL ] := oPanel:cPanel
|
||||
|
||||
oBrw := aSub[ 4 ]
|
||||
|
||||
IF oBrw:nType == BRW_TYPE_DBF
|
||||
aadd( aInfo, oPanel:cPanel + "," + oBrw:cTable + "," + oBrw:cAlias + "," + oBrw:cDriver + "," + ;
|
||||
hb_ntos( oBrw:nOrder ) + "," + hb_ntos( oBrw:recNo() ) + hb_ntos( oBrw:nCursorType ) )
|
||||
aAttr[ TBL_NAME ] := oBrw:cTable
|
||||
aAttr[ TBL_ALIAS ] := oBrw:cAlias
|
||||
aAttr[ TBL_DRIVER ] := oBrw:cDriver
|
||||
aAttr[ TBL_INDEX ] := hb_ntos( oBrw:indexOrd() )
|
||||
aAttr[ TBL_RECORD ] := hb_ntos( oBrw:recNo() )
|
||||
aAttr[ TBL_CURSOR ] := hb_ntos( oBrw:nCursorType )
|
||||
IF !hb_isObject( aSub[ 3 ] )
|
||||
aSub[ 3 ] := QRect():from( aSub[ 2 ]:geometry() )
|
||||
ENDIF
|
||||
aAttr[ TBL_GEOMETRY ] := hb_ntos( aSub[ 3 ]:x() ) + " " + hb_ntos( aSub[ 3 ]:y() ) + " " + ;
|
||||
hb_ntos( aSub[ 3 ]:width() ) + " " + hb_ntos( aSub[ 3 ]:height() )
|
||||
aAttr[ TBL_NEXT ] := ""
|
||||
|
||||
ELSEIF oBrw:nType == BRW_TYPE_ARRAY
|
||||
//
|
||||
ENDIF
|
||||
|
||||
aadd( aInfo, hbide_array2String( aAttr, "," ) )
|
||||
NEXT
|
||||
NEXT
|
||||
|
||||
@@ -142,19 +198,16 @@ METHOD IdeBrowseManager:getPanelsInfo()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:setStyleSheet( nMode )
|
||||
|
||||
::qToolbar:setStyleSheet( GetStyleSheet( "QToolBar", nMode ) )
|
||||
::qPanelsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", nMode ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:destroy()
|
||||
LOCAL oPanel, oBrw
|
||||
|
||||
FOR EACH oPanel IN ::aPanels
|
||||
FOR EACH oBrw IN oPanel:aItems
|
||||
oBrw:destroy()
|
||||
oBrw := NIL
|
||||
NEXT
|
||||
oPanel:aItems := NIL
|
||||
oPanel := NIL
|
||||
NEXT
|
||||
::aPanels := NIL
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -197,6 +250,9 @@ METHOD IdeBrowseManager:create( oIde )
|
||||
/* Spread tables onto panels */
|
||||
::loadTables()
|
||||
|
||||
/* Switch to the default panel */
|
||||
::setPanel( "Main" )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -208,45 +264,58 @@ METHOD IdeBrowseManager:buildToolbar()
|
||||
::qToolbar:setIconSize( QSize():new( 16,16 ) )
|
||||
::qToolbar:setStyleSheet( GetStyleSheet( "QToolBar", ::nAnimantionMode ) )
|
||||
|
||||
aadd( ::aButtons, { "Open a table" , "open" , "clicked()", {|| ::execEvent( "buttonOpen_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, { "Close current table", "close" , "clicked()", {|| ::execEvent( "buttonClose_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, { "Show/hide form view", "fullscreen" , "clicked()", {|| ::execEvent( "buttonShowForm_clicked" ) }, .t. } )
|
||||
aadd( ::aButtons, { "Open a table" , "dc_plus" , "clicked()", {|| ::execEvent( "buttonOpen_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, {} )
|
||||
aadd( ::aButtons, { "Show/hide form view", "formview" , "clicked()", {|| ::execEvent( "buttonShowForm_clicked" ) }, .t. } )
|
||||
aadd( ::aButtons, {} )
|
||||
aadd( ::aButtons, { "Toggle View" , "view_tabbed" , "clicked()", {|| ::execEvent( "buttonViewTabbed_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, {} )
|
||||
aadd( ::aButtons, { "View as arranged" , "view_organized", "clicked()", {|| ::execEvent( "buttonViewOrganized_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, { "View as cascaded" , "view_cascaded" , "clicked()", {|| ::execEvent( "buttonViewCascaded_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, { "View as tiled" , "view_tiled" , "clicked()", {|| ::execEvent( "buttonViewTiled_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, {} )
|
||||
aadd( ::aButtons, { "Close current table", "dc_delete" , "clicked()", {|| ::execEvent( "buttonClose_clicked" ) }, .f. } )
|
||||
aadd( ::aButtons, {} )
|
||||
|
||||
FOR EACH aBtn IN ::aButtons
|
||||
qBtn := QToolButton():new()
|
||||
qBtn:setTooltip( aBtn[ 1 ] )
|
||||
qBtn:setAutoRaise( .t. )
|
||||
qBtn:setIcon( hbide_image( aBtn[ 2 ] ) )
|
||||
IF aBtn[ 5 ]
|
||||
qBtn:setCheckable( .t. )
|
||||
IF empty( aBtn )
|
||||
::qToolbar:addSeparator()
|
||||
ELSE
|
||||
qBtn := QToolButton():new()
|
||||
qBtn:setTooltip( aBtn[ 1 ] )
|
||||
qBtn:setAutoRaise( .t. )
|
||||
qBtn:setIcon( hbide_image( aBtn[ 2 ] ) )
|
||||
IF aBtn[ 5 ]
|
||||
qBtn:setCheckable( .t. )
|
||||
ENDIF
|
||||
::connect( qBtn, aBtn[ 3 ], aBtn[ 4 ] )
|
||||
::qToolBar:addWidget( qBtn )
|
||||
aadd( ::aToolBtns, qBtn )
|
||||
ENDIF
|
||||
|
||||
::connect( qBtn, aBtn[ 3 ], aBtn[ 4 ] )
|
||||
|
||||
::qToolBar:addWidget( qBtn )
|
||||
|
||||
aadd( ::aToolBtns, qBtn )
|
||||
NEXT
|
||||
|
||||
::buildPanelsButton()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:addPanels()
|
||||
LOCAL cPanel, aPanel
|
||||
LOCAL cPanel, aPnl
|
||||
|
||||
::addPanel( "Main" ) /* The default one */
|
||||
::addPanel( "Main", .t. ) /* The default one */
|
||||
|
||||
FOR EACH cPanel IN ::oINI:aDbuPanelsInfo
|
||||
aPanel := hb_aTokens( cPanel )
|
||||
IF aPanel[ 1 ] != "Main"
|
||||
::addPanel( aPanel[ 1 ] )
|
||||
FOR EACH cPanel IN ::oINI:aDbuPanelNames
|
||||
aPnl := hb_aTokens( cPanel, "," )
|
||||
aSize( aPnl, 2 )
|
||||
IF empty( aPnl[ 2 ] )
|
||||
aPnl[ 2 ] := "NO"
|
||||
ENDIF
|
||||
IF aPnl[ 1 ] != "Main"
|
||||
::addPanel( aPnl[ 1 ], aPnl[ 2 ] == "YES" )
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
::qStack:setCurrentWidget( ::aPanels[ 1 ] ) /* Always start with main */
|
||||
::oCurPanel := ::aPanels[ 1 ]
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -260,6 +329,19 @@ METHOD IdeBrowseManager:addPanel( cPanel )
|
||||
|
||||
aadd( ::aPanels, qPanel )
|
||||
|
||||
::addPanelsMenu( cPanel )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:addPanelsMenu( cPanel )
|
||||
LOCAL qAct
|
||||
|
||||
( qAct := QAction():from( ::qPanelsMenu:addAction( cPanel ) ) ):setIcon( hbide_image( "panel_7" ) )
|
||||
::connect( qAct, "triggered(bool)", {|| ::setPanel( cPanel ) } )
|
||||
aadd( ::aPanelsAct, qAct )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -269,22 +351,38 @@ METHOD IdeBrowseManager:isPanel( cPanel )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:showPanel( cPanel )
|
||||
METHOD IdeBrowseManager:setPanel( cPanel )
|
||||
LOCAL n
|
||||
|
||||
IF ( n := ascan( ::aPanels, {|o| o:qWidget:objectName() == cPanel } ) ) > 0
|
||||
::qStack:setCurrentWidget( ::aPanels[ n ] )
|
||||
::qStack:setCurrentWidget( ::aPanels[ n ]:qWidget )
|
||||
::oCurPanel := ::aPanels[ n ]
|
||||
|
||||
::oCurPanel:prepare()
|
||||
|
||||
#if 0
|
||||
::oCurPanel:nViewStyle := 0
|
||||
|
||||
::oCurPanel:saveGeometry()
|
||||
::oCurPanel:tileSubWindows()
|
||||
::oCurPanel:nViewStyle := 1
|
||||
::oCurPanel:prepare()
|
||||
|
||||
::oCurPanel:nViewStyle := 0
|
||||
::oCurPanel:restGeometry()
|
||||
::oCurPanel:prepare()
|
||||
#endif
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:execEvent( cEvent, p )
|
||||
LOCAL cTable, cPath, n, oBrw
|
||||
METHOD IdeBrowseManager:execEvent( cEvent, p, p1 )
|
||||
LOCAL cTable, cPath, cPanel
|
||||
|
||||
HB_SYMBOL_UNUSED( p )
|
||||
HB_SYMBOL_UNUSED( p1 )
|
||||
|
||||
SWITCH cEvent
|
||||
CASE "buttonShowForm_clicked"
|
||||
@@ -299,15 +397,13 @@ METHOD IdeBrowseManager:execEvent( cEvent, p )
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
CASE "buttonCloseX_clicked"
|
||||
::oCurPanel:destroyByX( p )
|
||||
EXIT
|
||||
|
||||
CASE "buttonClose_clicked"
|
||||
IF !empty( ::oCurBrw )
|
||||
IF ( n := ascan( ::oCurPanel:aItems, {|o| o == ::oCurBrw } ) ) > 0
|
||||
hb_adel( ::oCurPanel:aItems, n, .t. )
|
||||
::oCurBrw:destroy()
|
||||
FOR EACH oBrw IN ::oCurPanel:aItems
|
||||
oBrw:oBrw:configure()
|
||||
NEXT
|
||||
ENDIF
|
||||
::oCurPanel:destroy( ::oCurBrw )
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
@@ -319,8 +415,60 @@ METHOD IdeBrowseManager:execEvent( cEvent, p )
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
CASE "qPanelsButton_clicked"
|
||||
cPanel := hbide_fetchAString( ::qToolbar, "New...", "Name the Panel", "New Panel" )
|
||||
IF cPanel != "New..." .AND. cPanel != "Main"
|
||||
IF ::isPanel( cPanel )
|
||||
MsgBox( "Panel: " + cPanel + ", already exists" )
|
||||
ELSE
|
||||
::addPanel( cPanel )
|
||||
::setPanel( cPanel )
|
||||
ENDIF
|
||||
ENDIF
|
||||
EXIT
|
||||
|
||||
CASE "mdiSubWindow_aboutToActivate"
|
||||
// ::oCurPanel:prepare( p )
|
||||
EXIT
|
||||
|
||||
CASE "mdiSubWindow_windowStateChanged"
|
||||
//HB_TRACE( HB_TR_ALWAYS, "mdiSubWindow_windowStateChanged", p, p1 )
|
||||
EXIT
|
||||
|
||||
CASE "buttonViewOrganized_clicked"
|
||||
::oCurPanel:nViewStyle := 0
|
||||
::oCurPanel:restGeometry()
|
||||
::oCurPanel:prepare()
|
||||
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
|
||||
|
||||
CASE "buttonViewTabbed_clicked"
|
||||
::oCurPanel:setViewMode( iif( ::oCurPanel:viewMode() == QMdiArea_TabbedView, QMdiArea_SubWindowView, QMdiArea_TabbedView ) )
|
||||
EXIT
|
||||
|
||||
ENDSWITCH
|
||||
|
||||
#if 0
|
||||
activateNextSubWindow()
|
||||
activatePreviousSubWindow()
|
||||
closeActiveSubWindow()
|
||||
closeAllSubWindows()
|
||||
setActiveSubWindow( QMdiSubWindow )
|
||||
#endif
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -334,20 +482,19 @@ METHOD IdeBrowseManager:loadTables()
|
||||
aPanel := hb_aTokens( cInfo, "," )
|
||||
IF ::isPanel( aPanel[ 1 ] )
|
||||
IF hb_fileExists( cTable := hbide_pathToOSPath( aPanel[ 2 ] ) )
|
||||
::showPanel( aPanel[ 1 ] )
|
||||
::addTable( cTable )
|
||||
::setPanel( aPanel[ 1 ] )
|
||||
::addTable( cTable, , aPanel )
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
::qStack:setCurrentWidget( oCurPanel )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:addTable( cFileDBF, cAlias )
|
||||
LOCAL oBrw
|
||||
METHOD IdeBrowseManager:addTable( cFileDBF, cAlias, aInfo )
|
||||
LOCAL oBrw, qSubWindow
|
||||
|
||||
oBrw := IdeBrowse():new()
|
||||
oBrw:cTable := cFileDBF
|
||||
@@ -356,9 +503,14 @@ METHOD IdeBrowseManager:addTable( cFileDBF, cAlias )
|
||||
|
||||
oBrw:create()
|
||||
|
||||
::oCurPanel:addBrowser( oBrw )
|
||||
qSubWindow := ::oCurPanel:addBrowser( oBrw, aInfo )
|
||||
|
||||
aadd( ::oCurPanel:aItems, oBrw )
|
||||
::connect( qSubWindow, "aboutToActivate()", {|| ::execEvent( "mdiSubWindow_aboutToActivate", qSubWindow ) } )
|
||||
::connect( qSubWindow, "windowStateChanged(Qt::WindowStates,Qt::WindowStates)", ;
|
||||
{|p,p1| ::execEvent( "mdiSubWindow_windowStateChanged", p, p1, qSubWindow ) } )
|
||||
|
||||
qSubWindow:installEventFilter( ::pEvents )
|
||||
::connect( qSubWindow, QEvent_Close, {|| ::execEvent( "buttonCloseX_clicked", qSubWindow ) } )
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -371,6 +523,25 @@ METHOD IdeBrowseManager:addArray( aData, aAttr )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowseManager:buildPanelsButton()
|
||||
|
||||
::qPanelsMenu := QMenu():new()
|
||||
::qPanelsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", ::nAnimantionMode ) )
|
||||
|
||||
::qPanelsButton := QToolButton():new()
|
||||
::qPanelsButton:setTooltip( "ideDBU Panels" )
|
||||
::qPanelsButton:setIcon( hbide_image( "panel_8" ) )
|
||||
::qPanelsButton:setPopupMode( QToolButton_MenuButtonPopup )
|
||||
::qPanelsButton:setMenu( ::qPanelsMenu )
|
||||
|
||||
::connect( ::qPanelsButton, "clicked()", {|| ::execEvent( "qPanelsButton_clicked" ) } )
|
||||
|
||||
::qToolbar:addWidget( ::qPanelsButton )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
//
|
||||
// Class IdeBrowsePanel
|
||||
@@ -379,16 +550,37 @@ METHOD IdeBrowseManager:addArray( aData, aAttr )
|
||||
|
||||
CLASS IdeBrowsePanel INHERIT IdeObject
|
||||
|
||||
DATA cPanel INIT ""
|
||||
|
||||
DATA qWidget
|
||||
DATA qLayout
|
||||
DATA qVSplitter
|
||||
DATA qMenuWindows
|
||||
|
||||
DATA aItems INIT {}
|
||||
DATA cPanel INIT ""
|
||||
DATA nViewStyle INIT 0 /* 0=asWindows 1=tabbed */
|
||||
DATA lLayoutLocked INIT .f.
|
||||
|
||||
DATA aSubWindows INIT {}
|
||||
ACCESS subWindows() INLINE ::aSubWindows
|
||||
|
||||
METHOD new( oIde, cPanel )
|
||||
METHOD addBrowser( oBrw )
|
||||
METHOD destroy( oBrw )
|
||||
METHOD destroyByX( qSubWindow )
|
||||
|
||||
METHOD addBrowser( oBrw, aInfo )
|
||||
METHOD prepare()
|
||||
METHOD saveGeometry()
|
||||
METHOD restGeometry()
|
||||
|
||||
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
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -399,28 +591,118 @@ METHOD IdeBrowsePanel:new( oIde, cPanel )
|
||||
::oIde := oIde
|
||||
::cPanel := cPanel
|
||||
|
||||
::qWidget := QWidget():new()
|
||||
::qWidget := QMdiArea():new()
|
||||
::qWidget:setObjectName( ::cPanel )
|
||||
|
||||
::qLayout := QHBoxLayout():new()
|
||||
::qLayout:setContentsMargins( 0,0,0,0 )
|
||||
::qLayout:setSpacing( 2 )
|
||||
|
||||
::qVSplitter := QSplitter():new()
|
||||
::qVSplitter:setOrientation( Qt_Vertical )
|
||||
|
||||
::qLayout:addWidget( ::qVSplitter )
|
||||
|
||||
::qWidget:setLayout( ::qLayout )
|
||||
::qWidget:setDocumentMode( .t. )
|
||||
::qWidget:setOption( QMdiArea_DontMaximizeSubWindowOnActivation, .t. )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowsePanel:addBrowser( oBrw )
|
||||
METHOD IdeBrowsePanel:destroy( oBrw )
|
||||
LOCAL n, oSub
|
||||
|
||||
::qVSplitter:addWidget( oBrw:oWnd:oWidget )
|
||||
IF ( n := ascan( ::aSubWindows, {|e_| e_[ 4 ] == oBrw } ) ) > 0
|
||||
oSub := ::aSubWindows[ n, 2 ]
|
||||
|
||||
::qWidget:removeSubWindow( oSub )
|
||||
oBrw:destroy()
|
||||
oSub := NIL
|
||||
|
||||
hb_adel( ::aSubWindows, n, .t. )
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowsePanel:destroyByX( qSubWindow )
|
||||
LOCAL n, oSub
|
||||
|
||||
IF ( n := ascan( ::aSubWindows, {|e_| e_[ 2 ] == qSubWindow } ) ) > 0
|
||||
oSub := ::aSubWindows[ n, 2 ]
|
||||
|
||||
::qWidget:removeSubWindow( oSub )
|
||||
::aSubWindows[ n, 4 ]:destroy()
|
||||
oSub := NIL
|
||||
|
||||
hb_adel( ::aSubWindows, n, .t. )
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowsePanel:prepare()
|
||||
LOCAL aSub
|
||||
|
||||
FOR EACH aSub IN ::aSubWindows
|
||||
aSub[ SUB_BROWSER ]:configure()
|
||||
NEXT
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowsePanel:addBrowser( oBrw, aInfo )
|
||||
LOCAL qSubWindow, qRect, cR
|
||||
|
||||
STATIC nID := 0
|
||||
|
||||
nID++ /* Unique for current run */
|
||||
|
||||
qSubWindow := QMdiSubWindow():new( ::oDlg:oWidget )
|
||||
|
||||
qSubWindow:setWidget( oBrw:oWnd:oWidget )
|
||||
qSubWindow:setWindowTitle( oBrw:cTable )
|
||||
qSubWindow:setObjectName( hb_ntos( nID ) )
|
||||
|
||||
IF !empty( aInfo ) .AND. !empty( aInfo[ TBL_GEOMETRY ] )
|
||||
qRect := hb_aTokens( aInfo[ TBL_GEOMETRY ], " " )
|
||||
FOR EACH cR IN qRect
|
||||
cR := val( cR )
|
||||
NEXT
|
||||
qRect := QRect():new( qRect[ 1 ], qRect[ 2 ], qRect[ 3 ], qRect[ 4 ] )
|
||||
qSubWindow:setGeometry( qRect )
|
||||
ELSE
|
||||
//qSubWindow:resize( 300, 200 )
|
||||
ENDIF
|
||||
|
||||
::qWidget:addSubWindow( qSubWindow )
|
||||
|
||||
oBrw:oWnd:oWidget:show()
|
||||
qSubWindow:show()
|
||||
|
||||
aadd( ::aSubWindows, { nId, qSubWindow, qRect, oBrw, NIL } )
|
||||
|
||||
RETURN qSubWindow
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowsePanel:saveGeometry()
|
||||
LOCAL aSubWindow
|
||||
|
||||
IF ::nViewStyle == 0 /* Only if in self organized mode */
|
||||
FOR EACH aSubWindow IN ::aSubWindows
|
||||
aSubWindow[ 3 ] := QRect():from( aSubWindow[ 2 ]:geometry() )
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowsePanel:restGeometry()
|
||||
LOCAL aSubWindow
|
||||
|
||||
IF ::nViewStyle == 0
|
||||
FOR EACH aSubWindow IN ::aSubWindows
|
||||
IF hb_isObject( aSubWindow[ 3 ] )
|
||||
aSubWindow[ 2 ]:setGeometry( aSubWindow[ 3 ] )
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -454,8 +736,14 @@ CLASS IdeBrowse INHERIT IdeObject
|
||||
DATA nCursorType INIT XBPBRW_CURSOR_CELL
|
||||
DATA lOpened INIT .f.
|
||||
|
||||
DATA qVerSpl
|
||||
DATA qClose
|
||||
|
||||
ACCESS indexOrd() INLINE ::nOrder
|
||||
|
||||
METHOD new( oIde )
|
||||
METHOD create( oIde )
|
||||
METHOD configure()
|
||||
METHOD destroy()
|
||||
METHOD execEvent( cEvent, p, p1 )
|
||||
METHOD buildBrowser()
|
||||
@@ -471,9 +759,9 @@ CLASS IdeBrowse INHERIT IdeObject
|
||||
METHOD lastRec()
|
||||
METHOD next()
|
||||
METHOD previous()
|
||||
METHOD activated()
|
||||
METHOD buildForm()
|
||||
METHOD populateForm()
|
||||
METHOD fetchAlias( cTable )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -487,8 +775,20 @@ METHOD IdeBrowse:new( oIde )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:fetchAlias( cTable )
|
||||
LOCAL cFile
|
||||
|
||||
STATIC n := 0
|
||||
n++
|
||||
|
||||
hb_fNameSplit( cTable, , @cFile )
|
||||
|
||||
RETURN upper( "C" + cFile + hb_ntos( n ) )
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:create( oIde )
|
||||
LOCAL xVrb, cT
|
||||
LOCAL xVrb, cT, cAlias
|
||||
LOCAL lMissing := .t.
|
||||
|
||||
DEFAULT oIde TO ::oIde
|
||||
@@ -498,6 +798,12 @@ METHOD IdeBrowse:create( oIde )
|
||||
::nType := BRW_TYPE_ARRAY
|
||||
ENDIF
|
||||
|
||||
#if 0
|
||||
IF empty( ::cAlias )
|
||||
::cAlias := ::fetchAlias( ::cTable )
|
||||
ENDIF
|
||||
#endif
|
||||
|
||||
IF ::nType == BRW_TYPE_DBF
|
||||
IF !empty( ::cAlias ) .AND. empty( ::cTable )
|
||||
IF select( ::cAlias ) > 0
|
||||
@@ -509,7 +815,8 @@ METHOD IdeBrowse:create( oIde )
|
||||
IF empty( ::cAlias )
|
||||
USE ( ::cTable ) SHARED NEW VIA ( ::cDriver )
|
||||
ELSE
|
||||
USE ( ::cTable ) SHARED NEW ALIAS ( ::cAlias ) VIA ( ::cDriver )
|
||||
cAlias := ::cAlias
|
||||
USE ( ::cTable ) ALIAS ( cAlias ) SHARED NEW VIA ( ::cDriver )
|
||||
ENDIF
|
||||
IF NetErr()
|
||||
MsgBox( ::cTable, "Could not been opened!" )
|
||||
@@ -570,6 +877,25 @@ METHOD IdeBrowse:destroy()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:configure()
|
||||
LOCAL nRowPos := ::oBrw:rowPos()
|
||||
LOCAL nColPos := ::oBrw:colPos()
|
||||
|
||||
::oBrw:configure()
|
||||
|
||||
IF nRowPos > ::oBrw:rowCount()
|
||||
::oBrw:rowPos := ::oBrw:rowCount()
|
||||
ENDIF
|
||||
::oBrw:colPos := nColPos
|
||||
|
||||
::oBrw:refreshAll()
|
||||
::oBrw:forceStable()
|
||||
::oBrw:setCurrentIndex( .f. )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:buildBrowser()
|
||||
LOCAL qLayout, oWnd, oXbpBrowse
|
||||
|
||||
@@ -605,14 +931,12 @@ METHOD IdeBrowse:buildBrowser()
|
||||
oXbpBrowse:goPosBlock := {|n| ::goto( n ) }
|
||||
oXbpBrowse:phyPosBlock := {| | ::recNo() }
|
||||
|
||||
oXbpBrowse:setInputFocus := {|| ::activated() }
|
||||
|
||||
/* Form View */
|
||||
::qForm := QWidget():new()
|
||||
::qFLayout := QFormLayout():new()
|
||||
::qForm:setLayout( ::qFLayout )
|
||||
|
||||
::qSplitter:addWidget( ::qForm )
|
||||
//::qSplitter:addWidget( ::qForm )
|
||||
|
||||
::qForm:hide() /* Form view defaults to hidden */
|
||||
|
||||
@@ -620,6 +944,17 @@ METHOD IdeBrowse:buildBrowser()
|
||||
::oWnd := oWnd
|
||||
::oBrw := oXbpBrowse
|
||||
|
||||
::qVerSpl := QSplitter():new( Qt_Vertical )
|
||||
::qSplitter:addWidget( ::qVerSpl )
|
||||
|
||||
::qVerSpl:addWidget( ::qForm )
|
||||
|
||||
::qClose := QToolButton():new()
|
||||
::qClose:setIcon( hbide_image( "closetab" ) )
|
||||
::qClose:hide()
|
||||
|
||||
::qVerSpl:addWidget( ::qClose )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -642,15 +977,6 @@ METHOD IdeBrowse:execEvent( cEvent, p, p1 )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:activated()
|
||||
|
||||
HB_TRACE( HB_TR_ALWAYS, "ACTIVATED" )
|
||||
::oQScintillaDock:oWidget:setWindowTitle( ::cTable )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION hbide_xtosForForm( xVrb )
|
||||
LOCAL cType := valtype( xVrb )
|
||||
|
||||
@@ -858,14 +1184,14 @@ METHOD IdeBrowse:goTo( nRec )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:next()
|
||||
LOCAL nSaveRecNum := recno()
|
||||
LOCAL nSaveRecNum := ( ::cAlias )->( recno() )
|
||||
LOCAL lMoved := .T.
|
||||
|
||||
IF ( ::cAlias )->( Eof() )
|
||||
lMoved := .F.
|
||||
ELSE
|
||||
( ::cAlias )->( DBSkip( 1 ) )
|
||||
IF Eof()
|
||||
IF ( ::cAlias )->( Eof() )
|
||||
lMoved := .F.
|
||||
( ::cAlias )->( DBGoTo( nSaveRecNum ) )
|
||||
ENDIF
|
||||
@@ -876,12 +1202,12 @@ METHOD IdeBrowse:next()
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeBrowse:previous()
|
||||
LOCAL nSaveRecNum := Recno()
|
||||
LOCAL nSaveRecNum := ( ::cAlias )->( recno() )
|
||||
LOCAL lMoved := .T.
|
||||
|
||||
( ::cAlias )->( DBSkip( -1 ) )
|
||||
|
||||
IF Bof()
|
||||
IF ( ::cAlias )->( Bof() )
|
||||
( ::cAlias )->( DBGoTo( nSaveRecNum ) )
|
||||
lMoved := .F.
|
||||
ENDIF
|
||||
@@ -889,3 +1215,4 @@ METHOD IdeBrowse:previous()
|
||||
RETURN lMoved
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -696,22 +696,24 @@ METHOD IdeDocks:buildToolBarPanels()
|
||||
::qTBarDocks:setAllowedAreas( Qt_LeftToolBarArea + Qt_RightToolBarArea + Qt_TopToolBarArea + Qt_BottomToolBarArea )
|
||||
|
||||
aBtns := {}
|
||||
aadd( aBtns, { ::oDockPT , "projtree" } )
|
||||
aadd( aBtns, { ::oDockED , "editstree" } )
|
||||
aadd( aBtns, { ::oSkltnsTreeDock, "projtree" } )
|
||||
aadd( aBtns, { ::oDockPT , "projtree" } )
|
||||
aadd( aBtns, { ::oDockED , "editstree" } )
|
||||
aadd( aBtns, { ::oSkltnsTreeDock , "projtree" } )
|
||||
aadd( aBtns, {} )
|
||||
aadd( aBtns, { ::oHelpDock , "help" } )
|
||||
aadd( aBtns, { ::oDocViewDock , "harbourhelp" } )
|
||||
aadd( aBtns, { ::oDocWriteDock , "docwriter" } )
|
||||
aadd( aBtns, { ::oFuncDock , "dc_function" } )
|
||||
aadd( aBtns, { ::oFunctionsDock , "ffn" } )
|
||||
aadd( aBtns, { ::oPropertiesDock, "properties" } )
|
||||
aadd( aBtns, { ::oEnvironDock , "envconfig" } )
|
||||
aadd( aBtns, { ::oSkeltnDock , "codeskeletons" } )
|
||||
aadd( aBtns, { ::oThemesDock , "syntaxhiliter" } )
|
||||
aadd( aBtns, { ::oFindDock , "search" } )
|
||||
aadd( aBtns, { ::oHelpDock , "help" } )
|
||||
aadd( aBtns, { ::oDocViewDock , "harbourhelp" } )
|
||||
aadd( aBtns, { ::oDocWriteDock , "docwriter" } )
|
||||
aadd( aBtns, { ::oFuncDock , "dc_function" } )
|
||||
aadd( aBtns, { ::oFunctionsDock , "ffn" } )
|
||||
aadd( aBtns, { ::oPropertiesDock , "properties" } )
|
||||
aadd( aBtns, { ::oEnvironDock , "envconfig" } )
|
||||
aadd( aBtns, { ::oSkeltnDock , "codeskeletons" } )
|
||||
aadd( aBtns, { ::oThemesDock , "syntaxhiliter" } )
|
||||
aadd( aBtns, { ::oFindDock , "search" } )
|
||||
aadd( aBtns, { ::oSourceThumbnailDock, "thumbnail" } )
|
||||
aadd( aBtns, { ::oQScintillaDock , "browser" } )
|
||||
aadd( aBtns, {} )
|
||||
aadd( aBtns, { ::oDockB2 , "builderror" } )
|
||||
aadd( aBtns, { ::oDockB2 , "builderror" } )
|
||||
|
||||
FOR EACH a_ IN aBtns
|
||||
IF empty( a_ )
|
||||
@@ -1227,7 +1229,7 @@ METHOD IdeDocks:getMarkWidget( nIndex )
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeDocks:animateComponents( nMode )
|
||||
LOCAL cStyle
|
||||
LOCAL cStyle, oView
|
||||
|
||||
IF nMode == NIL
|
||||
::oIde:nAnimantionMode := iif( ::nAnimantionMode == HBIDE_ANIMATION_NONE, HBIDE_ANIMATION_GRADIENT, HBIDE_ANIMATION_NONE )
|
||||
@@ -1236,38 +1238,53 @@ METHOD IdeDocks:animateComponents( nMode )
|
||||
::oIde:nAnimantionMode := nMode
|
||||
::oIde:oINI:cIdeAnimated := hb_ntos( ::nAnimantionMode )
|
||||
|
||||
::oDlg:menubar():setStyleSheet( GetStyleSheet( "QMenuBar", nMode ) )
|
||||
/* Main Window */
|
||||
::oDlg:setStyleSheet( GetStyleSheet( "QMainWindow", ::nAnimantionMode ) )
|
||||
|
||||
::qTBarPanels:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
::qTBarLines:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
::qTBarDocks:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
/* Main Menu Bar with all its submenus */
|
||||
::oDlg:menubar():setStyleSheet( GetStyleSheet( "QMenuBar", nMode ), GetStyleSheet( "QMenuPop", nMode ) )
|
||||
|
||||
::oMainToolbar:setStyleSheet( GetStyleSheet( "QToolBar", nMode ) )
|
||||
/* Toolbars */
|
||||
::oMainToolbar:setStyleSheet( GetStyleSheet( "QToolBar" , nMode ) )
|
||||
::qTBarPanels :setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
::qTBarLines :setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
::qTBarDocks :setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
|
||||
/* User defined toolbars */
|
||||
::oTM:setStyleSheet( GetStyleSheet( "QToolBarLR5", nMode ) )
|
||||
|
||||
::oEM:setStyleSheet( nMode )
|
||||
::oBM:setStyleSheet( nMode )
|
||||
|
||||
/* Statusbar */
|
||||
::oSBar:oWidget:setStyleSheet( GetStyleSheet( "QStatusBar", nMode ) )
|
||||
|
||||
/* Docking Widgets */
|
||||
cStyle := GetStyleSheet( "QDockWidget", nMode )
|
||||
//
|
||||
::oDockPT:oWidget : setStyleSheet( cStyle )
|
||||
::oDockED:oWidget : setStyleSheet( cStyle )
|
||||
::oSkltnsTreeDock:oWidget : setStyleSheet( cStyle )
|
||||
::oHelpDock:oWidget : setStyleSheet( cStyle )
|
||||
::oDocViewDock:oWidget : setStyleSheet( cStyle )
|
||||
::oDocWriteDock:oWidget : setStyleSheet( cStyle )
|
||||
::oFuncDock:oWidget : setStyleSheet( cStyle )
|
||||
::oFunctionsDock:oWidget : setStyleSheet( cStyle )
|
||||
::oPropertiesDock:oWidget : setStyleSheet( cStyle )
|
||||
::oEnvironDock:oWidget : setStyleSheet( cStyle )
|
||||
::oSkeltnDock:oWidget : setStyleSheet( cStyle )
|
||||
::oThemesDock:oWidget : setStyleSheet( cStyle )
|
||||
::oFindDock:oWidget : setStyleSheet( cStyle )
|
||||
::oDockB2:oWidget : setStyleSheet( cStyle )
|
||||
::oQScintillaDock:oWidget : setStyleSheet( cStyle )
|
||||
::oSourceThumbnailDock:oWidget : setStyleSheet( cStyle )
|
||||
|
||||
::oDockPT:oWidget :setStyleSheet( cStyle )
|
||||
::oDockED:oWidget :setStyleSheet( cStyle )
|
||||
::oSkltnsTreeDock:oWidget:setStyleSheet( cStyle )
|
||||
::oHelpDock:oWidget :setStyleSheet( cStyle )
|
||||
::oDocViewDock:oWidget :setStyleSheet( cStyle )
|
||||
::oDocWriteDock:oWidget :setStyleSheet( cStyle )
|
||||
::oFuncDock:oWidget :setStyleSheet( cStyle )
|
||||
::oFunctionsDock:oWidget :setStyleSheet( cStyle )
|
||||
::oPropertiesDock:oWidget:setStyleSheet( cStyle )
|
||||
::oEnvironDock:oWidget :setStyleSheet( cStyle )
|
||||
::oSkeltnDock:oWidget :setStyleSheet( cStyle )
|
||||
::oThemesDock:oWidget :setStyleSheet( cStyle )
|
||||
::oFindDock:oWidget :setStyleSheet( cStyle )
|
||||
::oDockB2:oWidget :setStyleSheet( cStyle )
|
||||
::oQScintillaDock:oWidget:setStyleSheet( cStyle )
|
||||
::oSourceThumbnailDock:oWidget:setStyleSheet( cStyle )
|
||||
::oProjTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB", ::nAnimantionMode ) )
|
||||
|
||||
#if 1
|
||||
// should be iteration
|
||||
::qTabWidget:setStyleSheet( GetStyleSheet( "QTabWidget", nMode ) )
|
||||
#endif
|
||||
/* Edior Tab Widget */
|
||||
FOR EACH oView IN ::aViews
|
||||
oView:oTabWidget:oWidget:setStyleSheet( GetStyleSheet( "QTabWidget", nMode ) )
|
||||
NEXT
|
||||
|
||||
RETURN Self
|
||||
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
CLASS IdeEditsManager INHERIT IdeObject
|
||||
|
||||
DATA qContextMenu
|
||||
DATA qContextSub
|
||||
DATA aActions INIT {}
|
||||
|
||||
METHOD new( oIde )
|
||||
@@ -173,6 +174,7 @@ CLASS IdeEditsManager INHERIT IdeObject
|
||||
METHOD changeThumbnail()
|
||||
METHOD spaces2tabs()
|
||||
METHOD qscintilla()
|
||||
METHOD setStyleSheet( nMode )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -186,8 +188,16 @@ METHOD IdeEditsManager:new( oIde )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditsManager:setStyleSheet( nMode )
|
||||
|
||||
::qContextMenu:setStyleSheet( GetStyleSheet( "QMenuPop", nMode ) )
|
||||
::qContextSub:setStyleSheet( GetStyleSheet( "QMenuPop", nMode ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeEditsManager:create( oIde )
|
||||
LOCAL oSub
|
||||
|
||||
DEFAULT oIde TO ::oIde
|
||||
|
||||
@@ -213,12 +223,12 @@ METHOD IdeEditsManager:create( oIde )
|
||||
aadd( ::aActions, { "Apply Theme" , ::qContextMenu:addAction( "Apply Theme" ) } )
|
||||
aadd( ::aActions, { "Save as Skltn", ::qContextMenu:addAction( "Save as Skeleton..." ) } )
|
||||
|
||||
oSub := QMenu():configure( ::qContextMenu:addMenu_1( "Split" ) )
|
||||
::qContextSub := QMenu():configure( ::qContextMenu:addMenu_1( "Split" ) )
|
||||
//
|
||||
aadd( ::aActions, { "Split H" , oSub:addAction( "Split Horizontally" ) } )
|
||||
aadd( ::aActions, { "Split V" , oSub:addAction( "Split Vertically" ) } )
|
||||
aadd( ::aActions, { "" , oSub:addSeparator() } )
|
||||
aadd( ::aActions, { "Close Split" , oSub:addAction( "Close Split Window" ) } )
|
||||
aadd( ::aActions, { "Split H" , ::qContextSub:addAction( "Split Horizontally" ) } )
|
||||
aadd( ::aActions, { "Split V" , ::qContextSub:addAction( "Split Vertically" ) } )
|
||||
aadd( ::aActions, { "" , ::qContextSub:addSeparator() } )
|
||||
aadd( ::aActions, { "Close Split" , ::qContextSub:addAction( "Close Split Window" ) } )
|
||||
|
||||
::oIde:qProtoList := QStringList():new()
|
||||
::oIde:qCompModel := QStringListModel():new()
|
||||
@@ -1233,7 +1243,7 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView, a
|
||||
/* Populate right at creation */
|
||||
::oEM:addSourceInTree( ::sourceFile, ::cView )
|
||||
|
||||
::qTabWidget:setStyleSheet( GetStyleSheet( "QTabWidget", ::nAnimantionMode ) )
|
||||
//::qTabWidget:setStyleSheet( GetStyleSheet( "QTabWidget", ::nAnimantionMode ) )
|
||||
IF ::lReadOnly
|
||||
::oEdit:setReadOnly( .t. )
|
||||
::qEdit:setTextInteractionFlags( Qt_TextSelectableByMouse + Qt_TextSelectableByKeyboard )
|
||||
|
||||
@@ -113,6 +113,7 @@ FUNCTION hbide_execPopup( aPops, aqPos, qParent )
|
||||
LOCAL i, qPop, qPoint, qAct, cAct, xRet, pAct, a_, qSub, b_
|
||||
|
||||
qPop := QMenu():new( iif( hb_isObject( qParent ), qParent, NIL ) )
|
||||
qPop:setStyleSheet( GetStyleSheet( "QMenuPop", hbide_setIde():nAnimantionMode ) )
|
||||
|
||||
FOR i := 1 TO len( aPops )
|
||||
IF empty( aPops[ i,1 ] )
|
||||
@@ -122,6 +123,7 @@ FUNCTION hbide_execPopup( aPops, aqPos, qParent )
|
||||
qPop:addAction_4( aPops[ i, 1 ] )
|
||||
ELSEIF hb_isArray( aPops[ i, 1 ] ) /* Sub-menu */
|
||||
qSub := QMenu():new( qPop )
|
||||
qSub:setStyleSheet( GetStyleSheet( "QMenuPop", hbide_setIde():nAnimantionMode ) )
|
||||
FOR EACH a_ IN aPops[ i, 1 ]
|
||||
qSub:addAction( a_[ 1 ] )
|
||||
NEXT
|
||||
|
||||
@@ -499,7 +499,6 @@ METHOD IdeSkeletons:showTree()
|
||||
::oTree:hasButtons := .T.
|
||||
::oTree:create( ::oSkltnsTreeDock, , { 0,0 }, { 10,10 }, , .t. )
|
||||
|
||||
::oTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB", ::nAnimantionMode ) )
|
||||
::oTree:oWidget:setMinimumWidth( 100 )
|
||||
::oTree:oWidget:setSizePolicy_1( QSizePolicy_MinimumExpanding, QSizePolicy_Preferred )
|
||||
::oTree:oWidget:setIconSize( QSize():new( 12,12 ) )
|
||||
@@ -517,6 +516,8 @@ METHOD IdeSkeletons:showTree()
|
||||
::oSkltnsTreeDock:oWidget:setWidget( ::oTree:oWidget )
|
||||
ENDIF
|
||||
|
||||
::oTree:setStyleSheet( GetStyleSheet( "QTreeWidgetHB", ::nAnimantionMode ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -81,6 +81,17 @@ FUNCTION GetStyleSheet( cWidget, nMode )
|
||||
|
||||
DO CASE
|
||||
|
||||
CASE cWidget == "QMenuPop"
|
||||
IF nMode == HBIDE_ANIMATION_GRADIENT
|
||||
aadd( txt_, 'QMenu { ' )
|
||||
aadd( txt_, hbide_ideThemeColorCSS( "MenuPop", 1 ) )
|
||||
aadd( txt_, '} ' )
|
||||
ELSE
|
||||
aadd( txt_, 'QMenu { ' )
|
||||
aadd( txt_, hbide_cssColorString( "bg-std" ) )
|
||||
aadd( txt_, '} ' )
|
||||
ENDIF
|
||||
|
||||
CASE cWidget == "QMenu"
|
||||
|
||||
aadd( txt_, ' QMenu { ' )
|
||||
@@ -486,6 +497,9 @@ STATIC FUNCTION hbide_ideThemeColorCSS( cPart, nTheme )
|
||||
cPart := lower( cPart )
|
||||
|
||||
DO CASE
|
||||
CASE cPart == "menupop"
|
||||
cCSS := ' background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, ' + ;
|
||||
hbide_buildGradientString( hbide_loadIdeTheme( nTheme ) ) + "); "
|
||||
CASE cPart == "menubartop"
|
||||
cCSS := ' background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, ' + ;
|
||||
hbide_buildGradientString( hbide_loadIdeTheme( nTheme ) ) + "); "
|
||||
|
||||
@@ -551,21 +551,21 @@ METHOD IdeThemes:show()
|
||||
::oThemesDock:oWidget:setWidget( ::oUI )
|
||||
|
||||
::oUI:signal( "listThemes" , "currentRowChanged(int)" , {|i| ::execEvent( listThemes_currentRowChanged, i ) } )
|
||||
::oUI:signal( "listItems" , "currentRowChanged(int)" , {|i| ::execEvent( listItems_currentRowChanged, i ) } )
|
||||
::oUI:signal( "listItems" , "currentRowChanged(int)" , {|i| ::execEvent( listItems_currentRowChanged, i ) } )
|
||||
|
||||
::oUI:signal( "buttonColor" , "clicked()" , {|| ::updateColor() } )
|
||||
::oUI:signal( "buttonSave" , "clicked()" , {|| ::save( .f. ) } )
|
||||
::oUI:signal( "buttonSaveAs" , "clicked()" , {|| ::save( .t. ) } )
|
||||
::oUI:signal( "buttonCopy" , "clicked()" , {|| ::copy( .t. ) } )
|
||||
::oUI:signal( "buttonApply" , "clicked()" , {|| ::execEvent( applyMenu_triggered_applyToCurrentTab ) } )
|
||||
::oUI:signal( "buttonApplyAll", "clicked()" , {|| ::execEvent( applyMenu_triggered_applyToAllTabs ) } )
|
||||
::oUI:signal( "buttonDefault" , "clicked()" , {|| ::execEvent( applyMenu_triggered_setAsDefault ) } )
|
||||
::oUI:signal( "buttonColor" , "clicked()" , {| | ::updateColor() } )
|
||||
::oUI:signal( "buttonSave" , "clicked()" , {| | ::save( .f. ) } )
|
||||
::oUI:signal( "buttonSaveAs" , "clicked()" , {| | ::save( .t. ) } )
|
||||
::oUI:signal( "buttonCopy" , "clicked()" , {| | ::copy( .t. ) } )
|
||||
::oUI:signal( "buttonApply" , "clicked()" , {| | ::execEvent( applyMenu_triggered_applyToCurrentTab ) } )
|
||||
::oUI:signal( "buttonApplyAll", "clicked()" , {| | ::execEvent( applyMenu_triggered_applyToAllTabs ) } )
|
||||
::oUI:signal( "buttonDefault" , "clicked()" , {| | ::execEvent( applyMenu_triggered_setAsDefault ) } )
|
||||
|
||||
::oUI:signal( "checkItalic" , "stateChanged(int)" , {|i| ::updateAttribute( THM_ATR_ITALIC, i ) } )
|
||||
::oUI:signal( "checkBold" , "stateChanged(int)" , {|i| ::updateAttribute( THM_ATR_BOLD , i ) } )
|
||||
::oUI:signal( "checkUnderline", "stateChanged(int)" , {|i| ::updateAttribute( THM_ATR_ULINE , i ) } )
|
||||
|
||||
::oUI:signal( "buttonClose" , "clicked()" , {|| ::oThemesDock:hide() } )
|
||||
::oUI:signal( "buttonClose" , "clicked()" , {| | ::oThemesDock:hide() } )
|
||||
|
||||
/* Fill Themes Dialog Values */
|
||||
::oUI:setWindowTitle( GetKeyValue( ::aControls, "dialogTitle" ) )
|
||||
@@ -584,7 +584,7 @@ METHOD IdeThemes:show()
|
||||
::oUI:qObj[ "buttonCopy" ]:setText( GetKeyValue( ::aControls, "buttonCopy" , "Copy" ) )
|
||||
|
||||
aeval( ::aThemes, {|e_| ::oUI:q_listThemes:addItem( e_[ 1 ] ) } )
|
||||
aeval( ::aItems , {|e_| ::oUI:q_listItems:addItem( e_[ 2 ] ) } )
|
||||
aeval( ::aItems , {|e_| ::oUI:q_listItems:addItem( e_[ 2 ] ) } )
|
||||
|
||||
::qEdit := ::oUI:q_plainThemeText
|
||||
::qEdit:setPlainText( GetSource() )
|
||||
|
||||
@@ -111,6 +111,7 @@ CLASS IdeToolsManager INHERIT IdeObject
|
||||
METHOD populateButtonsTable( nIndex )
|
||||
METHOD buildUserToolbars()
|
||||
METHOD populatePlugins( lClear )
|
||||
METHOD setStyleSheet( cCSS )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -124,6 +125,21 @@ METHOD IdeToolsManager:new( oIde )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:setStyleSheet( cCSS )
|
||||
LOCAL oToolbar
|
||||
|
||||
FOR EACH oToolbar IN ::aToolbars
|
||||
IF !empty( oToolbar )
|
||||
oToolbar:setStyleSheet( cCSS )
|
||||
ENDIF
|
||||
NEXT
|
||||
::qToolsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", ::nAnimantionMode ) )
|
||||
::qPanelsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", ::nAnimantionMode ) )
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD IdeToolsManager:create( oIde )
|
||||
LOCAL oAct
|
||||
|
||||
@@ -634,6 +650,7 @@ METHOD IdeToolsManager:buildToolsButton()
|
||||
LOCAL a_, qAct
|
||||
|
||||
::qToolsMenu := QMenu():new()
|
||||
::qToolsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", ::nAnimantionMode ) )
|
||||
FOR EACH a_ IN ::aTools
|
||||
qAct := ::qToolsMenu:addAction( a_[ 1 ] )
|
||||
::connect( qAct, "triggered(bool)", {|| ::execTool( a_[ 1 ] ) } )
|
||||
@@ -655,6 +672,7 @@ METHOD IdeToolsManager:buildPanelsButton()
|
||||
LOCAL cView
|
||||
|
||||
::qPanelsMenu := QMenu():new()
|
||||
::qPanelsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", ::nAnimantionMode ) )
|
||||
::addPanelsMenu( "Main" )
|
||||
FOR EACH cView IN ::oINI:aViews
|
||||
::addPanelsMenu( cView )
|
||||
|
||||
BIN
harbour/contrib/hbide/resources/browser.png
Normal file
|
After Width: | Height: | Size: 114 B |
BIN
harbour/contrib/hbide/resources/formview.png
Normal file
|
After Width: | Height: | Size: 592 B |
BIN
harbour/contrib/hbide/resources/thumbnail.png
Normal file
|
After Width: | Height: | Size: 380 B |
BIN
harbour/contrib/hbide/resources/view_cascaded.png
Normal file
|
After Width: | Height: | Size: 639 B |
BIN
harbour/contrib/hbide/resources/view_organized.png
Normal file
|
After Width: | Height: | Size: 383 B |
BIN
harbour/contrib/hbide/resources/view_tabbed.png
Normal file
|
After Width: | Height: | Size: 344 B |
BIN
harbour/contrib/hbide/resources/view_tiled.png
Normal file
|
After Width: | Height: | Size: 301 B |
@@ -2228,6 +2228,19 @@
|
||||
#define QSystemTrayIcon_Trigger 3 // The system tray entry was clicked
|
||||
#define QSystemTrayIcon_MiddleClick 4 // The system tray entry was clicked with the middle mouse button
|
||||
|
||||
/* QMdiArea */
|
||||
#define QMdiArea_SubWindowView 0
|
||||
#define QMdiArea_TabbedView 1
|
||||
|
||||
#define QMdiArea_CreationOrder 0
|
||||
#define QMdiArea_StackingOrder 1
|
||||
#define QMdiArea_ActivationHistoryOrder 2
|
||||
|
||||
#define QMdiArea_DontMaximizeSubWindowOnActivation 1
|
||||
|
||||
#define QMdiSubWindow_RubberBandResize 0x04
|
||||
#define QMdiSubWindow_RubberBandMove 0x08
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#define _HBQT_CH
|
||||
|
||||
@@ -234,6 +234,11 @@ static bool connect_signal( QString signal, QObject * object, HBSlots * t_slots
|
||||
if( signal == ( QString ) "toggled(bool)" ) return object->connect( object, SIGNAL( toggled( bool ) ), t_slots, SLOT( toggled( bool ) ), Qt::AutoConnection );
|
||||
/* QSystemTrayIcon */
|
||||
if( signal == ( QString ) "activated(QSystemTrayIcon::ActivationReason)" ) return object->connect( object, SIGNAL( activated( QSystemTrayIcon::ActivationReason ) ), t_slots, SLOT( activated( QSystemTrayIcon::ActivationReason ) ), Qt::AutoConnection );
|
||||
/* QMdiArea */
|
||||
if( signal == ( QString ) "subWindowActivated(QMdiSubWindow)" ) return object->connect( object, SIGNAL( subWindowActivated( QMdiSubWindow * ) ), t_slots, SLOT( subWindowActivated( QMdiSubWindow * ) ), Qt::AutoConnection );
|
||||
/* QMdiSubWindow */
|
||||
if( signal == ( QString ) "aboutToActivate()" ) return object->connect( object, SIGNAL( aboutToActivate() ), t_slots, SLOT( aboutToActivate() ), Qt::AutoConnection );
|
||||
if( signal == ( QString ) "windowStateChanged(Qt::WindowStates,Qt::WindowStates)" ) return object->connect( object, SIGNAL( windowStateChanged( Qt::WindowStates, Qt::WindowStates ) ), t_slots, SLOT( windowStateChanged( Qt::WindowStates, Qt::WindowStates ) ), Qt::AutoConnection );
|
||||
/* New */
|
||||
return false;
|
||||
}
|
||||
@@ -405,6 +410,11 @@ static bool disconnect_signal( QObject * object, const char * signal )
|
||||
if( signal == ( QString ) "toggled(bool)" ) return object->disconnect( SIGNAL( toggled( bool ) ) );
|
||||
/* QSystemTrayIcon */
|
||||
if( signal == ( QString ) "activated(QSystemTrayIcon::ActivationReason)" ) return object->disconnect( SIGNAL( activated( QSystemTrayIcon::ActivationReason ) ) );
|
||||
/* QMdiArea */
|
||||
if( signal == ( QString ) "subWindowActivated(QMdiSubWindow)" ) return object->disconnect( SIGNAL( subWindowActivated( QMdiSubWindow * ) ) );
|
||||
/* QMdiSubWindow */
|
||||
if( signal == ( QString ) "aboutToActivate()" ) return object->disconnect( SIGNAL( aboutToActivate() ) );
|
||||
if( signal == ( QString ) "windowStateChanged(Qt::WindowStates,Qt::WindowStates)" ) return object->disconnect( SIGNAL( windowStateChanged( Qt::WindowStates, Qt::WindowStates ) ) );
|
||||
/* new */
|
||||
|
||||
return false;
|
||||
@@ -1030,6 +1040,11 @@ void HBSlots::highlighted( const QModelIndex & index )
|
||||
void HBSlots::toggled( bool checked ) { hbqt_SlotsExecBool( this, qobject_cast<QObject *>( sender() ), "toggled(bool)", checked ); }
|
||||
/* QSystemTrayIcon */
|
||||
void HBSlots::activated( QSystemTrayIcon::ActivationReason reason ) { hbqt_SlotsExecInt( this, qobject_cast<QObject *>( sender() ), "activated(QSystemTrayIcon::ActivationReason)", reason ); }
|
||||
/* QMdiArea */
|
||||
void HBSlots::subWindowActivated( QMdiSubWindow * window ) { hbqt_SlotsExecPointer( this, qobject_cast<QObject *>( sender() ), "subWindowActivated(QMdiSubWindow)", window ); }
|
||||
/* QMdiSubWindow */
|
||||
void HBSlots::aboutToActivate() { hbqt_SlotsExec( this, qobject_cast<QObject *>( sender() ), "aboutToActivate()" ); }
|
||||
void HBSlots::windowStateChanged( Qt::WindowStates oldState, Qt::WindowStates newState ) { hbqt_SlotsExecIntInt( this, qobject_cast<QObject *>( sender() ), "windowStateChanged(Qt::WindowStates,Qt::WindowStates)", oldState, newState ); }
|
||||
/* Latest */
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
#include <QtGui/QDockWidget>
|
||||
#include <QtGui/QHeaderView>
|
||||
#include <QtGui/QSystemTrayIcon>
|
||||
#include <QtGui/QMdiSubWindow>
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -284,6 +285,11 @@ public slots:
|
||||
void toggled( bool checked );
|
||||
/* QSystemTrayIcon */
|
||||
void activated( QSystemTrayIcon::ActivationReason reason );
|
||||
/* QMdiArea */
|
||||
void subWindowActivated( QMdiSubWindow * window );
|
||||
/* QMdiSubWindow */
|
||||
void aboutToActivate();
|
||||
void windowStateChanged( Qt::WindowStates oldState, Qt::WindowStates newState );
|
||||
/* Latest */
|
||||
};
|
||||
|
||||
|
||||
@@ -365,7 +365,6 @@ PROTECTED:
|
||||
DATA lFirst INIT .t.
|
||||
DATA nRowsInView INIT 1
|
||||
|
||||
METHOD setCurrentIndex( lReset )
|
||||
METHOD setHorzOffset()
|
||||
METHOD setVertScrollBarRange( lPageStep )
|
||||
METHOD setHorzScrollBarRange( lPageStep )
|
||||
@@ -435,7 +434,12 @@ EXPORTED:
|
||||
DATA nLeftFrozen INIT 0
|
||||
DATA nRightFrozen INIT 0
|
||||
|
||||
DATA gridStyle INIT Qt_SolidLine
|
||||
|
||||
METHOD destroy()
|
||||
DATA nCellHeight INIT 20
|
||||
METHOD setCellHeight( nCellHeight )
|
||||
METHOD setCurrentIndex( lReset )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -469,7 +473,7 @@ METHOD XbpBrowse:buildLeftFreeze()
|
||||
::oLeftView:setVerticalScrollBarPolicy( Qt_ScrollBarAlwaysOff )
|
||||
::oLeftView:setTabKeyNavigation( .t. )
|
||||
::oLeftView:setShowGrid( .t. )
|
||||
::oLeftView:setGridStyle( Qt_DotLine ) /* to be based on column definition */
|
||||
::oLeftView:setGridStyle( ::gridStyle ) /* to be based on column definition */
|
||||
::oLeftView:setSelectionMode( QAbstractItemView_SingleSelection )
|
||||
::oLeftView:setSelectionBehavior( IF( ::cursorMode == XBPBRW_CURSOR_ROW, QAbstractItemView_SelectRows, QAbstractItemView_SelectItems ) )
|
||||
//
|
||||
@@ -519,7 +523,7 @@ METHOD XbpBrowse:buildRightFreeze()
|
||||
::oRightView:setVerticalScrollBarPolicy( Qt_ScrollBarAlwaysOff )
|
||||
::oRightView:setTabKeyNavigation( .t. )
|
||||
::oRightView:setShowGrid( .t. )
|
||||
::oRightView:setGridStyle( Qt_DotLine ) /* to be based on column definition */
|
||||
::oRightView:setGridStyle( ::gridStyle ) /* to be based on column definition */
|
||||
::oRightView:setSelectionMode( QAbstractItemView_SingleSelection )
|
||||
::oRightView:setSelectionBehavior( IF( ::cursorMode == XBPBRW_CURSOR_ROW, QAbstractItemView_SelectRows, QAbstractItemView_SelectItems ) )
|
||||
//
|
||||
@@ -572,7 +576,7 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
|
||||
/* Some parameters */
|
||||
::oTableView:setTabKeyNavigation( .t. )
|
||||
::oTableView:setShowGrid( .t. )
|
||||
::oTableView:setGridStyle( Qt_DotLine ) /* to be based on column definition */
|
||||
::oTableView:setGridStyle( ::gridStyle ) /* to be based on column definition */
|
||||
::oTableView:setSelectionMode( QAbstractItemView_SingleSelection )
|
||||
::oTableView:setSelectionBehavior( IF( ::cursorMode == XBPBRW_CURSOR_ROW, QAbstractItemView_SelectRows, QAbstractItemView_SelectItems ) )
|
||||
|
||||
@@ -747,10 +751,11 @@ METHOD XbpBrowse:destroy()
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
|
||||
LOCAL oWheelEvent, oMouseEvent, i, nCol, nColPos, oPoint
|
||||
LOCAL oWheelEvent, oMouseEvent, oPoint // i, nCol, nColPos
|
||||
|
||||
HB_SYMBOL_UNUSED( p2 )
|
||||
//HB_TRACE( HB_TR_DEBUG, " XbpBrowse:execSlot:", nEvent, 0, memory( 1001 ) )
|
||||
// HB_TRACE( HB_TR_DEBUG, " XbpBrowse:execSlot:", nEvent, 0, memory( 1001 ) )
|
||||
|
||||
DO CASE
|
||||
CASE nEvent == 1 /* Keypress Event */
|
||||
SetAppEvent( xbeP_Keyboard, XbpQKeyEventToAppEvent( p1 ), NIL, self )
|
||||
@@ -787,15 +792,15 @@ METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
|
||||
oWheelEvent := QWheelEvent():configure( p1 )
|
||||
IF oWheelEvent:orientation() == Qt_Vertical
|
||||
IF oWheelEvent:delta() > 0
|
||||
::up()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, -1, Self )
|
||||
ELSE
|
||||
::down()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, 1, Self )
|
||||
ENDIF
|
||||
ELSE
|
||||
IF oWheelEvent:delta() > 0
|
||||
::right()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_SkipCols, 1, Self )
|
||||
ELSE
|
||||
::left()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_SkipCols, -1, Self )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -809,27 +814,27 @@ METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
|
||||
CASE QAbstractSlider_SliderNoAction
|
||||
RETURN NIL
|
||||
CASE QAbstractSlider_SliderSingleStepAdd
|
||||
::down()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, 1, Self )
|
||||
::updateVertScrollBar()
|
||||
EXIT
|
||||
CASE QAbstractSlider_SliderSingleStepSub
|
||||
::up()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, -1, Self )
|
||||
::updateVertScrollBar()
|
||||
EXIT
|
||||
CASE QAbstractSlider_SliderPageStepAdd
|
||||
::pageDown()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_NextPage, 1, Self )
|
||||
::updateVertScrollBar()
|
||||
EXIT
|
||||
CASE QAbstractSlider_SliderPageStepSub
|
||||
::pageUp()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_PrevPage, 1, Self )
|
||||
::updateVertScrollBar()
|
||||
EXIT
|
||||
CASE QAbstractSlider_SliderToMinimum
|
||||
::goTop()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_GoTop, 1, Self )
|
||||
::updateVertScrollBar()
|
||||
EXIT
|
||||
CASE QAbstractSlider_SliderToMaximum
|
||||
::goBottom()
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_GoBottom, 1, Self )
|
||||
::updateVertScrollBar()
|
||||
EXIT
|
||||
CASE QAbstractSlider_SliderMove
|
||||
@@ -843,31 +848,11 @@ METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
|
||||
::oTableView:setFocus()
|
||||
|
||||
CASE nEvent == 103 /* Horizontal Scrollbar: Slider moved */
|
||||
nCol := ::oHScrollBar:value()+1
|
||||
nColPos := ::colPos
|
||||
IF nCol < nColPos
|
||||
FOR i := 1 TO ( nColPos - nCol )
|
||||
::left()
|
||||
NEXT
|
||||
ELSEIF nCol > nColPos
|
||||
FOR i := 1 TO ( nCol - nColPos )
|
||||
::right()
|
||||
NEXT
|
||||
ENDIF
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_SkipCols, ( ::oHScrollBar:value() + 1 ) - ::colPos, Self )
|
||||
::oTableView:setFocus()
|
||||
|
||||
CASE nEvent == 104 /* Horizontal Scrollbar: Slider Released */
|
||||
nCol := ::oHScrollBar:value()+1
|
||||
nColPos := ::colPos
|
||||
IF nCol < nColPos
|
||||
FOR i := 1 TO ( nColPos - nCol )
|
||||
::left()
|
||||
NEXT
|
||||
ELSEIF nCol > nColPos
|
||||
FOR i := 1 TO ( nCol - nColPos )
|
||||
::right()
|
||||
NEXT
|
||||
ENDIF
|
||||
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_SkipCols, ( ::oHScrollBar:value() + 1 ) - ::colPos, Self )
|
||||
::oTableView:setFocus()
|
||||
|
||||
CASE nEvent == 111 /* Column Header Pressed */
|
||||
@@ -968,11 +953,17 @@ METHOD handleEvent( nEvent, mp1, mp2 ) CLASS XbpBrowse
|
||||
CASE nEvent == xbeBRW_Navigate
|
||||
DO CASE
|
||||
CASE mp1 == XBPBRW_Navigate_NextLine
|
||||
::down()
|
||||
CASE mp1 == XBPBRW_Navigate_PrevLine
|
||||
::up()
|
||||
CASE mp1 == XBPBRW_Navigate_NextPage
|
||||
::pageDown()
|
||||
CASE mp1 == XBPBRW_Navigate_PrevPage
|
||||
::pageUp()
|
||||
CASE mp1 == XBPBRW_Navigate_GoTop
|
||||
::goTop()
|
||||
CASE mp1 == XBPBRW_Navigate_GoBottom
|
||||
::goBottom()
|
||||
CASE mp1 == XBPBRW_Navigate_Skip
|
||||
IF mp2 < 0
|
||||
FOR i := 1 TO abs( mp2 )
|
||||
@@ -984,10 +975,15 @@ METHOD handleEvent( nEvent, mp1, mp2 ) CLASS XbpBrowse
|
||||
NEXT
|
||||
ENDIF
|
||||
CASE mp1 == XBPBRW_Navigate_NextCol
|
||||
::right()
|
||||
CASE mp1 == XBPBRW_Navigate_PrevCol
|
||||
::left()
|
||||
CASE mp1 == XBPBRW_Navigate_FirstCol
|
||||
::firstCol()
|
||||
CASE mp1 == XBPBRW_Navigate_LastCol
|
||||
::lastCol()
|
||||
CASE mp1 == XBPBRW_Navigate_GoPos
|
||||
//
|
||||
CASE mp1 == XBPBRW_Navigate_SkipCols
|
||||
IF mp2 < 0
|
||||
FOR i := 1 TO abs( mp2 )
|
||||
@@ -1000,7 +996,9 @@ METHOD handleEvent( nEvent, mp1, mp2 ) CLASS XbpBrowse
|
||||
ENDIF
|
||||
|
||||
CASE mp1 == XBPBRW_Navigate_GotoItem
|
||||
//
|
||||
CASE mp1 == XBPBRW_Navigate_GotoRecord
|
||||
//
|
||||
OTHERWISE
|
||||
lNavgt := .f.
|
||||
ENDCASE
|
||||
@@ -1153,7 +1151,7 @@ METHOD fetchColumnInfo( nInfo, nArea, nRow, nCol ) CLASS XbpBrowse
|
||||
RETURN oCol:dAlignment
|
||||
|
||||
CASE HBQT_BRW_DATHEIGHT
|
||||
RETURN oCol:dHeight
|
||||
RETURN ::nCellHeight //oCol:dHeight
|
||||
|
||||
CASE HBQT_BRW_CELLDECORATION
|
||||
IF oCol:type == XBPCOL_TYPE_FILEICON
|
||||
@@ -1173,7 +1171,7 @@ METHOD fetchColumnInfo( nInfo, nArea, nRow, nCol ) CLASS XbpBrowse
|
||||
IF nArea == 0 /* Header Area */
|
||||
SWITCH nInfo
|
||||
CASE HBQT_BRW_COLHEIGHT
|
||||
RETURN oCol:hHeight
|
||||
RETURN ::nCellHeight //oCol:hHeight
|
||||
CASE HBQT_BRW_COLHEADER
|
||||
RETURN oCol:heading
|
||||
CASE HBQT_BRW_COLALIGN
|
||||
@@ -1186,7 +1184,7 @@ METHOD fetchColumnInfo( nInfo, nArea, nRow, nCol ) CLASS XbpBrowse
|
||||
ELSE /* Footer Area */
|
||||
SWITCH nInfo
|
||||
CASE HBQT_BRW_COLHEIGHT
|
||||
RETURN oCol:fHeight
|
||||
RETURN ::nCellHeight //oCol:fHeight
|
||||
CASE HBQT_BRW_COLHEADER
|
||||
RETURN oCol:footing
|
||||
CASE HBQT_BRW_COLALIGN
|
||||
@@ -1374,6 +1372,22 @@ METHOD XbpBrowse:setLeftFrozen( aColFrozens )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD setCellHeight( nCellHeight ) CLASS XbpBrowse
|
||||
LOCAL i
|
||||
|
||||
FOR i := 1 TO ::nRowsInView
|
||||
::oTableView : setRowHeight( i-1, nCellHeight )
|
||||
IF !empty( ::oLeftView )
|
||||
::oLeftView : setRowHeight( i-1, nCellHeight )
|
||||
ENDIF
|
||||
IF !empty( ::oRightView )
|
||||
::oRightView : setRowHeight( i-1, nCellHeight )
|
||||
ENDIF
|
||||
NEXT
|
||||
RETURN Self
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
METHOD doConfigure() CLASS XbpBrowse
|
||||
LOCAL oCol
|
||||
LOCAL aCol, aVal, aValA
|
||||
@@ -1548,18 +1562,15 @@ METHOD doConfigure() CLASS XbpBrowse
|
||||
nMaxCellH := 0
|
||||
aeval( ::columns, {|o| nMaxCellH := max( nMaxCellH, o:dHeight ) } )
|
||||
//
|
||||
nViewH := ::oViewport:height()
|
||||
nViewH := ::oViewport:height() //- ::oHeaderView:height()
|
||||
::nRowsInView := Int( nViewH / nMaxCellH )
|
||||
IF ( nViewH % nMaxCellH ) > ( nMaxCellH / 2 )
|
||||
::nRowsInView++
|
||||
ENDIF
|
||||
|
||||
/* Probably this is the appropriate time to update row heights */
|
||||
FOR i := 1 TO ::nRowsInView
|
||||
::oTableView:setRowHeight( i-1, nMaxCellH )
|
||||
::oLeftView:setRowHeight( i-1, nMaxCellH )
|
||||
::oRightView:setRowHeight( i-1, nMaxCellH )
|
||||
NEXT
|
||||
::nCellHeight := nMaxCellH
|
||||
::setCellHeight( nMaxCellH )
|
||||
|
||||
/* Implement Column Resizing Mode */
|
||||
::oHeaderView:setResizeMode( IF( ::lSizeCols, QHeaderView_Interactive, QHeaderView_Fixed ) )
|
||||
@@ -1621,17 +1632,17 @@ METHOD doConfigure() CLASS XbpBrowse
|
||||
|
||||
ENDIF
|
||||
|
||||
IF ::nLeftFrozen == 0 .and. hb_isObject( ::oLeftView )
|
||||
IF ::nLeftFrozen == 0 .AND. hb_isObject( ::oLeftView )
|
||||
::oLeftView:hide()
|
||||
::oLeftFooterView:hide()
|
||||
ELSEIF ::nLeftFrozen > 0 .and. hb_isObject( ::oLeftView )
|
||||
ELSEIF ::nLeftFrozen > 0 .AND. hb_isObject( ::oLeftView )
|
||||
::oLeftView:show()
|
||||
::oLeftFooterView:show()
|
||||
ENDIF
|
||||
IF ::nRightFrozen == 0 .and. hb_isObject( ::oRightView )
|
||||
IF ::nRightFrozen == 0 .AND. hb_isObject( ::oRightView )
|
||||
::oRightView:hide()
|
||||
::oRightFooterView:hide()
|
||||
ELSEIF ::nRightFrozen > 0 .and. hb_isObject( ::oRightView )
|
||||
ELSEIF ::nRightFrozen > 0 .AND. hb_isObject( ::oRightView )
|
||||
::oRightView:show()
|
||||
::oRightFooterView:show()
|
||||
ENDIF
|
||||
@@ -1689,9 +1700,10 @@ METHOD doConfigure() CLASS XbpBrowse
|
||||
::nRowPos := 1
|
||||
ENDIF
|
||||
|
||||
|
||||
::setHorzScrollBarRange()
|
||||
|
||||
::setCellHeight( ::nCellHeight )
|
||||
|
||||
/* Inform Qt about number of rows and columns browser implements */
|
||||
::oDbfModel:hbSetRowColumns( ::rowCount - 1, ::colCount - 1 )
|
||||
/* Tell Qt to Reload Everything */
|
||||
|
||||