Merge: app.nit: easier root window selection and other misc improvements
authorJean Privat <jean@pryen.org>
Mon, 18 Sep 2017 15:19:48 +0000 (11:19 -0400)
committerJean Privat <jean@pryen.org>
Mon, 18 Sep 2017 15:19:48 +0000 (11:19 -0400)
commit932d148fce5475d2d172d3470747e7f70049dbad
treef5dc8be1b152cfd2456c2584b9792bf28d828394
parentce654f80f1c3397c7742210623c3da89bfb5bab7
parent52c74d6ab345bc2e7d1879e1d45e6c94a22d7383
Merge: app.nit: easier root window selection and other misc improvements

Intro the hook `root_window` for clients to set the desired root (or home) window. It is much shorter than the previous redef of `on_create`. Plus, in very simple apps, the client can simple redef `Window` instead of subclassing it.

Refactor `data_store` structure, replacing the interface and subclasses by refinements of a single class. It follows more closely the strategy used by the UI API while not changing anything to the `data_store` API. The data store now drops potentially partially deserialized objects to avoid hard to report crash at runtime, this could be improved upon in the future as the current implementation is not ideal.

Otherwise, this PR brings general improvements to the framework influenced by the creation of [paninit.com](http://paninit.com/): revamp the documentation, add unit tests, fix the scientific calculator icon and add an option to report errors in `hightlightcode`.

Pull-Request: #2547
Reviewed-by: Jean Privat <jean@pryen.org>