summaryrefslogtreecommitdiff
path: root/sc/qa/unit/subsequent_filters_test2.cxx
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2023-09-13 14:57:23 +0200
committerCaolán McNamara <caolan.mcnamara@collabora.com>2023-09-18 22:28:49 +0200
commitdcd369ceff53c77ba26b91f580d3be2ea105a132 (patch)
tree2968ebc7095c9a2a616a0cde3963e9d5ef765ca0 /sc/qa/unit/subsequent_filters_test2.cxx
parent57e9c6309c52b194ff9350818ff2b3724255ed4a (diff)
Schedule conditional formating repaint after filtering is completedcp-22.05.19-1
When we have sheet with lots of data with applied conditional formatting and that data is used with autofilter feature - filtering is very slow. That was caused by repaints synchronously called on every row show/hide. ScConditionalFormat::DoRepaint() called by ScFormulaListener callback ... ScDocument::Broadcast ScColumn::BroadcastRows ScTable::SetRowHidden ScTable::DBShowRows This patch schedules repaint in the Idle so we do that after all changes are already applied. Change-Id: If0876ada0f336a41b69560db6a581d6e24d7ac16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156897 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit c838c24a7e1eee9709789aab99b242f0a0c8c419) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156969
Diffstat (limited to 'sc/qa/unit/subsequent_filters_test2.cxx')
-rw-r--r--sc/qa/unit/subsequent_filters_test2.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/sc/qa/unit/subsequent_filters_test2.cxx b/sc/qa/unit/subsequent_filters_test2.cxx
index ce84c891649f..df7f60aded32 100644
--- a/sc/qa/unit/subsequent_filters_test2.cxx
+++ b/sc/qa/unit/subsequent_filters_test2.cxx
@@ -29,6 +29,7 @@
#include <drwlayer.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdoole2.hxx>
+#include <vcl/scheduler.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/wghtitem.hxx>
#include <editeng/postitem.hxx>
@@ -2319,6 +2320,8 @@ void ScFiltersTest2::testCondFormatFormulaListenerXLSX()
rDoc.SetDocVisible(true);
rDoc.SetValue(0, 0, 0, 2.0);
+ Scheduler::ProcessEventsToIdle();
+
CPPUNIT_ASSERT(aListener.mbCalled);
xDocSh->DoClose();