diff options
author | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2018-01-23 14:22:59 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-01-31 14:34:08 +0100 |
commit | ea607135ce6bb607508ac6ce6fcc4dae99f297a9 (patch) | |
tree | 2501ffe09d4917832b6ae8d8b506a25b011261bf /sc/inc | |
parent | 3341c752024687e96b7aad2d19e04d65ee7e232e (diff) |
Improve performance when looking for draw objects anchored to cells
Look for a whole column at once so we don't have to iterate all draw objects
for every cell, but only once per column.
Follow-up for 3a2a430ae8e2c1647c18d8904477949f6e2e7941
Change-Id: Ic8740fca7d595528785b432c1cedf4fad4f13ba1
Reviewed-on: https://gerrit.libreoffice.org/48416
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/drwlayer.hxx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx index d9155d0d90f0..92fc4f0449df 100644 --- a/sc/inc/drwlayer.hxx +++ b/sc/inc/drwlayer.hxx @@ -182,8 +182,8 @@ public: static void SetCellAnchoredFromPosition( SdrObject &rObj, const ScDocument &rDoc, SCTAB nTab ); static void UpdateCellAnchorFromPositionEnd( const SdrObject &rObj, ScDrawObjData &rAnchor, const ScDocument &rDoc, SCTAB nTab, bool bUseLogicRect = true ); static ScAnchorType GetAnchorType( const SdrObject& ); - std::vector<SdrObject*> GetObjectsAnchoredToCell(const ScAddress& rPos); - bool HasObjectsAnchoredInRange(ScRange& rRange); + std::map<SCROW, std::vector<SdrObject*>> GetObjectsAnchoredToRange(SCTAB nTab, SCCOL nCol, SCROW nStartRow, SCROW nEndRow); + bool HasObjectsAnchoredInRange(ScRange& rRange); void MoveObject(SdrObject* pObj, ScAddress& rNewPosition); // positions for detektive lines |