[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source
sc/source/ui/view/output2.cxx |8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) New commits: commit 75cafb3b64b3801c84e1c2b0a2b7b1b22b72469c Author: Attila Szűcs AuthorDate: Sat Aug 29 12:33:01 2020 +0200 Commit: Gabor Kelemen CommitDate: Wed Oct 14 21:42:00 2020 +0200 tdf#47079 sc layout: fix visibility of Autofilter header Rotated Autofilter header is shifted under the arrow image, if there is not enough space for both of them. An exception if the header is a value, and rotated by 90 or 270 degrees, which resulted invisible or partially visible cell content in narrow cells. Remove this exception. Co-authored-by: Tibor Nagy (NISZ) Change-Id: Ide8f8ef84a270b9d7ec92da8d3c6ee00ab5ddc2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101638 Tested-by: László Németh Reviewed-by: László Németh (cherry picked from commit 0bdd533900584f384e2ee4d127fa252e339342c0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104306 Tested-by: Gabor Kelemen Reviewed-by: Gabor Kelemen diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx index 41a9760cc450..940e08a07989 100644 --- a/sc/source/ui/view/output2.cxx +++ b/sc/source/ui/view/output2.cxx @@ -1339,19 +1339,13 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY // filter drop-down width is now independent from row height const long nFilter = DROPDOWN_BITMAP_SIZE; bool bFit = ( nNeeded + nFilter <= nMergeSizeX ); -if ( bFit || bCellIsValue ) +if ( bFit ) { // content fits even in the remaining area without the filter button // -> align within that remaining area rParam.maAlignRect.AdjustRight( -(nFilter * nLayoutSign) ); rParam.maClipRect.AdjustRight( -(nFilter * nLayoutSign) ); - -// if a number doesn't fit, don't hide part of the number behind the button -// -> set clip flags, so "###" replacement is used (but also within the smaller area) - -if ( !bFit ) -rParam.mbLeftClip = rParam.mbRightClip = true; } } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source
sc/source/core/tool/compiler.cxx | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) New commits: commit acd5f39dfe9262a43a4d8ff898c5b16a52e8c830 Author: Eike Rathke AuthorDate: Tue Jun 30 17:28:39 2020 +0200 Commit: Gabor Kelemen CommitDate: Tue Jul 28 13:55:26 2020 +0200 Resolves: tdf#131424 separator in TableRef column specifier is valid Even only a separator or any operator single character. Change-Id: I102dd7fd49c1a6a7f1d8c39f4a6139a51dbebe51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97535 Reviewed-by: Eike Rathke Tested-by: Jenkins (cherry picked from commit 31951265f541c9f5acf424674e2d1d97c0f3b8c2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97507 Reviewed-by: Xisco Fauli (cherry picked from commit 56641c9717f4fadcc81248c58c7762314270d721) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99591 Tested-by: Gabor Kelemen Reviewed-by: Gabor Kelemen diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index f0c755fa1b8c..e31ab2731fa3 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -2080,6 +2080,8 @@ sal_Int32 ScCompiler::NextSymbol(bool bInArray) case ssSkipString: case ssGetReference: case ssSkipReference: +case ssGetTableRefItem: +case ssGetTableRefColumn: break; default: if (eState == ssGetChar) @@ -4234,12 +4236,20 @@ bool ScCompiler::NextNewToken( bool bInArray ) bMayBeFuncName = ScGlobal::pCharClass->isLetter( aTmpStr, 0 ); bAsciiNonAlnum = false; } -if (bAsciiNonAlnum && cSymbol[1] == 0) + +// Within a TableRef anything except an unescaped '[' or ']' is an item +// or a column specifier, do not attempt to recognize any other single +// operator there so even [,] or [+] for a single character column +// specifier works. Note that space between two ocTableRefOpen is not +// supported (Table[ [ColumnSpec]]), not only here. Note also that Table[] +// without any item or column specifier is valid. +if (bAsciiNonAlnum && cSymbol[1] == 0 && (eLastOp != ocTableRefOpen || cSymbol[0] == '[' || cSymbol[0] == ']')) { // Shortcut for operators and separators that need no further checks or upper. if (IsOpCode( OUString( cSymbol), bInArray )) return true; } + if ( bMayBeFuncName ) { // a function name must be followed by a parenthesis ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source
sc/source/core/tool/interpr1.cxx | 12 1 file changed, 12 insertions(+) New commits: commit c68bfa15b73ac00402ed6f70ec75b5de02ed064d Author: Eike Rathke AuthorDate: Tue May 5 18:31:17 2020 +0200 Commit: Gabor Kelemen CommitDate: Tue Jul 28 09:24:43 2020 +0200 Resolves: tdf#131536 TEXT() support empty format string mimicking Excel Change-Id: Iffc37179cafb8b8bcfa1232e7aa54ae119ab5846 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93504 Reviewed-by: Eike Rathke Tested-by: Jenkins (cherry picked from commit b7a53077fd592c514d2f255cc19e4f0deb483dca) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99541 Tested-by: Gabor Kelemen Reviewed-by: Gabor Kelemen diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index 9069138c3013..6579cf15f833 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -9561,6 +9561,18 @@ void ScInterpreter::ScText() } if (nGlobalError != FormulaError::NONE) PushError( nGlobalError); +else if (sFormatString.isEmpty()) +{ +// Mimic the Excel behaviour that +// * anything numeric returns an empty string +// * text convertible to numeric returns an empty string +// * any other text returns that text +// Conversion was detected above. +if (bString) +PushString( aStr); +else +PushString( OUString()); +} else { OUString aResult; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source
sc/source/ui/cctrl/checklistmenu.cxx |6 -- sc/source/ui/inc/checklistmenu.hxx |2 +- 2 files changed, 5 insertions(+), 3 deletions(-) New commits: commit 1f2e111caa13d6f2c7595ed1c6831742450441ec Author: Noel Grandin AuthorDate: Fri May 29 15:10:08 2020 +0200 Commit: Gabor Kelemen CommitDate: Thu Jun 11 20:08:41 2020 +0200 fix tree disabled in autofilter pulldown, tdf#76481 related regression from commit f71557e958a8a626dfc1eef646b84b3c8b72569a Date: Thu May 21 15:05:08 2020 +0200 tdf#76481 speed up searching in autofilter pulldown Change-Id: Iac7fba87e12ae68a040706694ef94655113a6491 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95142 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit b81432a23c900329ece07854fd06a35a97c1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96173 Tested-by: Gabor Kelemen Reviewed-by: Gabor Kelemen diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx index 664b63444748..0ddd31748958 100644 --- a/sc/source/ui/cctrl/checklistmenu.cxx +++ b/sc/source/ui/cctrl/checklistmenu.cxx @@ -1230,7 +1230,7 @@ IMPL_LINK_NOARG(ScCheckListMenuWindow, EdModifyHdl, Edit&, void) { // when there are a lot of rows, it is cheaper to simply clear the tree and re-initialise maChecks->Clear(); -initMembers(); +nSelCount = initMembers(); } else { @@ -1888,11 +1888,12 @@ void ScCheckListMenuWindow::setHasDates(bool bHasDates) maChecks->SetStyle(WB_HASBUTTONS); } -void ScCheckListMenuWindow::initMembers() +size_t ScCheckListMenuWindow::initMembers() { size_t n = maMembers.size(); size_t nVisMemCount = 0; + maChecks->SetUpdateMode(false); maChecks->GetModel()->EnableInvalidate(false); @@ -1944,6 +1945,7 @@ void ScCheckListMenuWindow::initMembers() maChecks->GetModel()->EnableInvalidate(true); maChecks->SetUpdateMode(true); +return nVisMemCount; } void ScCheckListMenuWindow::setConfig(const Config& rConfig) diff --git a/sc/source/ui/inc/checklistmenu.hxx b/sc/source/ui/inc/checklistmenu.hxx index 2ff574a15252..f9affb88f096 100644 --- a/sc/source/ui/inc/checklistmenu.hxx +++ b/sc/source/ui/inc/checklistmenu.hxx @@ -348,7 +348,7 @@ public: void setHasDates(bool bHasDates); void addDateMember(const OUString& rName, double nVal, bool bVisible); void addMember(const OUString& rName, bool bVisible); -void initMembers(); +size_t initMembers(); void setConfig(const Config& rConfig); bool isAllSelected() const; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source
sc/source/ui/cctrl/checklistmenu.cxx | 60 --- 1 file changed, 29 insertions(+), 31 deletions(-) New commits: commit 32fbbe2a4d75d88e0185908bddc9ac039048afc3 Author: Noel Grandin AuthorDate: Thu May 21 15:05:08 2020 +0200 Commit: Gabor Kelemen CommitDate: Thu Jun 11 19:56:14 2020 +0200 tdf#76481 speed up searching in autofilter pulldown turning setUpdateMode on/off fixes the common case, but we need to special case the "return to show all items" situation On my machine this takes the searching time from "more than 30s" to "just under 1s" Change-Id: I02d11c428e82dba1e840e981507337a1012dd09f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94633 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit f71557e958a8a626dfc1eef646b84b3c8b72569a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96172 Tested-by: Gabor Kelemen Reviewed-by: Gabor Kelemen diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx index b9b5acca11c8..664b63444748 100644 --- a/sc/source/ui/cctrl/checklistmenu.cxx +++ b/sc/source/ui/cctrl/checklistmenu.cxx @@ -1222,20 +1222,27 @@ IMPL_LINK_NOARG(ScCheckListMenuWindow, EdModifyHdl, Edit&, void) bool bSearchTextEmpty = aSearchText.isEmpty(); size_t n = maMembers.size(); size_t nSelCount = 0; -OUString aLabelDisp; bool bSomeDateDeletes = false; -for (size_t i = 0; i < n; ++i) +maChecks->SetUpdateMode(false); + +if (bSearchTextEmpty) +{ +// when there are a lot of rows, it is cheaper to simply clear the tree and re-initialise +maChecks->Clear(); +initMembers(); +} +else { -bool bIsDate = maMembers[i].mbDate; -bool bPartialMatch = false; +for (size_t i = 0; i < n; ++i) +{ +bool bIsDate = maMembers[i].mbDate; +bool bPartialMatch = false; -aLabelDisp = maMembers[i].maName; -if ( aLabelDisp.isEmpty() ) -aLabelDisp = ScResId( STR_EMPTYDATA ); +OUString aLabelDisp = maMembers[i].maName; +if ( aLabelDisp.isEmpty() ) +aLabelDisp = ScResId( STR_EMPTYDATA ); -if ( !bSearchTextEmpty ) -{ if ( !bIsDate ) bPartialMatch = ( ScGlobal::pCharClass->lowercase( aLabelDisp ).indexOf( aSearchText ) != -1 ); else if ( maMembers[i].meDatePartType == ScCheckListMember::DAY ) // Match with both numerical and text version of month @@ -1243,30 +1250,19 @@ IMPL_LINK_NOARG(ScCheckListMenuWindow, EdModifyHdl, Edit&, void) maMembers[i].maRealName + maMembers[i].maDateParts[1] )).indexOf( aSearchText ) != -1); else continue; -} -else if ( bIsDate && maMembers[i].meDatePartType != ScCheckListMember::DAY ) -continue; -if ( bSearchTextEmpty ) -{ -SvTreeListEntry* pLeaf = maChecks->ShowCheckEntry( aLabelDisp, maMembers[i], true, maMembers[i].mbVisible ); -updateMemberParents( pLeaf, i ); -if ( maMembers[i].mbVisible ) +if ( bPartialMatch ) +{ +SvTreeListEntry* pLeaf = maChecks->ShowCheckEntry( aLabelDisp, maMembers[i] ); +updateMemberParents( pLeaf, i ); ++nSelCount; -continue; -} - -if ( bPartialMatch ) -{ -SvTreeListEntry* pLeaf = maChecks->ShowCheckEntry( aLabelDisp, maMembers[i] ); -updateMemberParents( pLeaf, i ); -++nSelCount; -} -else -{ -maChecks->ShowCheckEntry( aLabelDisp, maMembers[i], false, false ); -if( bIsDate ) -bSomeDateDeletes = true; +} +else +{ +maChecks->ShowCheckEntry( aLabelDisp, maMembers[i], false, false ); +if( bIsDate ) +bSomeDateDeletes = true; +} } } @@ -1280,6 +1276,8 @@ IMPL_LINK_NOARG(ScCheckListMenuWindow, EdModifyHdl, Edit&, void) } } +maChecks->SetUpdateMode(true); + if ( nSelCount == n ) maChkToggleAll->SetState( TRISTATE_TRUE ); else if ( nSelCount == 0 ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits