From 50d9041c1d54e65064d9bedad1d2f247a7f6272f Mon Sep 17 00:00:00 2001 From: Andrey Golovizin Date: Sat, 15 Nov 2014 16:23:27 +0100 Subject: [PATCH] Use checked_func instead of remembering the checked item. --- frontend/apps/reader/modules/readerfont.lua | 22 +++---------------- .../apps/reader/modules/readerhyphenation.lua | 21 +++--------------- 2 files changed, 6 insertions(+), 37 deletions(-) diff --git a/frontend/apps/reader/modules/readerfont.lua b/frontend/apps/reader/modules/readerfont.lua index ed041ef97..b87f031e6 100644 --- a/frontend/apps/reader/modules/readerfont.lua +++ b/frontend/apps/reader/modules/readerfont.lua @@ -20,17 +20,8 @@ local ReaderFont = InputContainer:new{ face_table = nil, -- default gamma from crengine's lvfntman.cpp gamma_index = nil, - cur_face_idx = nil, } -function ReaderFont:_changeSel(k) - if self.cur_face_idx then - self.face_table[self.cur_face_idx].checked = false - end - self.face_table[k].checked = true - self.cur_face_idx = k -end - function ReaderFont:init() if Device:hasKeyboard() then -- add shortcut for keyboard @@ -58,18 +49,17 @@ function ReaderFont:init() self.face_table = {} local face_list = cre.getFontFaces() for k,v in ipairs(face_list) do - if v == self.font_face then - self.cur_face_idx = k - end table.insert(self.face_table, { text = v, callback = function() - self:_changeSel(k) self:setFont(v) end, hold_callback = function() self:makeDefault(v) end, + checked_func = function() + return v == self.font_face + end }) face_list[k] = {text = v} end @@ -114,12 +104,6 @@ function ReaderFont:onReadSettings(config) table.insert(self.ui.postInitCallback, function() self.ui:handleEvent(Event:new("UpdatePos")) end) - - for k,v in ipairs(self.face_table) do - if v.text == self.font_face then - self:_changeSel(k) - end - end end function ReaderFont:onShowFontMenu() diff --git a/frontend/apps/reader/modules/readerhyphenation.lua b/frontend/apps/reader/modules/readerhyphenation.lua index 0a6aeeb7e..b9adec9e9 100644 --- a/frontend/apps/reader/modules/readerhyphenation.lua +++ b/frontend/apps/reader/modules/readerhyphenation.lua @@ -6,24 +6,12 @@ local _ = require("gettext") local ReaderHyphenation = InputContainer:new{ hyph_menu_title = _("Hyphenation"), hyph_table = nil, - cur_hyph_idx = nil, } -function ReaderHyphenation:_changeSel(k) - if self.cur_hyph_idx then - self.hyph_table[self.cur_hyph_idx].checked = false - end - self.hyph_table[k].checked = true - self.cur_hyph_idx = k -end - function ReaderHyphenation:init() self.hyph_table = {} self.hyph_alg = cre.getSelectedHyphDict() for k,v in ipairs(cre.getHyphDictList()) do - if v == self.hyph_alg then - self.cur_hyph_idx = k - end table.insert(self.hyph_table, { text = v, callback = function() @@ -31,9 +19,11 @@ function ReaderHyphenation:init() UIManager:show(InfoMessage:new{ text = _("Change Hyphenation to ")..v, }) - self:_changeSel(k) self.ui.document:setHyphDictionary(v) self.ui.toc:onUpdateToc() + end, + checked_func = function() + return v == self.hyph_alg end }) end @@ -46,11 +36,6 @@ function ReaderHyphenation:onReadSettings(config) self.ui.document:setHyphDictionary(hyph_alg) end self.hyph_alg = cre.getSelectedHyphDict() - for k,v in ipairs(self.hyph_table) do - if v.text == self.hyph_alg then - self:_changeSel(k) - end - end end function ReaderHyphenation:onSaveSettings()