summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-07-14 14:22:06 +0100
committerCaolán McNamara <caolanm@redhat.com>2017-07-14 18:11:03 +0200
commit94c7a401583200cf5982594b1b043ad1a5e3cd38 (patch)
tree993b6717312394349d547e271b8e2e8811194b12
parent6b6b81cae861a1e6463360d1b320c0d3e24de111 (diff)
Resolves: tdf#99071 tree view shows odd text widths when > 100 lines
reverts commit 62ea355b2679073b8ee326df5793231996136da9 Date: Thu Dec 12 09:55:35 2013 +0100 fdo#72125: GetTextWidth() can get very expensive. Let's just count an approximate width using a cached value when we have too many entries. The expert dialog got fixed by not populating it with all options on load and instead by incremental disclosure as the users searches/expands it so this optimization effort isn't needed in the meantime there was another problem the above papered over with commit b4bbb5e5d7b31caad2fbcc00382ad27df3c81001 Date: Sun May 17 22:56:46 2015 +0900 refactor how font, fg. and bg. are applied in widgets/controls which was fixed (hopefully) in the previous commit Change-Id: I8383d9cd7a9983a85c7f3acec0281d984c44f9e7 Reviewed-on: https://gerrit.libreoffice.org/39951 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--svtools/source/contnr/svlbitm.cxx20
1 files changed, 1 insertions, 19 deletions
diff --git a/svtools/source/contnr/svlbitm.cxx b/svtools/source/contnr/svlbitm.cxx
index 8b1f67741979..fae3dd1e2273 100644
--- a/svtools/source/contnr/svlbitm.cxx
+++ b/svtools/source/contnr/svlbitm.cxx
@@ -214,25 +214,7 @@ void SvLBoxString::InitViewData(
{
if( !pViewData )
pViewData = pView->GetViewDataItem( pEntry, this );
-
- // fdo#72125: GetTextWidth() can get very expensive; let's just count
- // an approximate width using a cached value when we have many entries
- long nTextWidth;
- if (pView->GetEntryCount() > 100)
- {
- static SvTreeListBox *s_pPreviousView = nullptr;
- static float s_fApproximateCharWidth = 0.0;
- if (s_pPreviousView != pView)
- {
- s_pPreviousView = pView;
- s_fApproximateCharWidth = pView->approximate_char_width();
- }
- nTextWidth = maText.getLength() * s_fApproximateCharWidth;
- }
- else
- nTextWidth = pView->GetTextWidth(maText);
-
- pViewData->maSize = Size(nTextWidth, pView->GetTextHeight());
+ pViewData->maSize = Size(pView->GetTextWidth(maText), pView->GetTextHeight());
}
// ***************************************************************