Port EphySearchEngineManager to GListModel and the list box + row to it
I'm pushing here today as I don't think I'll have time to finish it this week, so at least it's pushed somewhere. I do intend to finish it when I get time for it, which hopefully shouldn't be too far away.
TODO:
-
ephy-search-engine-row.c isn't yet fully ported. There's a bunch of commented lines w/ FIXME/TODO in the list box code, for things that should be moved from the list box to the row w/ notify:: and items-changed signals.Mostly done and working. -
Actually build this and run it (yes, I haven't yet run it at all :)Done. Works pretty fine. -
Thoroughly test all features and edges cases to make sure I didn't break anythingMostly done. -
Make tests for the manager/engine code (test signal emissions too if possible?)Initial tests should be done.
I'm a bit embarassed to use only one commit for the whole thing, but for the time being it's easier to rebase that way. And anyway, if I didn't put everything in one commit, there would be some commits that wouldn't build alone. Not sure what's the policy here. The tests can be put in a separate commit of course though, but those don't weight in too much LOC count wise.
Fixes #1441 (closed)
Fixes #1318 (closed)
Helps !1053
For #1318 (closed), I just detected if the engine is either at the beginning or at the end, but I didn't bother checking every single words for bangs as my main use case for the original issue was when I forgot to insert the bang to use a particular engine, in which case I inserted the bang at the end to correct myself but that currently doesn't work. Now it's fixed with this MR.