mirror of
https://github.com/koreader/koreader
synced 2024-11-10 01:10:34 +00:00
5c1d5c3314
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
|
|
|