static gboolean
save_timeout (EmpathyChatroomManager *self)
{
  EmpathyChatroomManagerPriv *priv = GET_PRIV (self);

  priv->save_timer_id = 0;
  chatroom_manager_file_save (self);

  return FALSE;
}
Ejemplo n.º 2
0
static void
chatroom_manager_finalize (GObject *object)
{
  EmpathyChatroomManager *self = EMPATHY_CHATROOM_MANAGER (object);
  EmpathyChatroomManagerPriv *priv;
  GList *l;

  priv = GET_PRIV (object);

  if (priv->account_manager_ready_handler_id > 0)
    {
      g_signal_handler_disconnect (priv->account_manager,
          priv->account_manager_ready_handler_id);
    }

  g_object_unref (priv->account_manager);

  if (priv->save_timer_id > 0)
    {
      /* have to save before destroy the object */
      g_source_remove (priv->save_timer_id);
      priv->save_timer_id = 0;
      chatroom_manager_file_save (self);
    }

  for (l = priv->chatrooms; l != NULL; l = g_list_next (l))
    {
      EmpathyChatroom *chatroom = l->data;

      g_signal_handlers_disconnect_by_func (chatroom, chatroom_changed_cb,
          self);

      g_object_unref (chatroom);
    }

  g_list_free (priv->chatrooms);
  g_free (priv->file);

  (G_OBJECT_CLASS (empathy_chatroom_manager_parent_class)->finalize) (object);
}
static void
chatroom_manager_finalize (GObject *object)
{
  EmpathyChatroomManager *self = EMPATHY_CHATROOM_MANAGER (object);
  EmpathyChatroomManagerPriv *priv;

  priv = GET_PRIV (object);

  g_object_unref (priv->account_manager);

  if (priv->save_timer_id > 0)
    {
      /* have to save before destroy the object */
      g_source_remove (priv->save_timer_id);
      priv->save_timer_id = 0;
      chatroom_manager_file_save (self);
    }

  clear_chatrooms (self);

  g_free (priv->file);

  (G_OBJECT_CLASS (empathy_chatroom_manager_parent_class)->finalize) (object);
}