mirror of https://github.com/koreader/koreader
master
v2024.07
v2024.04
v2024.03.1
v2024.03
v2024.01
v2023.10
v2023.08
v2023.06.1
v2023.06
v2023.05.1
v2023.05
v2023.04
v2023.03
v2023.01
v2022.11
v2022.10
v2022.08
v2022.07
v2022.06
v2022.05.1
v2022.05
v2022.03.1
v2022.03
v2022.02
v2022.01
v2021.12.1
v2021.12
v2021.11
v2021.10.1
v2021.10
v2021.09
v2021.08
v2021.07
v2021.06
v2021.05
v2021.04
v2021.03
v2021.02
v2021.01
v2021.01.1
v2020.12
v2020.11
v2020.10.1
v2020.10
v2020.09
v2020.08.1
v2020.08
v2020.07.1
v2020.07
v2020.06
v2020.05
v2020.04.1
v2020.04
v2020.03.2
v2020.03.1
v2020.03
v2020.02
v2020.01
v2019.12
v2019.11
v2019.10
v2019.09.3
v2019.09.2
v2019.09.1
v2019.09
v2019.08
v2019.07
v2019.06
v2019.05
v2019.04
v2019.03.1
v2019.03
v2019.02
v2019.01.1
v2019.01
v2018.12
v2018.11.1
v2018.11
v2015.11
v2015.11-stable
v2014.11
v2014.04
v2013.03
v2013.1
v2012.11
v2012.10
v2012.09
v2012.04.2
v2012.04.1
v2012.04
v2012.03
koreader-nightly-20150516
v2012.05
v2014.03.11-nightly
v2014.03.13-nightly
v2014.03.18-nightly
v2014.03.24-nightly
v2014.03.27-nightly
v2014.03.31-nightly
v2014.04-stable
v2014.04.03-nightly
v2014.04.05-nightly
v2014.04.08-nightly
v2014.04.10-nightly
v2014.04.18-nightly
v2014.04.24-nightly
v2014.04.25-nightly
v2014.05.02-nightly
v2014.05.06-nightly
v2014.05.09-nightly
v2014.05.16-nightly
v2014.05.17-nightly
v2014.05.18-nightly
v2014.05.19-nightly
v2014.05.20-nightly
v2014.05.24-nightly
v2014.06.01-nightly
v2014.06.02-nightly
v2014.06.03-nightly
v2014.06.04-nightly
v2014.06.05-nightly
v2014.06.06-nightly
v2014.06.08-nightly
v2014.06.09-nightly
v2014.06.11-nightly
v2014.06.12-nightly
v2014.06.18-nightly
v2014.06.23-nightly
v2014.06.27-nightly
v2014.06.29-nightly
v2014.07.02-nightly
v2014.07.03-nightly
v2014.07.04-nightly
v2014.07.14-nightly
v2014.07.15-nightly
v2014.07.16-nightly
v2014.07.17-nightly
v2014.07.19-nightly
v2014.07.20-nightly
v2014.07.24-nightly
v2014.07.27-nightly
v2014.07.28-nightly
v2014.08.02-nightly
v2014.08.04-nightly
v2014.08.06-nightly
v2014.08.07-nightly
v2014.08.11-nightly
v2014.08.12-nightly
v2014.08.13-nightly
v2014.08.20-nightly
v2014.08.21-nightly
v2014.08.23-nightly
v2014.08.24-nightly
v2014.08.27-nightly
v2014.08.28-nightly
v2014.08.29-nightly
v2014.09.11-nightly
v2014.09.14-nightly
v2014.09.29-nightly
v2014.10.03-nightly
v2014.10.05-nightly
v2014.10.08-nightly
v2014.10.14-nightly
v2014.10.15-nightly
v2014.10.20-nightly
v2014.10.22-nightly
v2014.10.24-nightly
v2014.10.28-nightly
v2014.10.29-nightly
v2014.10.30-nightly
v2014.10.31-nightly
v2014.11-stable
v2014.11.07-nightly
v2014.11.10-nightly
v2014.11.11-nightly
v2014.11.12-nightly
v2014.11.13-nightly
v2014.11.14-nightly
v2014.11.17-nightly
v2014.11.18-nightly
v2014.11.21-nightly
v2014.11.24-nightly
v2014.11.25-nightly
v2014.11.26-nightly
v2014.11.27-nightly
v2014.11.28-nightly
v2014.11.29-nightly
v2014.12.01-nightly
v2014.12.03-nightly
v2014.12.06-nightly
v2014.12.07-nightly
v2014.12.22-nightly
v2014.12.29-nightly
v2015.01.15-preview
v2015.01.19-nightly
v2015.01.28-pb-test
v2015.01.31-nightly
v2015.02.02-nightly
v2015.02.07-nightly
v2015.02.09-nightly
v2015.02.12-nightly
v2015.03.06-nightly
v2015.03.16-nightly
v2015.03.17-nightly
v2015.03.18-nightly
v2015.03.20-nightly
v2015.03.22-nightly
v2015.03.24-nightly
v2015.04.01-nightly
v2015.04.07-nightly
v2015.04.14-nightly
v2015.04.15-nightly
v2015.04.16-nightly
v2015.04.24-nightly
v2015.04.27-nightly
v2015.04.30-nightly
v2015.05.17-nightly
v2015.06.04-nightly
v2015.06.08-nightly
v2015.06.16-nightly
v2015.06.25-nightly
v2015.07.17-nightly
v2015.08.08-nightly
v2015.09.11-nightly
v2015.09.17-nightly
v2015.10.06-nightly
v2015.10.08-nightly
v2015.10.24-nightly
v2015.10.27-nightly
v2015.12.13-nightly
v2016.02.14-nightly
v2016.02.16-nightly
v2016.02.27-nightly
v2016.03.15-nightly
v2016.03.23-nightly
v2016.04.13-nightly
v2016.04.27-nightly
v2016.05.13-nightly
v2016.05.29-nightly
v2016.06.02-nightly
v2016.06.20-nightly
v2016.06.24-nightly
v2016.07.02-nightly
v2016.07.14-nightly
v2016.08.14-nightly
v2016.08.23-nightly
v2016.11.20-nightly
v2017-10-23-nightly
v2017.02.09-nightly
v2017.03.08-nightly
v2017.04.30-nightly
v2017.06.12-nightly
v2017.08.21-nightly
v2017.10.04-nightly
v2018.01.10-nightly
v2018.02.12-nightly
v2018.03.14-beta
v2018.04.10-beta
v2018.04.12-beta
v2018.06.02-beta
v2018.07.29-beta
v2018.10.07-beta
${ noResults }
9 Commits (53c0a65a5bdaf19be6eeabeefe7d79c193d6c33c)
Author | SHA1 | Message | Date |
---|---|---|---|
NiLuJe | 1e24a1c7a3 |
ReaderUI: Properly neuter gesture handling from InputContainer modules
None[1] of them actually rely on their own onGesture handler, they all register their own stuff to ReaderUI's. Hotfix #9710 revealed that the way this was handled didn't exactly work as expected ;). The only thing that consumes ges_events is InputContainer's onGesture method. All these modules *extend* InputContainer, but none of them *implement* a custom onGesture, so self.onGesture = nil was just a NOP, they always access InputContainer's method via inheritance. If we actively want to neuter it, we *have* to implement it in that module (with a NOP). [1] The exception being ReaderZooming, but that only when in flip mode. |
2 years ago |
NiLuJe | b523c2e8b9 |
InputContainer: Fall cleanup ;).
Get rid of the doc & seqtext fields, as they are not actually used (nor are they particularly useful, the event handler's name should be pretty self-explanatory). Also, tweak the key_events documentation to highlight the quirks of the API, especially as far as array nesting is involved... Random drive-by cleanup of the declarations of key_events & ges_events to re-use the existing instance object (now that we know they're sane ;p) for tables with a single member (less GC pressure). |
2 years ago |
zwim |
4969811c08
|
Optimization: Use constant folding for divisions not a power of two (#9609) | 2 years ago |
NiLuJe |
fadee1f5dc
|
Clarify our OOP semantics across the codebase (#9586)
Basically: * Use `extend` for class definitions * Use `new` for object instantiations That includes some minor code cleanups along the way: * Updated `Widget`'s docs to make the semantics clearer. * Removed `should_restrict_JIT` (it's been dead code since https://github.com/koreader/android-luajit-launcher/pull/283) * Minor refactoring of LuaSettings/LuaData/LuaDefaults/DocSettings to behave (mostly, they are instantiated via `open` instead of `new`) like everything else and handle inheritance properly (i.e., DocSettings is now a proper LuaSettings subclass). * Default to `WidgetContainer` instead of `InputContainer` for stuff that doesn't actually setup key/gesture events. * Ditto for explicit `*Listener` only classes, make sure they're based on `EventListener` instead of something uselessly fancier. * Unless absolutely necessary, do not store references in class objects, ever; only values. Instead, always store references in instances, to avoid both sneaky inheritance issues, and sneaky GC pinning of stale references. * ReaderUI: Fix one such issue with its `active_widgets` array, with critical implications, as it essentially pinned *all* of ReaderUI's modules, including their reference to the `Document` instance (i.e., that was a big-ass leak). * Terminal: Make sure the shell is killed on plugin teardown. * InputText: Fix Home/End/Del physical keys to behave sensibly. * InputContainer/WidgetContainer: If necessary, compute self.dimen at paintTo time (previously, only InputContainers did, which might have had something to do with random widgets unconcerned about input using it as a baseclass instead of WidgetContainer...). * OverlapGroup: Compute self.dimen at *init* time, because for some reason it needs to do that, but do it directly in OverlapGroup instead of going through a weird WidgetContainer method that it was the sole user of. * ReaderCropping: Under no circumstances should a Document instance member (here, self.bbox) risk being `nil`ed! * Kobo: Minor code cleanups. |
2 years ago |
Qingping Hou | f95ad00b9e | feat: add logger module & rewrite kobo suspend script in lua | 8 years ago |
Qingping Hou | 11ee8d6fcc | refactor: use new KeyValuePage widget for displaying statistics | 9 years ago |
Hans-Werner Hilse | 3066c86e38 |
Refactoring hardware abstraction
This is a major overhaul of the hardware abstraction layer. A few notes: General platform distinction happens in frontend/device.lua which will delegate everything else to frontend/device/<platform_name>/device.lua which should extend frontend/device/generic/device.lua Screen handling is implemented in frontend/device/screen.lua which includes the *functionality* to support device specifics. Actually setting up the device specific functionality, however, is done in the device specific setup code in the relevant device.lua file. The same goes for input handling. |
10 years ago |
chrox | 857bd6fcc8 |
strings not shown on GUI will not be translated
This may encourage users in transifex to join Koreader project. |
10 years ago |
Qingping Hou | 4b357c1466 |
move reader code into frontend/apps/reader
it makes more sense to completely separate the UI framework and application code also move frontend/ui/configurable.lua to frontend/configurable.lua |
11 years ago |