mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
The "My Clipping" file that storing highlights and notes for Kindle native readers could also be parsed and exported. The parser is implemented in `evernote.koplugin/clip.lua`. Parsed highlights and notes in one book will be packed and rendered into html node with a slt2 template `note.tpl` that complies with evernote markup language(ENML). Finally the evernote client will create or update note entries and push them to Evernote cloud.
114 lines
3.1 KiB
Lua
114 lines
3.1 KiB
Lua
local FrameContainer = require("ui/widget/container/framecontainer")
|
|
local CenterContainer = require("ui/widget/container/centercontainer")
|
|
local VerticalGroup = require("ui/widget/verticalgroup")
|
|
local InputDialog = require("ui/widget/inputdialog")
|
|
local InputText = require("ui/widget/inputtext")
|
|
local UIManager = require("ui/uimanager")
|
|
local Geom = require("ui/geometry")
|
|
local Screen = require("ui/screen")
|
|
local DEBUG = require("dbg")
|
|
local _ = require("gettext")
|
|
|
|
local LoginDialog = InputDialog:extend{
|
|
username = "",
|
|
username_hint = "username",
|
|
password = "",
|
|
password_hint = "password",
|
|
}
|
|
|
|
function LoginDialog:init()
|
|
-- init title and buttons in base class
|
|
InputDialog.init(self)
|
|
self.input_username = InputText:new{
|
|
text = self.username,
|
|
hint = self.username_hint,
|
|
face = self.input_face,
|
|
width = self.width * 0.9,
|
|
focused = true,
|
|
scroll = false,
|
|
parent = self,
|
|
}
|
|
|
|
self.input_password = InputText:new{
|
|
text = self.password,
|
|
hint = self.password_hint,
|
|
face = self.input_face,
|
|
width = self.width * 0.9,
|
|
text_type = "password",
|
|
focused = false,
|
|
scroll = false,
|
|
parent = self,
|
|
}
|
|
|
|
self.dialog_frame = FrameContainer:new{
|
|
radius = 8,
|
|
bordersize = 3,
|
|
padding = 0,
|
|
margin = 0,
|
|
background = 0,
|
|
VerticalGroup:new{
|
|
align = "left",
|
|
self.title,
|
|
self.title_bar,
|
|
-- username input
|
|
CenterContainer:new{
|
|
dimen = Geom:new{
|
|
w = self.title_bar:getSize().w,
|
|
h = self.input_username:getSize().h,
|
|
},
|
|
self.input_username,
|
|
},
|
|
-- password input
|
|
CenterContainer:new{
|
|
dimen = Geom:new{
|
|
w = self.title_bar:getSize().w,
|
|
h = self.input_password:getSize().h,
|
|
},
|
|
self.input_password,
|
|
},
|
|
-- buttons
|
|
CenterContainer:new{
|
|
dimen = Geom:new{
|
|
w = self.title_bar:getSize().w,
|
|
h = self.button_table:getSize().h,
|
|
},
|
|
self.button_table,
|
|
}
|
|
}
|
|
}
|
|
|
|
self.input = self.input_username
|
|
|
|
self[1] = CenterContainer:new{
|
|
dimen = Geom:new{
|
|
w = Screen:getWidth(),
|
|
h = Screen:getHeight() - self.input:getKeyboardDimen().h,
|
|
},
|
|
self.dialog_frame,
|
|
}
|
|
UIManager.repaint_all = true
|
|
UIManager.full_refresh = true
|
|
end
|
|
|
|
function LoginDialog:getCredential()
|
|
local username = self.input_username:getText()
|
|
local password = self.input_password:getText()
|
|
return username, password
|
|
end
|
|
|
|
function LoginDialog:onSwitchFocus(inputbox)
|
|
-- unfocus current inputbox
|
|
self.input:unfocus()
|
|
self.input:onCloseKeyboard()
|
|
|
|
-- focus new inputbox
|
|
self.input = inputbox
|
|
self.input:focus()
|
|
self.input:onShowKeyboard()
|
|
|
|
UIManager:show(self)
|
|
end
|
|
|
|
return LoginDialog
|
|
|