[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source

2020-10-14 Thread Attila Szűcs (via logerrit)
 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

2020-07-28 Thread Eike Rathke (via logerrit)
 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

2020-07-28 Thread Eike Rathke (via logerrit)
 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

2020-06-11 Thread Noel Grandin (via logerrit)
 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

2020-06-11 Thread Noel Grandin (via logerrit)
 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