void
empathy_chatroom_manager_remove (EmpathyChatroomManager *manager,
    EmpathyChatroom        *chatroom)
{
  EmpathyChatroomManagerPriv *priv;
  GList *l;

  g_return_if_fail (EMPATHY_IS_CHATROOM_MANAGER (manager));
  g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

  priv = GET_PRIV (manager);

  for (l = priv->chatrooms; l; l = l->next)
    {
      EmpathyChatroom *this_chatroom;

      this_chatroom = l->data;

      if (this_chatroom == chatroom ||
          empathy_chatroom_equal (chatroom, this_chatroom))
        {
          chatroom_manager_remove_link (manager, l);
          break;
        }
    }
}
Exemple #2
0
gboolean
empathy_chatroom_manager_add (EmpathyChatroomManager *manager,
			     EmpathyChatroom        *chatroom)
{
  EmpathyChatroomManagerPriv *priv;

  g_return_val_if_fail (EMPATHY_IS_CHATROOM_MANAGER (manager), FALSE);
  g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), FALSE);

  priv = GET_PRIV (manager);

  /* don't add more than once */
  if (!empathy_chatroom_manager_find (manager,
      empathy_chatroom_get_account (chatroom),
      empathy_chatroom_get_room (chatroom)))
    {
      add_chatroom (manager, chatroom);

      if (empathy_chatroom_is_favorite (chatroom))
        reset_save_timeout (manager);

      g_signal_emit (manager, signals[CHATROOM_ADDED], 0, chatroom);
      return TRUE;
    }

  return FALSE;
}
Exemple #3
0
const gchar *
empathy_chatroom_get_room (EmpathyChatroom *chatroom)
{
	EmpathyChatroomPriv *priv;

	g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), NULL);

	priv = GET_PRIV (chatroom);
	return priv->room;
}
Exemple #4
0
EmpathyAccount *
empathy_chatroom_get_account (EmpathyChatroom *chatroom)
{
	EmpathyChatroomPriv *priv;

	g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), NULL);

	priv = GET_PRIV (chatroom);
	return priv->account;
}
Exemple #5
0
gboolean
empathy_chatroom_get_auto_connect (EmpathyChatroom *chatroom)
{
	EmpathyChatroomPriv *priv;

	g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), FALSE);

	priv = GET_PRIV (chatroom);
	return priv->auto_connect;
}
Exemple #6
0
gboolean
empathy_chatroom_equal (gconstpointer v1,
		       gconstpointer v2)
{
	EmpathyAccount *account_a;
	EmpathyAccount *account_b;
	const gchar *room_a;
	const gchar *room_b;

	g_return_val_if_fail (EMPATHY_IS_CHATROOM (v1), FALSE);
	g_return_val_if_fail (EMPATHY_IS_CHATROOM (v2), FALSE);

	account_a = empathy_chatroom_get_account (EMPATHY_CHATROOM (v1));
	account_b = empathy_chatroom_get_account (EMPATHY_CHATROOM (v2));

	room_a = empathy_chatroom_get_room (EMPATHY_CHATROOM (v1));
	room_b = empathy_chatroom_get_room (EMPATHY_CHATROOM (v2));

	return account_a == account_b && !tp_strdiff (room_a, room_b);
}
Exemple #7
0
gboolean
empathy_chatroom_is_favorite (EmpathyChatroom *chatroom)
{
	EmpathyChatroomPriv *priv;

	g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), FALSE);

	priv = GET_PRIV (chatroom);

	return priv->favorite;
}
Exemple #8
0
guint
empathy_chatroom_get_members_count (EmpathyChatroom *chatroom)
{
  EmpathyChatroomPriv *priv;

  g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), 0);

  priv = GET_PRIV (chatroom);

  return priv->members_count;
}
Exemple #9
0
gboolean
empathy_chatroom_get_invite_only (EmpathyChatroom *chatroom)
{
  EmpathyChatroomPriv *priv;

  g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), FALSE);

  priv = GET_PRIV (chatroom);

  return priv->invite_only;
}
Exemple #10
0
gboolean
empathy_chatroom_get_need_password (EmpathyChatroom *chatroom)
{
  EmpathyChatroomPriv *priv;

  g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), FALSE);

  priv = GET_PRIV (chatroom);

  return priv->need_password;
}
Exemple #11
0
void
empathy_chatroom_set_invite_only (EmpathyChatroom *chatroom,
                                  gboolean invite_only)
{
  EmpathyChatroomPriv *priv;

  g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

  priv = GET_PRIV (chatroom);

  priv->invite_only = invite_only;

  g_object_notify (G_OBJECT (chatroom), "invite-only");
}
Exemple #12
0
void
empathy_chatroom_set_need_password (EmpathyChatroom *chatroom,
                                    gboolean need_password)
{
  EmpathyChatroomPriv *priv;

  g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

  priv = GET_PRIV (chatroom);

  priv->need_password = need_password;

  g_object_notify (G_OBJECT (chatroom), "need-password");
}
Exemple #13
0
void
empathy_chatroom_set_members_count (EmpathyChatroom *chatroom,
                                    guint count)
{
  EmpathyChatroomPriv *priv;

  g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

  priv = GET_PRIV (chatroom);

  priv->members_count = count;

  g_object_notify (G_OBJECT (chatroom), "members-count");
}
Exemple #14
0
const gchar *
empathy_chatroom_get_name (EmpathyChatroom *chatroom)
{
	EmpathyChatroomPriv *priv;

	g_return_val_if_fail (EMPATHY_IS_CHATROOM (chatroom), NULL);

	priv = GET_PRIV (chatroom);

	if (EMP_STR_EMPTY (priv->name)) {
		return priv->room;
	}

	return priv->name;
}
Exemple #15
0
void
empathy_chatroom_set_room (EmpathyChatroom *chatroom,
			  const gchar    *room)
{
	EmpathyChatroomPriv *priv;

	g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));
	g_return_if_fail (room != NULL);

	priv = GET_PRIV (chatroom);

	g_free (priv->room);
	priv->room = g_strdup (room);

	g_object_notify (G_OBJECT (chatroom), "room");
}
Exemple #16
0
void
empathy_chatroom_set_subject (EmpathyChatroom *chatroom,
                              const gchar *subject)
{
  EmpathyChatroomPriv *priv;

  g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

  priv = GET_PRIV (chatroom);

  g_free (priv->subject);
  priv->subject = NULL;

  if (subject)
    priv->subject = g_strdup (subject);

  g_object_notify (G_OBJECT (chatroom), "subject");
}
Exemple #17
0
void
empathy_chatroom_set_name (EmpathyChatroom *chatroom,
			  const gchar    *name)
{
	EmpathyChatroomPriv *priv;

	g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

	priv = GET_PRIV (chatroom);

	g_free (priv->name);
	priv->name = NULL;
	if (name) {
		priv->name = g_strdup (name);
	}

	g_object_notify (G_OBJECT (chatroom), "name");
}
Exemple #18
0
void
empathy_chatroom_set_favorite (EmpathyChatroom *chatroom,
			       gboolean         favorite)
{
	EmpathyChatroomPriv *priv;

	g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

	priv = GET_PRIV (chatroom);

	if (priv->favorite == favorite) {
		return;
	}

	priv->favorite = favorite;
	if (!priv->favorite) {
		empathy_chatroom_set_auto_connect (chatroom, FALSE);
	}
	g_object_notify (G_OBJECT (chatroom), "favorite");
}
Exemple #19
0
void
empathy_chatroom_set_account (EmpathyChatroom *chatroom,
			     EmpathyAccount *account)
{
	EmpathyChatroomPriv *priv;

	g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

	priv = GET_PRIV (chatroom);

	if (account == priv->account) {
		return;
	}
	if (priv->account) {
		g_object_unref (priv->account);
	}
	priv->account = g_object_ref (account);

	g_object_notify (G_OBJECT (chatroom), "account");
}
Exemple #20
0
void
empathy_chatroom_set_auto_connect (EmpathyChatroom *chatroom,
				  gboolean        auto_connect)
{
	EmpathyChatroomPriv *priv;

	g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));

	priv = GET_PRIV (chatroom);

	priv->auto_connect = auto_connect;

	if (priv->auto_connect) {
		/* auto_connect implies favorite */
		priv->favorite = TRUE;
		g_object_notify (G_OBJECT (chatroom), "favorite");
	}

	g_object_notify (G_OBJECT (chatroom), "auto-connect");
}
Exemple #21
0
void
empathy_chatroom_set_tp_chat (EmpathyChatroom *chatroom,
			      EmpathyTpChat   *tp_chat)
{
	EmpathyChatroomPriv *priv;

	g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom));
	g_return_if_fail (tp_chat == NULL || EMPATHY_IS_TP_CHAT (tp_chat));

	priv = GET_PRIV (chatroom);

	if (priv->tp_chat == tp_chat) {
		return;
	}

	if (priv->tp_chat != NULL) {
		g_object_unref (priv->tp_chat);
	}

	priv->tp_chat = tp_chat ? g_object_ref (tp_chat) : NULL;
	g_object_notify (G_OBJECT (chatroom), "tp-chat");
}