2016-02-18 05:05:07 +00:00
|
|
|
Hacking
|
|
|
|
=======
|
|
|
|
|
2017-04-08 10:44:59 +00:00
|
|
|
## How to Debug
|
|
|
|
|
|
|
|
We have a helper function called `logger.dbg` to help with debugging. You can use that function to print string and tables:
|
|
|
|
|
|
|
|
```lua
|
|
|
|
local logger = require("logger")
|
|
|
|
a = {"1", "2", "3"}
|
|
|
|
logger.dbg("table a: ", a)
|
|
|
|
```
|
|
|
|
|
|
|
|
Anything printed by `logger.dbg` starts with `DEBUG`.
|
|
|
|
|
|
|
|
```
|
|
|
|
04/06/17-21:44:53 DEBUG foo
|
|
|
|
```
|
|
|
|
|
|
|
|
## Bug hunting in kpv
|
|
|
|
|
2017-04-12 16:55:22 +00:00
|
|
|
A real example of bug hunting in KPV's cache system: <https://github.com/koreader/kindlepdfviewer/pull/475>
|
2017-04-08 10:44:59 +00:00
|
|
|
|
|
|
|
|
2016-12-11 03:08:31 +00:00
|
|
|
## Developing UI widgets ##
|
2016-02-18 05:05:07 +00:00
|
|
|
|
2016-11-25 14:57:02 +00:00
|
|
|
`tools/wbuilder.lua` is your friend, if you need to create new UI widgets. It
|
2016-02-18 05:05:07 +00:00
|
|
|
sets up a minimal environment to bootstrap KOReader's UI framework to avoid
|
|
|
|
starting the whole reader. This gives you quick feedback loop while iterating
|
2016-02-29 00:53:47 +00:00
|
|
|
through your widget changes. It's also a handy tool for debugging widget
|
|
|
|
issues.
|
2016-02-18 05:05:07 +00:00
|
|
|
|
|
|
|
To get a taste of how it works, try running this command at the root of
|
|
|
|
KOReader's source tree:
|
|
|
|
|
|
|
|
```
|
|
|
|
./kodev wbuilder
|
|
|
|
```
|
|
|
|
|
|
|
|
It will spawn up an emulator window with a grid and simple timer widget for
|
|
|
|
demonstration.
|
|
|
|
|
2016-11-25 14:57:02 +00:00
|
|
|
You can add more `UIManager:show` call at the end of `tools/wbuilder.lua` to
|
2016-02-29 00:53:47 +00:00
|
|
|
test your new widgets.
|