static void
_tp_feed_available_notify_cb (GObject    *object,
                              GParamSpec *pspec,
                              gpointer    userdata)
{
  _update_placeholder_state (MNB_PEOPLE_PANEL (userdata));
  _update_presence_chooser_state (MNB_PEOPLE_PANEL (userdata));
}
Esempio n. 2
0
static void
_account_status_changed_cb (TpAccount  *account,
                            guint       old_status,
                            guint       new_status,
                            guint       reason,
                            gchar      *dbus_error_name,
                            GHashTable *details,
                            gpointer    user_data)
{
  _update_placeholder_state (MNB_PEOPLE_PANEL (user_data));
  _update_presence_chooser_state (MNB_PEOPLE_PANEL (user_data));
}
Esempio n. 3
0
static void
_account_validity_changed_cb (TpAccountManager *manager,
                              TpAccount        *account,
                              gboolean          valid,
                              gpointer          user_data)
{
  MnbPeoplePanel *self = user_data;

  if (valid)
  {
    tp_g_signal_connect_object (account, "status-changed",
                                G_CALLBACK (_account_status_changed_cb),
                                self, 0);
  }

  _update_placeholder_state (self);
  _update_presence_chooser_state (self);
}
Esempio n. 4
0
static void
am_prepared_cb (GObject *object,
                GAsyncResult *result,
                gpointer user_data)
{
  MnbPeoplePanel *self= user_data;
  MnbPeoplePanelPrivate *priv = GET_PRIVATE (self);
  GList *accounts;
  GError *error = NULL;

  if (!tp_proxy_prepare_finish (object, result, &error))
  {
    g_warning ("Error preparing the TpAccountManager: %s", error->message);
    g_clear_error (&error);
    return;
  }

  g_signal_connect (priv->am,
                    "account-validity-changed",
                    (GCallback)_account_validity_changed_cb,
                    self);
  g_signal_connect_swapped (priv->am,
                    "most-available-presence-changed",
                    (GCallback)_update_presence_message,
                    self);

  accounts = tp_account_manager_get_valid_accounts (priv->am);
  while (accounts != NULL)
  {
    tp_g_signal_connect_object (accounts->data, "status-changed",
                                G_CALLBACK (_account_status_changed_cb),
                                self, 0);
    accounts = g_list_delete_link (accounts, accounts);
  }

  _update_placeholder_state (self);
  _update_presence_chooser_state (self);
  _update_presence_message (self);
}
Esempio n. 5
0
static void
_update_online_state (MnbPeoplePanel *panel,
                      gboolean        online)
{
  _update_presence_chooser_state (panel);
}