mirror of
https://github.com/koreader/koreader
synced 2024-10-31 21:20:20 +00:00
850be52177
TouchMenu: added options to menu items with the following defaults: keep_menu_open = false hold_keep_menu_open = true So, default for Tap callback is to close menu, and for Hold callback to keep menu open. In both cases, provide the TouchMenu instance as the 1st argument to the callback functions (instead of a refresh_menu_func I added in #3941) so the callback can do more things, like closing, refreshing, changing menu items text and re-ordering... ReaderZooming: show symbol for default (like it was done for ReaderFont, ReaderHyphenation...) TextEditor plugin: update the previously opened files list in real time, so the menu can be kept open and used as the TextEditor main interface. SSH plugin: keep menu open and update the Start/Stop state in real time ReadTimer plugin: tried to do what feels right (but I don't use it) Also remove forgotten cp in the move/paste file code
223 lines
7.7 KiB
Lua
223 lines
7.7 KiB
Lua
local Screensaver = require("ui/screensaver")
|
|
local _ = require("gettext")
|
|
|
|
local function screensaverType() return G_reader_settings:readSetting("screensaver_type") end
|
|
local function screensaverDelay() return G_reader_settings:readSetting("screensaver_delay") end
|
|
local function lastFile()
|
|
local lfs = require("libs/libkoreader-lfs")
|
|
local last_file = G_reader_settings:readSetting("lastfile")
|
|
if last_file and lfs.attributes(last_file, "mode") == "file" then
|
|
return last_file
|
|
end
|
|
end
|
|
local function whiteBackground() return G_reader_settings:isTrue("screensaver_white_background") end
|
|
local function stretchImages() return G_reader_settings:isTrue("screensaver_stretch_images") end
|
|
|
|
return {
|
|
{
|
|
text = _("Use last book's cover as screensaver"),
|
|
enabled_func = function() return lastFile() ~= nil end,
|
|
checked_func = function()
|
|
if screensaverType() == "cover" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "cover")
|
|
end
|
|
},
|
|
{
|
|
text = _("Use book status as screensaver"),
|
|
enabled_func = function() return lastFile() ~= nil end,
|
|
checked_func = function()
|
|
if screensaverType() == "bookstatus" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "bookstatus")
|
|
end
|
|
},
|
|
{
|
|
text = _("Use random image from folder as screensaver"),
|
|
checked_func = function()
|
|
if screensaverType() == "random_image" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "random_image")
|
|
end
|
|
},
|
|
{
|
|
text = _("Use image as screensaver"),
|
|
checked_func = function()
|
|
if screensaverType() == "image_file" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "image_file")
|
|
end
|
|
},
|
|
{
|
|
text = _("Use reading progress as screensaver"),
|
|
enabled_func = function() return Screensaver.getReaderProgress ~= nil and lastFile() ~= nil end,
|
|
checked_func = function()
|
|
if screensaverType() == "readingprogress" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "readingprogress")
|
|
end
|
|
},
|
|
{
|
|
text = _("Use message as screensaver"),
|
|
checked_func = function()
|
|
if screensaverType() == "message" or screensaverType() == nil then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "message")
|
|
end
|
|
},
|
|
{
|
|
text = _("Leave screen as it is"),
|
|
checked_func = function()
|
|
if screensaverType() == "disable" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_type", "disable")
|
|
end
|
|
},
|
|
{
|
|
text = _("Settings"),
|
|
sub_item_table = {
|
|
{
|
|
text = _("Screensaver folder"),
|
|
keep_menu_open = true,
|
|
callback = function()
|
|
Screensaver:chooseFolder()
|
|
end,
|
|
},
|
|
{
|
|
text = _("Screensaver image"),
|
|
keep_menu_open = true,
|
|
callback = function()
|
|
Screensaver:chooseFile()
|
|
end,
|
|
},
|
|
{
|
|
text = _("Screensaver message"),
|
|
keep_menu_open = true,
|
|
callback = function()
|
|
Screensaver:setMessage()
|
|
end,
|
|
},
|
|
{
|
|
text = _("White background behind message and images"),
|
|
checked_func = whiteBackground,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_white_background", not whiteBackground())
|
|
end,
|
|
},
|
|
{
|
|
text = _("Stretch covers and images to fit screen"),
|
|
checked_func = stretchImages,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_stretch_images", not stretchImages())
|
|
end,
|
|
separator = true,
|
|
},
|
|
{
|
|
text = _("Delay when exit from screensaver"),
|
|
sub_item_table = {
|
|
{
|
|
text = _("Disable"),
|
|
checked_func = function()
|
|
if screensaverDelay() == nil or screensaverDelay() == "disable" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_delay", "disable")
|
|
end
|
|
},
|
|
{
|
|
text = _("1 second"),
|
|
checked_func = function()
|
|
if screensaverDelay() == "1" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_delay", "1")
|
|
end
|
|
},
|
|
{
|
|
text = _("3 seconds"),
|
|
checked_func = function()
|
|
if screensaverDelay() == "3" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_delay", "3")
|
|
end
|
|
},
|
|
{
|
|
text = _("5 seconds"),
|
|
checked_func = function()
|
|
if screensaverDelay() == "5" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_delay", "5")
|
|
end
|
|
},
|
|
{
|
|
text = _("Tap to exit screensaver"),
|
|
checked_func = function()
|
|
if screensaverDelay() == "tap" then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end,
|
|
callback = function()
|
|
G_reader_settings:saveSetting("screensaver_delay", "tap")
|
|
end
|
|
},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|