Save hyphenation algorithm as cre document setting

and add hyphenation restore to floating punctuation toggle workaround
pull/488/head
Paulo Matias 10 years ago
parent 77191a3ac1
commit 706526738b

@ -9,6 +9,14 @@ local ReaderHyphenation = InputContainer:new{
cur_hyph_idx = nil,
}
function ReaderHyphenation:_changeSel(k)
if self.cur_hyph_idx then
self.hyph_table[self.cur_hyph_idx].selected = false
end
self.hyph_table[k].selected = true
self.cur_hyph_idx = k
end
function ReaderHyphenation:init()
self.hyph_table = {}
self.hyph_alg = cre.getSelectedHyphDict()
@ -19,13 +27,11 @@ function ReaderHyphenation:init()
table.insert(self.hyph_table, {
text = v,
callback = function()
self.cur_hyph_idx = k
self.hyph_alg = v
UIManager:show(InfoMessage:new{
text = _("Change Hyphenation to ")..v,
})
self.hyph_table[k].selected = true
self.hyph_table[self.cur_hyph_idx].selected = false
self:_changeSel(k)
cre.setHyphDictionary(v)
end
})
@ -33,6 +39,23 @@ function ReaderHyphenation:init()
self.ui.menu:registerToMainMenu(self)
end
function ReaderHyphenation:onReadSettings(config)
local hyph_alg = config:readSetting("hyph_alg")
if hyph_alg then
cre.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()
self.ui.doc_settings:saveSetting("hyph_alg", self.hyph_alg)
end
function ReaderHyphenation:addToMainMenu(tab_item_table)
-- insert table to main reader menu
table.insert(tab_item_table.typeset, {

@ -121,6 +121,7 @@ function ReaderTypeset:toggleFloatingPunctuation()
-- workaround: set again things unset by crengine after changing floating punctuation
self.ui.document:setFontFace(self.ui.font.font_face or
self.ui.doc_settings:readSetting("font_face"))
cre.setHyphDictionary(self.ui.hyphenation.hyph_alg)
self:_setPageMargins()
end

@ -228,11 +228,13 @@ function ReaderUI:init()
ui = self
}
table.insert(self, self.font) -- hold reference to font menu
table.insert(self, ReaderHyphenation:new{
-- hyphenation menu
self.hyphenation = ReaderHyphenation:new{
dialog = self.dialog,
view = self[1],
ui = self
})
}
table.insert(self, self.hyphenation) -- hold reference to hyphenation menu
-- rolling controller
table.insert(self, ReaderRolling:new{
dialog = self.dialog,

Loading…
Cancel
Save