From f7142cfcbec27362a61ca65ede573e282f9574fd Mon Sep 17 00:00:00 2001 From: frankyifei Date: Sat, 1 Aug 2015 19:12:40 +0930 Subject: [PATCH 1/3] fix filechooser crash on entering folder contains nil symlink --- frontend/ui/widget/filechooser.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/ui/widget/filechooser.lua b/frontend/ui/widget/filechooser.lua index 4fcb81984..9f60a5751 100644 --- a/frontend/ui/widget/filechooser.lua +++ b/frontend/ui/widget/filechooser.lua @@ -57,13 +57,15 @@ function FileChooser:genItemTableFromPath(path) if self.show_hidden or not string.match(f, "^%.[^.]") then local filename = self.path.."/"..f local attributes = lfs.attributes(filename) - if attributes.mode == "directory" and f ~= "." and f~=".." then - if self.dir_filter(filename) then - table.insert(dirs, {name = f, attr = attributes}) - end - elseif attributes.mode == "file" then - if self.file_filter(filename) then - table.insert(files, {name = f, attr = attributes}) + if attributes ~= nil then + if attributes.mode == "directory" and f ~= "." and f~=".." then + if self.dir_filter(filename) then + table.insert(dirs, {name = f, attr = attributes}) + end + elseif attributes.mode == "file" then + if self.file_filter(filename) then + table.insert(files, {name = f, attr = attributes}) + end end end end From f7fb103abcaf6445a712fb36f559a2fc551d5461 Mon Sep 17 00:00:00 2001 From: frankyifei Date: Sat, 1 Aug 2015 19:14:40 +0930 Subject: [PATCH 2/3] loop menu pages when it reaches ends MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the following graph shows my idea. 1->2->3->4->5->6->7->8->9->10 └----------------------------------------┘ --- frontend/ui/widget/menu.lua | 4 ++++ frontend/ui/widget/touchmenu.lua | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/ui/widget/menu.lua b/frontend/ui/widget/menu.lua index e7b6cbe92..d84fb4081 100644 --- a/frontend/ui/widget/menu.lua +++ b/frontend/ui/widget/menu.lua @@ -805,6 +805,8 @@ function Menu:onNextPage() if end_position ~= self.selected.y then self:updateItems(end_position) end + self.page = 1 + self:updateItems(1) end return true end @@ -812,6 +814,8 @@ end function Menu:onPrevPage() if self.page > 1 then self.page = self.page - 1 + elseif self.page == 1 then + self.page =self.page_num end self:updateItems(1) return true diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index 136c8e910..65c4b49b8 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -511,16 +511,20 @@ end function TouchMenu:onNextPage() if self.page < self.page_num then self.page = self.page + 1 - self:updateItems() + elseif self.page == self.page_num then + self.page = 1 end + self:updateItems() return true end function TouchMenu:onPrevPage() if self.page > 1 then self.page = self.page - 1 - self:updateItems() + elseif self.page == 1 then + self.page = self.page_num end + self:updateItems() return true end From d0a44b9152104180b618cc9b1ac974a82d1093c2 Mon Sep 17 00:00:00 2001 From: frankyifei Date: Sat, 1 Aug 2015 19:20:10 +0930 Subject: [PATCH 3/3] style --- frontend/ui/widget/menu.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/ui/widget/menu.lua b/frontend/ui/widget/menu.lua index d84fb4081..4aa477803 100644 --- a/frontend/ui/widget/menu.lua +++ b/frontend/ui/widget/menu.lua @@ -815,7 +815,7 @@ function Menu:onPrevPage() if self.page > 1 then self.page = self.page - 1 elseif self.page == 1 then - self.page =self.page_num + self.page = self.page_num end self:updateItems(1) return true