Circular dependency between ContactsDatabase and ContactsEngine
ContactsEngine * parameter has been added to the
ContactsDatabase's constructor, to let the database notify the engine about some changes, via asynchronous calls. At the same time, the
ContactsEngine creates the
ContactsDatabase objects and holds a pointer to it.
I believe that this is a bad design (which I discovered when rebasing a branch of mine: now I cannot anymore just create a
ContactsDatabase in the unit tests, without also creating a
ContactsEngine); I propose to turn ContactsDatabase into a QObject, and have it emit signals when needed.