CRe margins: hide bottom menu on change (#5000)

So we can immediately see how's the bottom margin.
This commit is contained in:
poire-z
2019-05-05 10:15:13 +02:00
committed by Frans de Jonge
parent 3009f5ae54
commit 7c53fcd922
5 changed files with 96 additions and 45 deletions

View File

@@ -71,7 +71,7 @@ function ReaderTypeset:onReadSettings(config)
G_reader_settings:readSetting("copt_b_page_margin") or
DCREREADER_CONFIG_B_MARGIN_SIZES_LARGE
self.unscaled_margins = { h_margins[1], t_margin, h_margins[2], b_margin }
self:onSetPageMargins(self.unscaled_margins, true)
self:onSetPageMargins(self.unscaled_margins)
self.sync_t_b_page_margins = config:readSetting("copt_sync_t_b_page_margins") or
G_reader_settings:readSetting("copt_sync_t_b_page_margins") or 0
self.sync_t_b_page_margins = self.sync_t_b_page_margins == 1 and true or false
@@ -349,32 +349,32 @@ function ReaderTypeset:makeDefaultStyleSheet(css, text, touchmenu_instance)
})
end
function ReaderTypeset:onSetPageHorizMargins(h_margins)
function ReaderTypeset:onSetPageHorizMargins(h_margins, refresh_callback)
self.unscaled_margins = { h_margins[1], self.unscaled_margins[2], h_margins[2], self.unscaled_margins[4] }
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins))
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins, refresh_callback))
end
function ReaderTypeset:onSetPageTopMargin(t_margin)
function ReaderTypeset:onSetPageTopMargin(t_margin, refresh_callback)
self.unscaled_margins = { self.unscaled_margins[1], t_margin, self.unscaled_margins[3], self.unscaled_margins[4] }
if self.sync_t_b_page_margins then
self.unscaled_margins[4] = t_margin
-- Let ConfigDialog know so it can update it on screen and have it saved on quit
self.ui.document.configurable.b_page_margin = t_margin
end
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins))
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins, refresh_callback))
end
function ReaderTypeset:onSetPageBottomMargin(b_margin)
function ReaderTypeset:onSetPageBottomMargin(b_margin, refresh_callback)
self.unscaled_margins = { self.unscaled_margins[1], self.unscaled_margins[2], self.unscaled_margins[3], b_margin }
if self.sync_t_b_page_margins then
self.unscaled_margins[2] = b_margin
-- Let ConfigDialog know so it can update it on screen and have it saved on quit
self.ui.document.configurable.t_page_margin = b_margin
end
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins))
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins, refresh_callback))
end
function ReaderTypeset:onSyncPageTopBottomMargins(toggle)
function ReaderTypeset:onSyncPageTopBottomMargins(toggle, refresh_callback)
self.sync_t_b_page_margins = not self.sync_t_b_page_margins
if self.sync_t_b_page_margins then
-- Adjust current top and bottom margins if needed
@@ -389,12 +389,16 @@ function ReaderTypeset:onSyncPageTopBottomMargins(toggle)
self.ui.document.configurable.t_page_margin = mean_margin
self.ui.document.configurable.b_page_margin = mean_margin
self.unscaled_margins = { self.unscaled_margins[1], mean_margin, self.unscaled_margins[3], mean_margin }
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins))
self.ui:handleEvent(Event:new("SetPageMargins", self.unscaled_margins, refresh_callback))
refresh_callback = nil
end
end
if refresh_callback then
refresh_callback()
end
end
function ReaderTypeset:onSetPageMargins(margins, silent)
function ReaderTypeset:onSetPageMargins(margins, refresh_callback)
local left = Screen:scaleBySize(margins[1])
local top = Screen:scaleBySize(margins[2])
local right = Screen:scaleBySize(margins[3])
@@ -406,16 +410,19 @@ function ReaderTypeset:onSetPageMargins(margins, silent)
end
self.ui.document:setPageMargins(left, top, right, bottom)
self.ui:handleEvent(Event:new("UpdatePos"))
if not silent then
if refresh_callback then
-- Show a toast on set, with the unscaled & scaled values
UIManager:show(InfoMessage:new{
text = T(_([[
Margins set to:
horizontal: %1 (%2px)
top: %3 (%4px)
bottom: %5 (%6px)]]),
bottom: %5 (%6px)
Tap to dismiss.]]),
margins[1], left, margins[2], top, margins[4], bottom),
timeout = 4,
dismiss_callback = refresh_callback,
})
end
return true