Rename bookmark (#3275)

pull/3279/head
Robert 7 years ago committed by Frans de Jonge
parent e350e0e35a
commit a2ea46bfdc

@ -1,16 +1,19 @@
local CenterContainer = require("ui/widget/container/centercontainer") local CenterContainer = require("ui/widget/container/centercontainer")
local ConfirmBox = require("ui/widget/confirmbox")
local Device = require("device") local Device = require("device")
local Event = require("ui/event") local Event = require("ui/event")
local Font = require("ui/font") local Font = require("ui/font")
local Geom = require("ui/geometry") local Geom = require("ui/geometry")
local GestureRange = require("ui/gesturerange") local GestureRange = require("ui/gesturerange")
local InputContainer = require("ui/widget/container/inputcontainer") local InputContainer = require("ui/widget/container/inputcontainer")
local InputDialog = require("ui/widget/inputdialog")
local Menu = require("ui/widget/menu") local Menu = require("ui/widget/menu")
local TextViewer = require("ui/widget/textviewer") local TextViewer = require("ui/widget/textviewer")
local UIManager = require("ui/uimanager") local UIManager = require("ui/uimanager")
local logger = require("logger") local logger = require("logger")
local _ = require("gettext") local _ = require("gettext")
local Screen = require("device").screen local Screen = require("device").screen
local T = require("ffi/util").template
local ReaderBookmark = InputContainer:new{ local ReaderBookmark = InputContainer:new{
bm_menu_title = _("Bookmarks"), bm_menu_title = _("Bookmarks"),
@ -186,7 +189,9 @@ function ReaderBookmark:onShowBookmark()
if not self.ui.document.info.has_pages then if not self.ui.document.info.has_pages then
page = self.ui.document:getPageFromXPointer(page) page = self.ui.document:getPageFromXPointer(page)
end end
v.text = _("Page") .. " " .. page .. " " .. v.notes .. " @ " .. v.datetime if v.text == nil or v.text == "" then
v.text = T(_("Page %1 %2 @ %3"), page, v.notes, v.datetime)
end
end end
local bm_menu = Menu:new{ local bm_menu = Menu:new{
@ -230,20 +235,40 @@ function ReaderBookmark:onShowBookmark()
buttons_table = { buttons_table = {
{ {
{ {
text = _("Close"), text = _("Rename this bookmark"),
callback = function() callback = function()
bookmark:renameBookmark(item)
UIManager:close(self.textviewer) UIManager:close(self.textviewer)
end, end,
}, },
{ {
text = _("Remove this bookmark"), text = _("Remove this bookmark"),
callback = function() callback = function()
bookmark:removeHightligit(item) UIManager:show(ConfirmBox:new{
bm_menu:switchItemTable(nil, bookmark.bookmarks, -1) text = _("Do you want remove this bookmark?"),
UIManager:close(self.textviewer) cancel_text = _("Cancel"),
cancel_callback = function()
return
end,
ok_text = _("Remove"),
ok_callback = function()
bookmark:removeHightligit(item)
bm_menu:switchItemTable(nil, bookmark.bookmarks, -1)
UIManager:close(self.textviewer)
end,
})
end, end,
}, },
}, },
{
{
text = _("Close"),
is_enter_default = true,
callback = function()
UIManager:close(self.textviewer)
end,
},
}
} }
} }
UIManager:show(self.textviewer) UIManager:show(self.textviewer)
@ -255,6 +280,10 @@ function ReaderBookmark:onShowBookmark()
end end
bm_menu.show_parent = self.bookmark_menu bm_menu.show_parent = self.bookmark_menu
self.refresh = function()
bm_menu:updateItems()
self:onSaveSettings()
end
UIManager:show(self.bookmark_menu) UIManager:show(self.bookmark_menu)
return true return true
@ -364,6 +393,45 @@ function ReaderBookmark:removeBookmark(item)
end end
end end
function ReaderBookmark:renameBookmark(item)
self.input = InputDialog:new{
title = _("Rename bookmark"),
input = item.text,
input_type = "text",
buttons = {
{
{
text = _("Cancel"),
is_enter_default = true,
callback = function()
UIManager:close(self.input)
end,
},
{
text = _("Rename"),
callback = function()
local value = self.input:getInputValue()
if value ~= "" then
for i=1, #self.bookmarks do
if item.text == self.bookmarks[i].text and item.pos0 == self.bookmarks[i].pos0 and
item.pos1 == self.bookmarks[i].pos1 and item.page == self.bookmarks[i].page then
self.bookmarks[i].text = value
UIManager:close(self.input)
self.refresh()
break
end
end
end
UIManager:close(self.input)
end,
},
}
},
}
self.input:onShowKeyboard()
UIManager:show(self.input)
end
function ReaderBookmark:toggleBookmark(pn_or_xp) function ReaderBookmark:toggleBookmark(pn_or_xp)
local index = self:getDogearBookmarkIndex(pn_or_xp) local index = self:getDogearBookmarkIndex(pn_or_xp)
if index then if index then

Loading…
Cancel
Save