sc/source/filter/inc/sheetdatacontext.hxx | 20 ++------ sc/source/filter/oox/sheetdatacontext.cxx | 17 +----- sc/source/ui/inc/AccessibleSpreadsheet.hxx | 71 ++++++++++++++--------------- 3 files changed, 44 insertions(+), 64 deletions(-)
New commits: commit b24c50d3e2104408bd77a27155de1241b9d17116 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Dec 4 10:04:52 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Dec 5 07:02:17 2019 +0100 clean up members in ScAccessibleSpreadsheet re-arrange them so the private/public sections are continuous. And make a bunch of public fields private, no-one seems to be touching them outside the class. Change-Id: I6378793fb01bc884961d19627a46f2a1e7eda79c Reviewed-on: https://gerrit.libreoffice.org/84448 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/ui/inc/AccessibleSpreadsheet.hxx b/sc/source/ui/inc/AccessibleSpreadsheet.hxx index 5bcccacf8fbc..fe6070a191cc 100644 --- a/sc/source/ui/inc/AccessibleSpreadsheet.hxx +++ b/sc/source/ui/inc/AccessibleSpreadsheet.hxx @@ -55,10 +55,11 @@ class ScAccessibleCell; This base class provides an implementation of the <code>AccessibleTable</code> service. */ -class ScAccessibleSpreadsheet final - : public ScAccessibleTableBase +class ScAccessibleSpreadsheet final : public ScAccessibleTableBase { public: + typedef std::vector<ScMyAddress> VEC_MYADDR; + ScAccessibleSpreadsheet( ScAccessibleDocument* pAccDoc, ScTabViewShell* pViewShell, @@ -76,6 +77,14 @@ public: void BoundingBoxChanged(); void VisAreaChanged(); + void FireFirstCellFocus(); + + css::uno::Reference < css::accessibility::XAccessible > GetActiveCell(); + bool IsScAddrFormulaSel (const ScAddress &addr) const; + bool IsFormulaMode(); + ScMyAddress CalcScAddressFromRangeList(ScRangeList *pMarkedRanges,sal_Int32 nSelectedChildIndex); + static bool CalcScRangeDifferenceMax(const ScRange & rSrc, const ScRange & rDest,int nMax,VEC_MYADDR &vecRet,int &nSize); + static bool CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScRangeList *pDest,int nMax,VEC_MYADDR &vecRet); private: ScAccessibleSpreadsheet( @@ -200,7 +209,9 @@ private: virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference<css::accessibility::XAccessibleEventListener>& xListener) override; + //===== XAccessibleTableSelection ============================================ + virtual sal_Bool SAL_CALL selectRow( sal_Int32 row ) override; virtual sal_Bool SAL_CALL selectColumn( sal_Int32 column ) override; virtual sal_Bool SAL_CALL unselectRow( sal_Int32 row ) override; @@ -212,17 +223,6 @@ private: /// Return the object's current bounding box relative to the parent object. virtual tools::Rectangle GetBoundingBox() const override; - ScTabViewShell* mpViewShell; - std::unique_ptr<ScRangeList> mpMarkedRanges; - ScAccessibleDocument* mpAccDoc; - rtl::Reference<ScAccessibleCell> mpAccCell; - ScSplitPos meSplitPos; - ScAddress maActiveCell; - SCTAB mnTab; - bool const mbIsSpreadsheet; - bool mbDelIns; - bool mbIsFocusSend; - bool IsDefunc( const css::uno::Reference<css::accessibility::XAccessibleStateSet>& rxParentStates); bool IsEditable(); @@ -232,16 +232,32 @@ private: void SelectCell(sal_Int32 nRow, sal_Int32 nCol, bool bDeselect); static ScDocument* GetDocument(ScTabViewShell* pViewShell); - typedef std::vector<ScMyAddress> VEC_MYADDR; + void RemoveSelection(const ScMarkData &refScMarkData); + void CommitFocusCell(const ScAddress &aNewCell); + + sal_Int32 GetRowAll() const { return m_nMaxY - m_nMinY + 1 ; } + sal_uInt16 GetColAll() const { return m_nMaxX - m_nMinX + 1; } + void NotifyRefMode(); + void RemoveFormulaSelection(bool bRemoveAll = false); + bool CheckChildIndex(sal_Int32) const; + ScAddress GetChildIndexAddress(sal_Int32) const; + sal_Int32 GetAccessibleIndexFormula( sal_Int32 nRow, sal_Int32 nColumn ); + bool GetFormulaCurrentFocusCell(ScAddress &addr); + + ScTabViewShell* mpViewShell; + std::unique_ptr<ScRangeList> mpMarkedRanges; + ScAccessibleDocument* mpAccDoc; + rtl::Reference<ScAccessibleCell> mpAccCell; + ScSplitPos meSplitPos; + ScAddress maActiveCell; + SCTAB mnTab; + bool const mbIsSpreadsheet; + bool mbDelIns; + bool mbIsFocusSend; typedef std::map<ScMyAddress,css::uno::Reference< css::accessibility::XAccessible > > MAP_ADDR_XACC; MAP_ADDR_XACC m_mapSelectionSend; - void RemoveSelection(const ScMarkData &refScMarkData); - void CommitFocusCell(const ScAddress &aNewCell); -public: - void FireFirstCellFocus(); -private: bool m_bFormulaMode; bool m_bFormulaLastMode; ScAddress m_aFormulaActiveCell; @@ -252,16 +268,6 @@ private: sal_uInt16 m_nMaxX; sal_Int32 m_nMinY; sal_Int32 m_nMaxY; - - sal_Int32 GetRowAll() const { return m_nMaxY - m_nMinY + 1 ; } - sal_uInt16 GetColAll() const { return m_nMaxX - m_nMinX + 1; } - void NotifyRefMode(); - void RemoveFormulaSelection(bool bRemoveAll = false); - bool CheckChildIndex(sal_Int32) const; - ScAddress GetChildIndexAddress(sal_Int32) const; - sal_Int32 GetAccessibleIndexFormula( sal_Int32 nRow, sal_Int32 nColumn ); - bool GetFormulaCurrentFocusCell(ScAddress &addr); -public: ScRange m_aLastWithInMarkRange; OUString m_strCurCellValue; ScRangeList m_LastMarkedRanges; @@ -271,13 +277,6 @@ public: typedef std::vector<PAIR_COL> VEC_COL; VEC_COL m_vecTempCol; OUString m_strOldTabName; - - css::uno::Reference < css::accessibility::XAccessible > GetActiveCell(); - bool IsScAddrFormulaSel (const ScAddress &addr) const; - bool IsFormulaMode(); - ScMyAddress CalcScAddressFromRangeList(ScRangeList *pMarkedRanges,sal_Int32 nSelectedChildIndex); - static bool CalcScRangeDifferenceMax(const ScRange & rSrc, const ScRange & rDest,int nMax,VEC_MYADDR &vecRet,int &nSize); - static bool CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScRangeList *pDest,int nMax,VEC_MYADDR &vecRet); }; #endif commit 9d0c1c51cefbe27c43afe1b6bec9abac8811907f Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Dec 4 15:03:02 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Dec 5 07:02:00 2019 +0100 loplugin:mergeclasses SheetDataContextBase with SheetDataContext Change-Id: I6d7d1affe13cf7284df911675f107069739fc79a Reviewed-on: https://gerrit.libreoffice.org/84432 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/filter/inc/sheetdatacontext.hxx b/sc/source/filter/inc/sheetdatacontext.hxx index 5a9e6b778b41..8e746ef4fd80 100644 --- a/sc/source/filter/inc/sheetdatacontext.hxx +++ b/sc/source/filter/inc/sheetdatacontext.hxx @@ -32,10 +32,12 @@ namespace oox { namespace xls { -/** Used as base for sheet data context classes. Provides fast access to often - used converter objects and sheet index, to improve performance. +/** This class implements importing the sheetData element. + + The sheetData element contains all row settings and all cells in a single + sheet of a spreadsheet document. */ -struct SheetDataContextBase +class SheetDataContext : public WorksheetContextBase { AddressConverter& mrAddressConv; /// The address converter. std::unique_ptr<FormulaParser> mxFormulaParser; /// The formula parser, different one for each SheetDataContext @@ -43,18 +45,6 @@ struct SheetDataContextBase CellModel maCellData; /// Position, contents, formatting of current imported cell. CellFormulaModel maFmlaData; /// Settings for a cell formula. sal_Int16 const mnSheet; /// Index of the current sheet. - - explicit SheetDataContextBase( const WorksheetHelper& rHelper ); - virtual ~SheetDataContextBase(); -}; - -/** This class implements importing the sheetData element. - - The sheetData element contains all row settings and all cells in a single - sheet of a spreadsheet document. - */ -class SheetDataContext : public WorksheetContextBase, private SheetDataContextBase -{ // If we are doing threaded parsing, this SheetDataContext // forms the inner loop for bulk data parsing, and for the // duration of this we can drop the solar mutex. diff --git a/sc/source/filter/oox/sheetdatacontext.cxx b/sc/source/filter/oox/sheetdatacontext.cxx index 0a4892f61bdf..ce4d3816f61b 100644 --- a/sc/source/filter/oox/sheetdatacontext.cxx +++ b/sc/source/filter/oox/sheetdatacontext.cxx @@ -55,27 +55,18 @@ const sal_uInt8 BIFF12_ROW_SHOWPHONETIC = 0x01; } // namespace -SheetDataContextBase::SheetDataContextBase( const WorksheetHelper& rHelper ) : - mrAddressConv( rHelper.getAddressConverter() ), - mrSheetData( rHelper.getSheetData() ), - mnSheet( rHelper.getSheetIndex() ) -{ - mxFormulaParser.reset(rHelper.createFormulaParser()); -} - -SheetDataContextBase::~SheetDataContextBase() -{ -} - SheetDataContext::SheetDataContext( WorksheetFragmentBase& rFragment ) : WorksheetContextBase( rFragment ), - SheetDataContextBase( rFragment ), + mrAddressConv( rFragment.getAddressConverter() ), + mrSheetData( rFragment.getSheetData() ), + mnSheet( rFragment.getSheetIndex() ), mbHasFormula( false ), mbValidRange( false ), mnRow( -1 ), mnCol( -1 ) { SAL_INFO( "sc.filter", "start safe sheet data context - unlock" ); + mxFormulaParser.reset(rFragment.createFormulaParser()); } SheetDataContext::~SheetDataContext() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits