Possible things to do in Devhelp
================================

Normally all the codebase is in a good state, except DhAssistant because I
don't use it (and I think it's sometimes broken).

Some stuff that can be done:

Improve DhBookList API
----------------------

Make it easier to create a custom DhBookList. Maybe expose publicly
DhBookListSimple and be able to subclass it.

Have man-pages for the lib C
----------------------------

https://bugzilla.gnome.org/show_bug.cgi?id=616509#c6

Create a software product line
------------------------------

By moving almost all the code to the libdevhelp (so the software product line
is implemented by developing a library, using classic OOP design patterns).

Same idea as Tepl, but applied to a smaller codebase. See:
https://developer.gnome.org/tepl/unstable/intro.html
https://www.amazon.com/Feature-Oriented-Software-Product-Lines-Implementation/dp/3642375200/

In Devhelp it's almost done. What remains is DhApplicationWindow, DhApplication
(see how it is done in Tepl) and a toolkit to build a preferences dialog (my
plan was to at least factor out a DhBookChooser widget from DhPreferences).

Then with the software product line, different API browser products can be
created: a generic one (same as current Devhelp), one specific for GNOME, etc.
See also the roadmap on the wiki.

Improve DhSettings
------------------

See the comment in dh-settings.c.

Rename some classes
-------------------

Attention to not break apps like Anjuta and Builder, so renaming classes should
either be done in a backward-compatible way (deprecate the old classes, provide
the new ones in parallel and implement the old classes by using the new ones),
or it should be done for the next major version of the libdevhelp, with the
different major versions being parallel-installable (which means moving the
libdevhelp to its own git repo).

- DhSidebar -> DhSidePanel. A "bar" in GNOME is more for horizontal things,
  like GtkInfoBar.
- DhKeywordModel -> DhSearchModel ?
