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 ConfirmBox = require("ui/widget/confirmbox")
local Device = require("device")
local Event = require("ui/event")
local Font = require("ui/font")
local Geom = require("ui/geometry")
local GestureRange = require("ui/gesturerange")
local InputContainer = require("ui/widget/container/inputcontainer")
local InputDialog = require("ui/widget/inputdialog")
local Menu = require("ui/widget/menu")
local TextViewer = require("ui/widget/textviewer")
local UIManager = require("ui/uimanager")
local logger = require("logger")
local _ = require("gettext")
local Screen = require("device").screen
local T = require("ffi/util").template
local ReaderBookmark = InputContainer:new{
bm_menu_title = _("Bookmarks"),
@ -186,7 +189,9 @@ function ReaderBookmark:onShowBookmark()
if not self.ui.document.info.has_pages then
page = self.ui.document:getPageFromXPointer(page)
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
local bm_menu = Menu:new{
@ -230,20 +235,40 @@ function ReaderBookmark:onShowBookmark()
buttons_table = {
{
{
text = _("Close"),
text = _("Rename this bookmark"),
callback = function()
bookmark:renameBookmark(item)
UIManager:close(self.textviewer)
end,
},
{
text = _("Remove this bookmark"),
callback = function()
bookmark:removeHightligit(item)
bm_menu:switchItemTable(nil, bookmark.bookmarks, -1)
UIManager:close(self.textviewer)
UIManager:show(ConfirmBox:new{
text = _("Do you want remove this bookmark?"),
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,
},
},
{
{
text = _("Close"),
is_enter_default = true,
callback = function()
UIManager:close(self.textviewer)
end,
},
}
}
}
UIManager:show(self.textviewer)
@ -255,6 +280,10 @@ function ReaderBookmark:onShowBookmark()
end
bm_menu.show_parent = self.bookmark_menu
self.refresh = function()
bm_menu:updateItems()
self:onSaveSettings()
end
UIManager:show(self.bookmark_menu)
return true
@ -364,6 +393,45 @@ function ReaderBookmark:removeBookmark(item)
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)
local index = self:getDogearBookmarkIndex(pn_or_xp)
if index then

Loading…
Cancel
Save