static gchar * log_manager_get_dir (EmpathyLogManager *manager, McAccount *account, const gchar *chat_id, gboolean chatroom) { const gchar *account_id; gchar *basedir; account_id = mc_account_get_unique_name (account); if (chatroom) { basedir = g_build_path (G_DIR_SEPARATOR_S, log_manager_get_basedir (manager), account_id, LOG_DIR_CHATROOMS, chat_id, NULL); } else { basedir = g_build_path (G_DIR_SEPARATOR_S, log_manager_get_basedir (manager), account_id, chat_id, NULL); } return basedir; }
EmpathyAccount * get_test_account (void) { McProfile *profile; EmpathyAccountManager *account_manager; EmpathyAccount *account; GList *accounts; account_manager = empathy_account_manager_dup_singleton (); profile = mc_profile_lookup ("test"); accounts = mc_accounts_list_by_profile (profile); if (g_list_length (accounts) == 0) { /* need to create a test account */ account = empathy_account_manager_create_by_profile (account_manager, profile); } else { /* reuse an existing test account */ McAccount *mc_account; mc_account = accounts->data; account = empathy_account_manager_lookup (account_manager, mc_account_get_unique_name (mc_account)); } g_object_unref (account_manager); g_object_unref (profile); return account; }
static void contact_list_view_drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection, guint info, guint time) { EmpathyContactListViewPriv *priv; GtkTreePath *src_path; GtkTreeIter iter; GtkTreeModel *model; EmpathyContact *contact; McAccount *account; const gchar *contact_id; const gchar *account_id; gchar *str; priv = GET_PRIV (widget); model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); if (!priv->drag_row) { return; } src_path = gtk_tree_row_reference_get_path (priv->drag_row); if (!src_path) { return; } if (!gtk_tree_model_get_iter (model, &iter, src_path)) { gtk_tree_path_free (src_path); return; } gtk_tree_path_free (src_path); contact = empathy_contact_list_view_get_selected (EMPATHY_CONTACT_LIST_VIEW (widget)); if (!contact) { return; } account = empathy_contact_get_account (contact); account_id = mc_account_get_unique_name (account); contact_id = empathy_contact_get_id (contact); g_object_unref (contact); str = g_strconcat (account_id, "/", contact_id, NULL); switch (info) { case DND_DRAG_TYPE_CONTACT_ID: gtk_selection_data_set (selection, drag_atoms_source[info], 8, (guchar*)str, strlen (str) + 1); break; } g_free (str); }
GList * empathy_log_manager_get_chats (EmpathyLogManager *manager, McAccount *account) { const gchar *basedir; gchar *dir; basedir = log_manager_get_basedir (manager); dir = g_build_filename (basedir, mc_account_get_unique_name (account), NULL); return log_manager_get_chats (manager, dir, FALSE); }
static void empathy_account_manager_init (EmpathyAccountManager *manager) { EmpathyAccountManagerPriv *priv; GList *mc_accounts, *l; AccountData *data; priv = G_TYPE_INSTANCE_GET_PRIVATE (manager, EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerPriv); manager->priv = priv; priv->monitor = mc_account_monitor_new (); priv->mc = empathy_mission_control_new (); priv->connected = priv->connecting = 0; priv->dispose_run = FALSE; priv->accounts = g_hash_table_new_full (empathy_account_hash, empathy_account_equal, g_object_unref, (GDestroyNotify) account_data_free); mc_accounts = mc_accounts_list (); for (l = mc_accounts; l; l = l->next) { data = account_data_new_default (priv->mc, l->data); account_created_cb (priv->monitor, (char *) mc_account_get_unique_name (l->data), manager); } g_signal_connect (priv->monitor, "account-created", G_CALLBACK (account_created_cb), manager); g_signal_connect (priv->monitor, "account-deleted", G_CALLBACK (account_deleted_cb), manager); g_signal_connect (priv->monitor, "account-disabled", G_CALLBACK (account_disabled_cb), manager); g_signal_connect (priv->monitor, "account-enabled", G_CALLBACK (account_enabled_cb), manager); g_signal_connect (priv->monitor, "account-changed", G_CALLBACK (account_changed_cb), manager); dbus_g_proxy_connect_signal (DBUS_G_PROXY (priv->mc), "AccountStatusChanged", G_CALLBACK (account_status_changed_cb), manager, NULL); mc_accounts_list_free (mc_accounts); }