[Libreoffice-commits] core.git: sc/qa sc/source

Tünde Tóth (via logerrit) logerrit at kemper.freedesktop.org
Tue Jun 1 11:04:08 UTC 2021


 sc/qa/uitest/autofilter/autofilter.py     |   13 ++++++++++---
 sc/qa/uitest/autofilter/autofilterBugs.py |   18 +++++++++---------
 sc/qa/uitest/autofilter/tdf68113.py       |    8 ++++----
 sc/source/ui/view/gridwin.cxx             |   29 +++++++++++++++++++----------
 4 files changed, 42 insertions(+), 26 deletions(-)

New commits:
commit 361b95b39c0ad3028f82b9893bb3c84dcbd1932f
Author:     Tünde Tóth <toth.tunde at nisz.hu>
AuthorDate: Mon May 31 11:09:35 2021 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Tue Jun 1 13:03:26 2021 +0200

    tdf#140745 sc AutoFilter: fix placing of "(empty)"
    
    Show entry "(empty)" on top of the checkbox list
    in the Autofilter dropdown (instead of between the
    numerical and string values).
    
    Change-Id: I5b6d339d07b886bd52d24c7d900b53c6f921c2ec
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116439
    Tested-by: László Németh <nemeth at numbertext.org>
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/sc/qa/uitest/autofilter/autofilter.py b/sc/qa/uitest/autofilter/autofilter.py
index 70c6b3c3b89d..060ada717844 100644
--- a/sc/qa/uitest/autofilter/autofilter.py
+++ b/sc/qa/uitest/autofilter/autofilter.py
@@ -409,7 +409,14 @@ class AutofilterTest(UITestCase):
         xFloatWindow = self.xUITest.getFloatWindow()
         xCheckListMenu = xFloatWindow.getChild("check_list_menu")
         xList = xCheckListMenu.getChild("check_list_box")
-        xEntry = xList.getChild("2")
+
+        # tdf140745 show (empty) entry on top of the checkbox list
+        self.assertEqual(3, len(xList.getChildren()))
+        self.assertEqual("(empty)", get_state_as_dict(xList.getChild('0'))['Text'])
+        self.assertEqual("0", get_state_as_dict(xList.getChild('1'))['Text'])
+        self.assertEqual("1", get_state_as_dict(xList.getChild('2'))['Text'])
+
+        xEntry = xList.getChild("0")
         xEntry.executeAction("CLICK", tuple())
 
         xOkButton = xFloatWindow.getChild("ok")
@@ -424,9 +431,9 @@ class AutofilterTest(UITestCase):
         xCheckListMenu = xFloatWindow.getChild("check_list_menu")
         xList = xCheckListMenu.getChild("check_list_box")
         self.assertEqual(3, len(xList.getChildren()))
-        self.assertEqual('true', get_state_as_dict(xList.getChild('0'))['IsChecked'])
+        self.assertEqual('false', get_state_as_dict(xList.getChild('0'))['IsChecked'])
         self.assertEqual('true', get_state_as_dict(xList.getChild('1'))['IsChecked'])
-        self.assertEqual('false', get_state_as_dict(xList.getChild('2'))['IsChecked'])
+        self.assertEqual('true', get_state_as_dict(xList.getChild('2'))['IsChecked'])
         xCloseButton = xFloatWindow.getChild("cancel")
         xCloseButton.executeAction("CLICK", tuple())
 
diff --git a/sc/qa/uitest/autofilter/autofilterBugs.py b/sc/qa/uitest/autofilter/autofilterBugs.py
index 9eb45d83a3a0..fabde9aabce9 100644
--- a/sc/qa/uitest/autofilter/autofilterBugs.py
+++ b/sc/qa/uitest/autofilter/autofilterBugs.py
@@ -220,15 +220,15 @@ class autofilter(UITestCase):
         x8Entry = xTreeList.getChild("7")
         x9Entry = xTreeList.getChild("8")
 
-        self.assertEqual(get_state_as_dict(x1Entry)["Text"], "0")
-        self.assertEqual(get_state_as_dict(x2Entry)["Text"], "0.1")
-        self.assertEqual(get_state_as_dict(x3Entry)["Text"], "0.2")
-        self.assertEqual(get_state_as_dict(x4Entry)["Text"], "0.3")
-        self.assertEqual(get_state_as_dict(x5Entry)["Text"], "0.5")
-        self.assertEqual(get_state_as_dict(x6Entry)["Text"], "0.8")
-        self.assertEqual(get_state_as_dict(x7Entry)["Text"], "0.9")
-        self.assertEqual(get_state_as_dict(x8Entry)["Text"], "1")
-        self.assertEqual(get_state_as_dict(x9Entry)["Text"], "(empty)")
+        self.assertEqual(get_state_as_dict(x1Entry)["Text"], "(empty)")
+        self.assertEqual(get_state_as_dict(x2Entry)["Text"], "0")
+        self.assertEqual(get_state_as_dict(x3Entry)["Text"], "0.1")
+        self.assertEqual(get_state_as_dict(x4Entry)["Text"], "0.2")
+        self.assertEqual(get_state_as_dict(x5Entry)["Text"], "0.3")
+        self.assertEqual(get_state_as_dict(x6Entry)["Text"], "0.5")
+        self.assertEqual(get_state_as_dict(x7Entry)["Text"], "0.8")
+        self.assertEqual(get_state_as_dict(x8Entry)["Text"], "0.9")
+        self.assertEqual(get_state_as_dict(x9Entry)["Text"], "1")
         self.assertEqual(get_state_as_dict(xTreeList)["Children"], "9")
 
         xCancel = xFloatWindow.getChild("cancel")
diff --git a/sc/qa/uitest/autofilter/tdf68113.py b/sc/qa/uitest/autofilter/tdf68113.py
index dd211665f614..f62ac9ce95c0 100644
--- a/sc/qa/uitest/autofilter/tdf68113.py
+++ b/sc/qa/uitest/autofilter/tdf68113.py
@@ -44,9 +44,9 @@ class tdf68113(UITestCase):
         xCheckListMenu = xFloatWindow.getChild("check_list_menu")
         xTreeList = xCheckListMenu.getChild("check_list_box")
         self.assertEqual(5, len(xTreeList.getChildren()))
-        self.assertEqual('false', get_state_as_dict(xTreeList.getChild('0'))['IsChecked'])
+        self.assertEqual('true', get_state_as_dict(xTreeList.getChild('0'))['IsChecked'])
         self.assertEqual('false', get_state_as_dict(xTreeList.getChild('2'))['IsChecked'])
-        self.assertEqual('true', get_state_as_dict(xTreeList.getChild('4'))['IsChecked'])
+        self.assertEqual('false', get_state_as_dict(xTreeList.getChild('4'))['IsChecked'])
         xCancelBtn = xFloatWindow.getChild("cancel")
         xCancelBtn.executeAction("CLICK", tuple())
 
@@ -66,9 +66,9 @@ class tdf68113(UITestCase):
         xCheckListMenu = xFloatWindow.getChild("check_list_menu")
         xTreeList = xCheckListMenu.getChild("check_list_box")
         self.assertEqual(5, len(xTreeList.getChildren()))
-        self.assertEqual('true', get_state_as_dict(xTreeList.getChild('0'))['IsChecked'])
+        self.assertEqual('false', get_state_as_dict(xTreeList.getChild('0'))['IsChecked'])
         self.assertEqual('true', get_state_as_dict(xTreeList.getChild('2'))['IsChecked'])
-        self.assertEqual('false', get_state_as_dict(xTreeList.getChild('4'))['IsChecked'])
+        self.assertEqual('true', get_state_as_dict(xTreeList.getChild('4'))['IsChecked'])
         xCancelBtn = xFloatWindow.getChild("cancel")
         xCancelBtn.executeAction("CLICK", tuple())
 
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index ca1dd4df1587..bc4d1006325e 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -683,22 +683,31 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow)
 
     // Populate the check box list.
     rControl.setMemberSize(aFilterEntries.size());
+    for (auto it = aFilterEntries.begin(); it != aFilterEntries.end(); ++it)
+    {
+        // tdf#140745 show (empty) entry on top of the checkbox list
+        if (it->GetString().isEmpty())
+        {
+            const OUString& aStringVal = it->GetString();
+            const double aDoubleVal = it->GetValue();
+            bool bSelected = true;
+            if (!aSelectedValue.empty() || !aSelectedString.empty())
+                bSelected = aSelectedString.count(aStringVal) > 0;
+            else if (bQueryByNonEmpty)
+                bSelected = false;
+            rControl.addMember(aStringVal, aDoubleVal, bSelected, false, it->IsDuplicated());
+            aFilterEntries.maStrData.erase(it);
+            break;
+        }
+    }
     for (const auto& rEntry : aFilterEntries)
     {
         const OUString& aStringVal = rEntry.GetString();
         const double aDoubleVal = rEntry.GetValue();
         bool bSelected = true;
         if (!aSelectedValue.empty() || !aSelectedString.empty())
-        {
-            if (aStringVal.isEmpty())
-                bSelected = aSelectedString.count(aStringVal) > 0;
-            else
-                bSelected
-                    = aSelectedValue.count(aDoubleVal) > 0 || aSelectedString.count(aStringVal) > 0;
-        }
-        else if (bQueryByNonEmpty)
-            bSelected = !aStringVal.isEmpty();
-
+            bSelected
+                = aSelectedValue.count(aDoubleVal) > 0 || aSelectedString.count(aStringVal) > 0;
         if ( rEntry.IsDate() )
             rControl.addDateMember( aStringVal, rEntry.GetValue(), bSelected );
         else


More information about the Libreoffice-commits mailing list