summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-12-09 16:27:43 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-12-10 10:56:18 +0100
commitd8aae8057d76743cfc1591cbffda2f54c338a213 (patch)
tree6f45a30232293c606660de5e89262d0597cdda18 /sc
parentf38d7a7c1abdfb59fbbdf4d9bbc8e06fbed77887 (diff)
Related: tdf#146018 move Top10 below empty/not-empty add add Bottom10
Change-Id: I3333c44b84dea8f8b1e61872606b50e9a384d8c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126621 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/strings.hrc1
-rw-r--r--sc/qa/uitest/autofilter/autofilter.py2
-rw-r--r--sc/qa/uitest/autofilter2/tdf126306.py4
-rw-r--r--sc/qa/uitest/autofilter2/tdf141559.py3
-rwxr-xr-xsc/qa/uitest/autofilter2/tdf46184.py1
-rw-r--r--sc/qa/uitest/autofilter2/tdf68113.py2
-rw-r--r--sc/source/ui/inc/gridwin.hxx5
-rw-r--r--sc/source/ui/view/gridwin.cxx11
8 files changed, 20 insertions, 9 deletions
diff --git a/sc/inc/strings.hrc b/sc/inc/strings.hrc
index ed39473c4637..96f4e8c3e0b2 100644
--- a/sc/inc/strings.hrc
+++ b/sc/inc/strings.hrc
@@ -33,6 +33,7 @@
#define SCSTR_STDFILTER NC_("SCSTR_STDFILTER", "Standard Filter...")
#define SCSTR_CLEAR_FILTER NC_("SCSTR_CLEAR_FILTER", "Clear Filter")
#define SCSTR_TOP10FILTER NC_("SCSTR_TOP10FILTER", "Top 10")
+#define SCSTR_BOTTOM10FILTER NC_("SCSTR_BOTTOM10FILTER", "Bottom 10")
#define SCSTR_FILTER_EMPTY NC_("SCSTR_FILTER_EMPTY", "Empty")
#define SCSTR_FILTER_NOTEMPTY NC_("SCSTR_FILTER_NOTEMPTY", "Not Empty")
#define SCSTR_FILTER_COLOR NC_("SCSTR_FILTER_COLOR", "Filter by Color")
diff --git a/sc/qa/uitest/autofilter/autofilter.py b/sc/qa/uitest/autofilter/autofilter.py
index 21e6e4eed20b..bbfbbaab7118 100644
--- a/sc/qa/uitest/autofilter/autofilter.py
+++ b/sc/qa/uitest/autofilter/autofilter.py
@@ -431,6 +431,8 @@ class AutofilterTest(UITestCase):
xMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
xSubFloatWindow = self.xUITest.getFloatWindow()
xSubMenu = xSubFloatWindow.getChild("menu")
+ xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
+ xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
self.assertFalse(is_row_hidden(doc, 0))
diff --git a/sc/qa/uitest/autofilter2/tdf126306.py b/sc/qa/uitest/autofilter2/tdf126306.py
index cf8dcd1f3f0a..51c099a3f3c2 100644
--- a/sc/qa/uitest/autofilter2/tdf126306.py
+++ b/sc/qa/uitest/autofilter2/tdf126306.py
@@ -84,6 +84,8 @@ class tdf126306(UITestCase):
xMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
xSubFloatWindow = self.xUITest.getFloatWindow()
xSubMenu = xSubFloatWindow.getChild("menu")
+ xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
+ xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
top10_hidden_values = [True, True, True, False, True, False, True,
@@ -108,7 +110,6 @@ class tdf126306(UITestCase):
xMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
xSubFloatWindow = self.xUITest.getFloatWindow()
xSubMenu = xSubFloatWindow.getChild("menu")
- xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
empty_values = [False] * 14
@@ -132,7 +133,6 @@ class tdf126306(UITestCase):
xSubFloatWindow = self.xUITest.getFloatWindow()
xSubMenu = xSubFloatWindow.getChild("menu")
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
- xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
#Nothing should change
diff --git a/sc/qa/uitest/autofilter2/tdf141559.py b/sc/qa/uitest/autofilter2/tdf141559.py
index 5f027a10ed43..e4eba12056b0 100644
--- a/sc/qa/uitest/autofilter2/tdf141559.py
+++ b/sc/qa/uitest/autofilter2/tdf141559.py
@@ -43,7 +43,7 @@ class tdf141559(UITestCase):
xSubMenu = xSubFloatWindow.getChild("menu")
nLastIdx = int(get_state_as_dict(xSubMenu)['Children']) - 1
- self.assertEqual(4, nLastIdx)
+ self.assertEqual(5, nLastIdx)
# check last item: 'Standard Filter...' (new menu item 'Clear Filter' is optional)
self.assertEqual('Standard Filter...', get_state_as_dict(xSubMenu.getChild(str(nLastIdx)))['Text'])
@@ -51,6 +51,7 @@ class tdf141559(UITestCase):
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
+ xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
self.assertEqual("Standard Filter...", get_state_as_dict(xSubMenu)['SelectEntryText'])
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
diff --git a/sc/qa/uitest/autofilter2/tdf46184.py b/sc/qa/uitest/autofilter2/tdf46184.py
index 6f1edcaa781f..87908b833507 100755
--- a/sc/qa/uitest/autofilter2/tdf46184.py
+++ b/sc/qa/uitest/autofilter2/tdf46184.py
@@ -42,6 +42,7 @@ class tdf46184(UITestCase):
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
+ xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
self.assertEqual("Standard Filter...", get_state_as_dict(xSubMenu)['SelectEntryText'])
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
diff --git a/sc/qa/uitest/autofilter2/tdf68113.py b/sc/qa/uitest/autofilter2/tdf68113.py
index 9c34ab5c9e85..74c35d65b665 100644
--- a/sc/qa/uitest/autofilter2/tdf68113.py
+++ b/sc/qa/uitest/autofilter2/tdf68113.py
@@ -39,7 +39,6 @@ class tdf68113(UITestCase):
xMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
xSubFloatWindow = self.xUITest.getFloatWindow()
xSubMenu = xSubFloatWindow.getChild("menu")
- xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
# Checkbox elements
@@ -65,7 +64,6 @@ class tdf68113(UITestCase):
xSubFloatWindow = self.xUITest.getFloatWindow()
xSubMenu = xSubFloatWindow.getChild("menu")
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
- xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"DOWN"}))
xSubMenu.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
# Checkbox elements
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 2f8ac0deacfc..183705db2326 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -331,10 +331,11 @@ public:
enum class AutoFilterMode
{
Normal,
- Top10,
- Custom,
Empty,
NonEmpty,
+ Top10,
+ Bottom10,
+ Custom,
TextColor,
BackgroundColor,
SortAscending,
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 9e0328ba7991..6d832990f271 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -981,11 +981,13 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow)
if (ScListSubMenuControl* pSubMenu = mpAutoFilterPopup->addSubMenuItem(ScResId(SCSTR_FILTER_CONDITION), true, false))
{
pSubMenu->addMenuItem(
- ScResId(SCSTR_TOP10FILTER), new AutoFilterAction(this, AutoFilterMode::Top10));
- pSubMenu->addMenuItem(
ScResId(SCSTR_FILTER_EMPTY), new AutoFilterAction(this, AutoFilterMode::Empty));
pSubMenu->addMenuItem(
ScResId(SCSTR_FILTER_NOTEMPTY), new AutoFilterAction(this, AutoFilterMode::NonEmpty));
+ pSubMenu->addMenuItem(
+ ScResId(SCSTR_TOP10FILTER), new AutoFilterAction(this, AutoFilterMode::Top10));
+ pSubMenu->addMenuItem(
+ ScResId(SCSTR_BOTTOM10FILTER), new AutoFilterAction(this, AutoFilterMode::Bottom10));
pSubMenu->addSeparator();
pSubMenu->addMenuItem(
ScResId(SCSTR_STDFILTER), new AutoFilterAction(this, AutoFilterMode::Custom));
@@ -1163,6 +1165,11 @@ void ScGridWindow::UpdateAutoFilterFromMenu(AutoFilterMode eMode)
pEntry->GetQueryItem().meType = ScQueryEntry::ByString;
pEntry->GetQueryItem().maString = rPool.intern("10");
break;
+ case AutoFilterMode::Bottom10:
+ pEntry->eOp = SC_BOTVAL;
+ pEntry->GetQueryItem().meType = ScQueryEntry::ByString;
+ pEntry->GetQueryItem().maString = rPool.intern("10");
+ break;
case AutoFilterMode::Empty:
pEntry->SetQueryByEmpty();
break;