From 52c3594f6bd24dded17cb525bd5574f82840da6b Mon Sep 17 00:00:00 2001 From: Markismus Date: Tue, 22 Apr 2014 16:40:55 +0200 Subject: [PATCH] wtest crashed: ./luajit: ./frontend/document/credocument.lua:21: attempt to index global 'G_reader_settings' (a nil value) A little copy-paste from reader.lua has it working again. --- wtest.lua | 16 ++- wtest.lua.bak | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 297 insertions(+), 3 deletions(-) create mode 100644 wtest.lua.bak diff --git a/wtest.lua b/wtest.lua index 306e20582..a4f236e84 100755 --- a/wtest.lua +++ b/wtest.lua @@ -3,6 +3,17 @@ require "defaults" print(package.path) package.path = "./frontend/?.lua;./?.lua" +local DocSettings = require("docsettings") +local _ = require("gettext") + +-- read settings and check for language override +-- has to be done before requiring other files because +-- they might call gettext on load +G_reader_settings = DocSettings:open(".reader") +local lang_locale = G_reader_settings:readSetting("language") +if lang_locale then + _.changeLang(lang_locale) +end local UIManager = require("ui/uimanager") local RenderText = require("ui/rendertext") local Font = require("ui/font") @@ -17,12 +28,11 @@ local ConfirmBox = require("ui/widget/confirmbox") local TouchMenu = require("ui/widget/touchmenu") local InputText = require("ui/widget/inputtext") local DocumentRegistry = require("document/documentregistry") -local ReaderUI = require("ui/readerui") +local ReaderUI = require("apps/reader/readerui") local Dbg = require("dbg") local Device = require("ui/device") local Screen = require("ui/screen") - ----------------------------------------------------- -- widget that paints the grid on the background ----------------------------------------------------- @@ -281,4 +291,4 @@ UIManager:show(TestGrid) --UIManager:show(keyboard) UIManager:show(inputtext) -UIManager:run() +UIManager:run() \ No newline at end of file diff --git a/wtest.lua.bak b/wtest.lua.bak new file mode 100644 index 000000000..306e20582 --- /dev/null +++ b/wtest.lua.bak @@ -0,0 +1,284 @@ +#!./koreader-base + +require "defaults" +print(package.path) +package.path = "./frontend/?.lua;./?.lua" +local UIManager = require("ui/uimanager") +local RenderText = require("ui/rendertext") +local Font = require("ui/font") +local Geom = require("ui/geometry") +local Menu = require("ui/widget/menu") +local Widget = require("ui/widget/widget") +local InfoMessage = require("ui/widget/infomessage") +local InputContainer = require("ui/widget/container/inputcontainer") +local CenterContainer = require("ui/widget/container/centercontainer") +local FrameContainer = require("ui/widget/container/framecontainer") +local ConfirmBox = require("ui/widget/confirmbox") +local TouchMenu = require("ui/widget/touchmenu") +local InputText = require("ui/widget/inputtext") +local DocumentRegistry = require("document/documentregistry") +local ReaderUI = require("ui/readerui") +local Dbg = require("dbg") +local Device = require("ui/device") +local Screen = require("ui/screen") + + +----------------------------------------------------- +-- widget that paints the grid on the background +----------------------------------------------------- +TestGrid = Widget:new{} + +function TestGrid:paintTo(bb) + v_line = math.floor(bb:getWidth() / 50) + h_line = math.floor(bb:getHeight() / 50) + for i=1,h_line do + y_num = i*50 + RenderText:renderUtf8Text(bb, 0, y_num+10, Font:getFace("ffont", 12), y_num, true) + bb:paintRect(0, y_num, bb:getWidth(), 1, 10) + end + for i=1,v_line do + x_num = i*50 + RenderText:renderUtf8Text(bb, x_num, 10, Font:getFace("ffont", 12), x_num, true) + bb:paintRect(x_num, 0, 1, bb:getHeight(), 10) + end +end + +----------------------------------------------------- +-- we create a widget that paints a background: +----------------------------------------------------- +Background = InputContainer:new{ + is_always_active = true, -- receive events when other dialogs are active + key_events = { + OpenDialog = { { "Press" } }, + OpenConfirmBox = { { "Del" } }, + QuitApplication = { { {"Home","Back"} } } + }, + -- contains a gray rectangular desktop + FrameContainer:new{ + background = 3, + bordersize = 0, + dimen = Screen:getSize(), + Widget:new{ + dimen = { + w = Screen:getWidth(), + h = Screen:getHeight(), + } + }, + } +} + +function Background:onOpenDialog() + UIManager:show(InfoMessage:new{ + text = "Example message.", + timeout = 10 + }) +end + +function Background:onOpenConfirmBox() + UIManager:show(ConfirmBox:new{ + text = "Please confirm delete" + }) +end + +function Background:onInputError() + UIManager:quit() +end + +function Background:onQuitApplication() + UIManager:quit() +end + + + +----------------------------------------------------- +-- example widget: a clock +----------------------------------------------------- +Clock = FrameContainer:new{ + background = 0, + bordersize = 1, + margin = 0, + padding = 1 +} + +function Clock:schedFunc() + self[1]:free() + self[1] = self:getTextWidget() + UIManager:setDirty(self) + -- reschedule + -- TODO: wait until next real second shift + UIManager:scheduleIn(1, function() self:schedFunc() end) +end + +function Clock:onShow() + self[1] = self:getTextWidget() + self:schedFunc() +end + +function Clock:getTextWidget() + return CenterContainer:new{ + dimen = { w = 300, h = 25 }, + TextWidget:new{ + text = os.date("%H:%M:%S"), + face = Font:getFace("cfont", 12) + } + } +end + +----------------------------------------------------- +-- a confirmbox box widget +----------------------------------------------------- +Quiz = ConfirmBox:new{ + text = "Tell me the truth, isn't it COOL?!", + width = 300, + ok_text = "Yes, of course.", + cancel_text = "No, it's ugly.", + cancel_callback = function() + UIManager:show(InfoMessage:new{ + text="You liar!", + }) + end, +} + +----------------------------------------------------- +-- a menu widget +----------------------------------------------------- +menu_items = { + {text = "item1"}, + {text = "item2"}, + {text = "This is a very very log item whose length should exceed the width of the menu."}, + {text = "item3"}, + {text = "item4"}, + {text = "item5"}, + {text = "item6"}, + {text = "item7"}, + {text = "item8"}, + {text = "item9"}, + {text = "item10"}, + {text = "item11"}, + {text = "item12"}, + {text = "item13"}, + {text = "item14"}, + {text = "item15"}, + {text = "item16"}, + {text = "item17"}, +} +M = Menu:new{ + title = "Test Menu", + item_table = menu_items, + width = 500, + height = 600, +} + + +----------------------------------------------------- +-- a reader view widget +----------------------------------------------------- +readerwindow = CenterContainer:new{ + dimen = Screen:getSize(), + FrameContainer:new{ + background = 0 + } +} +reader = ReaderUI:new{ + dialog = readerwindow, + dimen = Geom:new{ w = Screen:getWidth() - 100, h = Screen:getHeight() - 100 }, + document = DocumentRegistry:openDocument("test/2col.pdf") + --document = DocumentRegistry:openDocument("test/djvu3spec.djvu") + --document = DocumentRegistry:openDocument("./README.TXT") +} +readerwindow[1][1] = reader + + +touch_menu = TouchMenu:new{ + title = "Document menu", + width = Screen:getWidth(), + tab_item_table = { + { + icon = "resources/icons/appbar.pokeball.png", + { + text = "item1", + callback = function() + end, + }, + { + text = "item2", + callback = function() + end, + }, + { + text = "item3", + callback = function() + end, + }, + { + text = "item4", + callback = function() + end, + }, + { + text = "item5", + callback = function() + end, + }, + { + text = "item6", + callback = function() + end, + }, + { + text = "item7", + callback = function() + end, + }, + { + text = "item8", + callback = function() + end, + }, + { + text = "item9", + callback = function() + end, + }, + }, + { + icon = "resources/icons/appbar.page.corner.bookmark.png", + { + text = "item10", + callback = function() + end, + }, + { + text = "item11", + callback = function() + end, + }, + }, + { + icon = "resources/icons/appbar.home.png", + callback = function() + DEBUG("hello world!") + end + } + }, +} + +inputtext = InputText:new{ + width = 400, + height = 300, +} + +----------------------------------------------------------------------- +-- you may want to uncomment following show calls to see the changes +----------------------------------------------------------------------- +UIManager:show(Background:new()) +UIManager:show(TestGrid) +--UIManager:show(Clock:new()) +--UIManager:show(M) +--UIManager:show(Quiz) +--UIManager:show(readerwindow) +--UIManager:show(touch_menu) +--UIManager:show(keyboard) +UIManager:show(inputtext) + +UIManager:run()