screenshot to PNG files by default

pull/1082/head
chrox 10 years ago
parent 8babbf4896
commit ae1dd3b380

@ -7,7 +7,9 @@ local InfoMessage = require("ui/widget/infomessage")
local _ = require("gettext")
local DEBUG = require("dbg")
local ReaderScreenshot = InputContainer:new{}
local ReaderScreenshot = InputContainer:new{
datetime_name = "screenshots/Screenshot_%Y-%b-%d_%Hh%M.png",
}
function ReaderScreenshot:init()
local diagonal = math.sqrt(
@ -32,16 +34,13 @@ function ReaderScreenshot:init()
}
end
function ReaderScreenshot:onScreenshot()
if os.execute("screenshot") ~= 0 then
local screenshot_name = os.date("screenshots/Screenshot_%Y-%B-%d_%Hh%M.pam")
UIManager:show(InfoMessage:new{
text = _("Writing screen to ")..screenshot_name,
timeout = 2,
})
Screen.bb:writePAM(screenshot_name)
DEBUG(screenshot_name)
end
function ReaderScreenshot:onScreenshot(filename)
local screenshot_name = filename or os.date(self.datetime_name)
UIManager:show(InfoMessage:new{
text = _("Writing screen to ")..screenshot_name,
timeout = 2,
})
Screen:shot(screenshot_name)
UIManager.full_refresh = true
return true
end

@ -174,10 +174,14 @@ function Screen:restoreFromSavedBB()
end
end
function Screen:shot(filename)
DEBUG("write PNG file", filename)
self.bb:writePNG(filename)
end
function Screen:close()
DEBUG("close screen framebuffer")
self.fb:close()
end
return Screen

@ -0,0 +1,13 @@
require("commonrequire")
local FileManager = require("apps/filemanager/filemanager")
local UIManager = require("ui/uimanager")
local Screen = require("device").screen
local DEBUG = require("dbg")
describe("FileManager module", function()
it("should show file manager", function()
FileManager:showFiles("../../test")
UIManager:scheduleIn(1, function() UIManager:quit() end)
UIManager:run()
end)
end)

@ -0,0 +1,36 @@
require("commonrequire")
local DocumentRegistry = require("document/documentregistry")
local ReaderUI = require("apps/reader/readerui")
local lfs = require("libs/libkoreader-lfs")
local UIManager = require("ui/uimanager")
local Screen = require("device").screen
local Event = require("ui/event")
local DEBUG = require("dbg")
describe("ReaderScreenshot module", function()
local sample_epub = "spec/front/unit/data/leaves.epub"
local readerui
setup(function()
readerui = ReaderUI:new{
document = DocumentRegistry:openDocument(sample_epub),
}
end)
it("should get screenshot in portrait", function()
local name = "screenshots/reader_screenshot_portrait.png"
readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
UIManager:show(readerui)
UIManager:scheduleIn(1, function() UIManager:close(readerui) end)
UIManager:run()
readerui.screenshot:onScreenshot(name)
assert.truthy(lfs.attributes(name, "mode"))
end)
it("should get screenshot in landscape", function()
local name = "screenshots/reader_screenshot_landscape.png"
readerui:handleEvent(Event:new("ChangeScreenMode", "landscape"))
UIManager:show(readerui)
UIManager:scheduleIn(2, function() UIManager:close(readerui) end)
UIManager:run()
readerui.screenshot:onScreenshot(name)
assert.truthy(lfs.attributes(name, "mode"))
end)
end)

@ -2,6 +2,7 @@ require("commonrequire")
local DocumentRegistry = require("document/documentregistry")
local ReaderUI = require("apps/reader/readerui")
local DocSettings = require("docsettings")
local UIManager = require("ui/uimanager")
local DEBUG = require("dbg")
describe("Readerui module", function()
@ -21,6 +22,11 @@ describe("Readerui module", function()
assert.are.same(doc_settings.data.last_xpointer,
readerui.doc_settings.data.last_xpointer)
end)
it("should show reader", function()
UIManager:show(readerui)
UIManager:scheduleIn(1, function() UIManager:close(readerui) end)
UIManager:run()
end)
it("should close document", function()
readerui:closeDocument()
assert(readerui.document == nil)

Loading…
Cancel
Save