Make CallsContacts a singleton

Since passing a CallsContacts pointer down to every class it needs, started to
become laborous - especially since the intermediates classes don't need
the reference themselves - it was made a singleton

* src/calls-contacts.c: Added calls_contacts_get_default () function and
  removed calls_contacts_new ()
* src/calls-contacts.h: Added _get_default () prototype and removed the
  _new () prototype
* src/calls-application.c: Use calls_contacts_get_default () now
* src/calls-history-box.c: Removed self->contacts completely
* src/calls-history-box.h: Got rid of CallsContacts argument in _new()
* src/calls-main-window.c: Removed self->contacts completely
* src/calls-main-window.h: Got rid of CallsContacts argument in _new()
* src/calls-call-record-row.c: Use calls_contacts_get_default () now
* src/calls-call-record-row.h: Got rid of CallsContacts argument in
  _new()
* src/calls-call-holder.c: Use calls_contacts_get_default () now
* src/calls-call-holder.h: Got rid of CallsContacts argument in _new()
* src/calls-call-window.c: Removed self->contacts completely
* src/calls-call-window.h: Got rid of CallsContacts argument in _new()
* src/calls-notifier.c: Use calls_contacts_get_default () now
* src/calls-notifier.h: Got rid of CallsContacts argument in _new()
This commit is contained in:
Evangelos Ribeiro Tzaras
2020-06-17 13:44:11 +02:00
parent 17e8e4bd24
commit 0f0d10e3f2
11 changed files with 28 additions and 124 deletions

View File

@@ -141,9 +141,15 @@ calls_contacts_init (CallsContacts *self)
CallsContacts *
calls_contacts_new ()
calls_contacts_get_default ()
{
return g_object_new (CALLS_TYPE_CONTACTS, NULL);
static CallsContacts *instance;
if (instance == NULL)
{
instance = g_object_new (CALLS_TYPE_CONTACTS, NULL);
g_object_add_weak_pointer (G_OBJECT (instance), (gpointer *) &instance);
}
return instance;
}