aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/gossip-utils.c
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2007-05-31 14:34:41 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2007-05-31 14:34:41 +0800
commit6fe758a0d83f6872585a177a2e821d4105642308 (patch)
tree50d79a5ae475063c38e4e62cdaaa3c3817220077 /libempathy/gossip-utils.c
parenta0c9dc2f22f510378063be5a8c872bfe8c92bd10 (diff)
downloadgsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.tar
gsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.tar.gz
gsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.tar.bz2
gsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.tar.lz
gsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.tar.xz
gsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.tar.zst
gsoc2013-empathy-6fe758a0d83f6872585a177a2e821d4105642308.zip
Fix warning when selecting all accounts.
2007-05-31 Xavier Claessens <xclaesse@gmail.com> * libempathy-gtk/gossip-account-chooser.c: Fix warning when selecting all accounts. * src/empathy-accounts-main.c: * libempathy-gtk/empathy-status-icon.c: * libempathy-gtk/gossip-accounts-dialog.h: * libempathy-gtk/gossip-accounts-dialog.c: * libempathy-gtk/gossip-preferences.h: * libempathy-gtk/gossip-preferences.c: Set parent window. * libempathy-gtk/empathy-main-window.c: Implement favorite chatroom menu and fix a leak. * libempathy-gtk/Makefile.am: * libempathy/Makefile.am: * libempathy/gossip-chatroom.c: * libempathy/gossip-chatroom.h: * libempathy/gossip-chatroom-manager.c: * libempathy/gossip-chatroom-manager.h: * libempathy/gossip-chatroom-manager.dtd: * libempathy-gtk/gossip-chatrooms-window.glade: * libempathy-gtk/gossip-chatrooms-window.c: * libempathy-gtk/gossip-chatrooms-window.h: New files to implement favorite chatrooms and a window to show them. * libempathy-gtk/gossip-chat.c: Fix tooltip leaked. * libempathy-gtk/gossip-chat-window.h: * libempathy-gtk/gossip-chat-window.c: Do not use deprecated gtk_object_sink(). Implement favorite chatroom features. Find a chat by comparing the account AND the chat ID. * src/empathy-chat-main.c: * libempathy/empathy-tp-chat.h: * libempathy/empathy-tp-chat.c: * libempathy/gossip-utils.h: * libempathy/gossip-utils.c: empathy_tp_chat_get_id() returns the Text channel's name. The chat ID is unique only for a specified account. * libempathy/empathy-tp-contact-list.c: Fix some leaks and add a FIXME comment for a leak not yet fixed. * TODO: Would be cool to have a glade catalog for libempathy-gtk. svn path=/trunk/; revision=100
Diffstat (limited to 'libempathy/gossip-utils.c')
-rw-r--r--libempathy/gossip-utils.c49
1 files changed, 48 insertions, 1 deletions
diff --git a/libempathy/gossip-utils.c b/libempathy/gossip-utils.c
index 6ab70ce4a..579981616 100644
--- a/libempathy/gossip-utils.c
+++ b/libempathy/gossip-utils.c
@@ -33,7 +33,6 @@
#include <glib/gi18n.h>
#include <libxml/uri.h>
-#include <libmissioncontrol/mc-account.h>
#include <libtelepathy/tp-helpers.h>
#include "gossip-debug.h"
@@ -447,3 +446,51 @@ gossip_mission_control_new (void)
return mc;
}
+gchar *
+gossip_get_channel_id (McAccount *account,
+ TpChan *tp_chan)
+{
+ MissionControl *mc;
+ TpConn *tp_conn;
+ GArray *handles;
+ gchar **names;
+ gchar *name;
+ GError *error;
+
+ g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
+ g_return_val_if_fail (TELEPATHY_IS_CHAN (tp_chan), NULL);
+
+ mc = gossip_mission_control_new ();
+ tp_conn = mission_control_get_connection (mc, account, NULL);
+ g_object_unref (mc);
+
+ if (!tp_conn) {
+ return NULL;
+ }
+
+ /* Get the handle's name */
+ handles = g_array_new (FALSE, FALSE, sizeof (guint));
+ g_array_append_val (handles, tp_chan->handle);
+ if (!tp_conn_inspect_handles (DBUS_G_PROXY (tp_conn),
+ tp_chan->handle_type,
+ handles,
+ &names,
+ &error)) {
+ gossip_debug (DEBUG_DOMAIN,
+ "Couldn't get id: %s",
+ error ? error->message : "No error given");
+
+ g_clear_error (&error);
+ g_array_free (handles, TRUE);
+ g_object_unref (tp_conn);
+
+ return NULL;
+ }
+
+ name = *names;
+ g_free (names);
+ g_object_unref (tp_conn);
+
+ return name;
+}
+