diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2023-01-25 13:51:17 +0530 |
---|---|---|
committer | Dennis Francis <dennis.francis@collabora.com> | 2023-04-27 08:35:59 +0200 |
commit | 2f8d10b0b9baa03b8a713e9fd1342fe6c8094fb4 (patch) | |
tree | f008321e237e02ca032178711e27a16969718312 /sc/source/ui/inc/gridwin.hxx | |
parent | 292f422c421336c43bafe5ee048832137d617436 (diff) |
sc: pivot table compact layout
This implements compact layout for pivot tables. In ooxml each row field
can have a compact layout setting. Support for any such "mixed" layout
of tabular/outline/compact per field is also implemented. This also
implements expand/collpse toggle buttons to field labels to make pivot
tables with compact layout more usable. Such buttons are also available
if other layouts are used.
Conflicts:
sc/qa/unit/pivottable_filters_test.cxx
sc/source/ui/cctrl/checklistmenu.cxx
sc/source/ui/inc/checklistmenu.hxx
Change-Id: Ieaa1f3bd282ebdec804d0b45a0af7b3d95a2027f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151057
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
Diffstat (limited to 'sc/source/ui/inc/gridwin.hxx')
-rw-r--r-- | sc/source/ui/inc/gridwin.hxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx index 70a6efa616cc..635dd91dc393 100644 --- a/sc/source/ui/inc/gridwin.hxx +++ b/sc/source/ui/inc/gridwin.hxx @@ -85,6 +85,7 @@ class ScLokRTLContext; namespace sdr::overlay { class OverlayObjectList; } class ScFilterListBox; +struct ScDPLabelData; class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::DocWindow, public DropTargetHelper, public DragSourceHelper { @@ -226,7 +227,8 @@ class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::DocWindow, public DropTarget bool DoPageFieldSelection( SCCOL nCol, SCROW nRow ); bool DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt ); - void DoPushPivotButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt, bool bButton, bool bPopup ); + void DoPushPivotButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt, bool bButton, bool bPopup, bool bMultiField ); + void DoPushPivotToggle( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt ); void DPMouseMove( const MouseEvent& rMEvt ); void DPMouseButtonUp( const MouseEvent& rMEvt ); @@ -239,8 +241,15 @@ class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::DocWindow, public DropTarget * mouse event handling is necessary, false otherwise. */ bool DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, const ScAddress& rDimPos, ScDPObject* pDPObj); + bool DPTestMultiFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, ScDPObject* pDPObj); + void DPPopulateFieldMembers(const ScDPLabelData& rLabelData); + void DPSetupFieldPopup(std::unique_ptr<ScCheckListMenuControl::ExtendedData> pDPData, bool bDimOrientNotPage, + ScDPObject* pDPObj, bool bMultiField = false); + void DPConfigFieldPopup(); void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize, const ScAddress& rPos, ScDPObject* pDPObj); + void DPLaunchMultiFieldPopupMenu(const Point& rScrPos, const Size& rScrSize, ScDPObject* pDPObj, + css::sheet::DataPilotFieldOrientation nOrient); void RFMouseMove( const MouseEvent& rMEvt, bool bUp ); @@ -444,6 +453,7 @@ public: void CheckNeedsRepaint(); + void UpdateDPPopupMenuForFieldChange(); void UpdateDPFromFieldPopupMenu(); bool UpdateVisibleRange(); |