From 1d5ceabc3ba9bf3186725131812f62e26f0f5008 Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Tue, 23 Apr 2024 13:06:57 +0300 Subject: [PATCH] sortwidget: more collates --- frontend/ui/widget/sortwidget.lua | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/frontend/ui/widget/sortwidget.lua b/frontend/ui/widget/sortwidget.lua index 44501d631..8923a943e 100644 --- a/frontend/ui/widget/sortwidget.lua +++ b/frontend/ui/widget/sortwidget.lua @@ -483,7 +483,7 @@ function SortWidget:showMenu() align = "left", callback = function() UIManager:close(dialog) - self:sortItems() + self:sortItems("strcoll") end, }}, {{ @@ -491,7 +491,23 @@ function SortWidget:showMenu() align = "left", callback = function() UIManager:close(dialog) - self:sortItems(true) + self:sortItems("strcoll", true) + end, + }}, + {{ + text = _("Sort A to Z (natural)"), + align = "left", + callback = function() + UIManager:close(dialog) + self:sortItems("natural") + end, + }}, + {{ + text = _("Sort Z to A (natural)"), + align = "left", + callback = function() + UIManager:close(dialog) + self:sortItems("natural", true) end, }}, } @@ -505,12 +521,12 @@ function SortWidget:showMenu() UIManager:show(dialog) end -function SortWidget:sortItems(reverse) +function SortWidget:sortItems(collate, reverse_collate) if not self.orig_item_table then self.orig_item_table = util.tableDeepCopy(self.item_table) end - local sort_func = reverse and function(a, b) return a.text > b.text end - or function(a, b) return a.text < b.text end + local FileChooser = require("ui/widget/filechooser") + local sort_func = FileChooser:getSortingFunction(FileChooser.collates[collate], reverse_collate) table.sort(self.item_table, sort_func) self.show_page = 1 self.marked = 1 -- enable cancel button