EmpathyChat * empathy_chat_window_find_chat (McAccount *account, const gchar *id) { GList *l; g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (!G_STR_EMPTY (id), NULL); for (l = chat_windows; l; l = l->next) { EmpathyChatWindowPriv *priv; EmpathyChatWindow *window; GList *ll; window = l->data; priv = GET_PRIV (window); for (ll = priv->chats; ll; ll = ll->next) { EmpathyChat *chat; chat = ll->data; if (empathy_account_equal (account, empathy_chat_get_account (chat)) && !tp_strdiff (id, empathy_chat_get_id (chat))) { return chat; } } } return NULL; }
GList * empathy_log_manager_get_last_messages (EmpathyLogManager *manager, McAccount *account, const gchar *chat_id, gboolean chatroom) { GList *messages = NULL; GList *dates; GList *l; g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL); g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (chat_id != NULL, NULL); dates = empathy_log_manager_get_dates (manager, account, chat_id, chatroom); l = g_list_last (dates); if (l) { messages = empathy_log_manager_get_messages_for_date (manager, account, chat_id, chatroom, l->data); } g_list_foreach (dates, (GFunc) g_free, NULL); g_list_free (dates); return messages; }
GtkWidget * empathy_account_widget_generic_new (McAccount *account) { GladeXML *glade; GtkWidget *widget; GtkWidget *table_common_settings; GtkWidget *table_advanced_settings; gchar *filename; g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); filename = empathy_file_lookup ("empathy-account-widget-generic.glade", "libempathy-gtk"); glade = empathy_glade_get_file (filename, "vbox_generic_settings", NULL, "vbox_generic_settings", &widget, "table_common_settings", &table_common_settings, "table_advanced_settings", &table_advanced_settings, NULL); g_free (filename); accounts_widget_generic_setup (account, table_common_settings, table_advanced_settings); g_object_unref (glade); gtk_widget_show_all (widget); return widget; }
EmpathyChatroom * empathy_chatroom_new (McAccount *account) { g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); return g_object_new (EMPATHY_TYPE_CHATROOM, "account", account, NULL); }
GList * empathy_log_manager_get_dates (EmpathyLogManager *manager, McAccount *account, const gchar *chat_id, gboolean chatroom) { GList *dates = NULL; gchar *date; gchar *directory; GDir *dir; const gchar *filename; const gchar *p; g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL); g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (chat_id != NULL, NULL); directory = log_manager_get_dir (manager, account, chat_id, chatroom); dir = g_dir_open (directory, 0, NULL); if (!dir) { DEBUG ("Could not open directory:'%s'", directory); g_free (directory); return NULL; } DEBUG ("Collating a list of dates in:'%s'", directory); while ((filename = g_dir_read_name (dir)) != NULL) { if (!g_str_has_suffix (filename, LOG_FILENAME_SUFFIX)) { continue; } p = strstr (filename, LOG_FILENAME_SUFFIX); date = g_strndup (filename, p - filename); if (!date) { continue; } if (!g_regex_match_simple ("\\d{8}", date, 0, 0)) { continue; } dates = g_list_insert_sorted (dates, date, (GCompareFunc) strcmp); } g_free (directory); g_dir_close (dir); DEBUG ("Parsed %d dates", g_list_length (dates)); return dates; }
gboolean empathy_account_chooser_filter_is_connected (McAccount *account, gpointer user_data) { MissionControl *mc; TpConnectionStatus status; g_return_val_if_fail (MC_IS_ACCOUNT (account), FALSE); mc = empathy_mission_control_new (); status = mission_control_get_connection_status (mc, account, NULL); g_object_unref (mc); return status == TP_CONNECTION_STATUS_CONNECTED; }
void empathy_account_widget_handle_params (McAccount *account, GtkBuilder *gui, const gchar *first_widget, ...) { va_list args; g_return_if_fail (MC_IS_ACCOUNT (account)); g_return_if_fail (GTK_IS_BUILDER (gui)); va_start (args, first_widget); account_widget_handle_params_valist (account, gui, first_widget, args); va_end (args); }
EmpathyChatroom * empathy_chatroom_new_full (McAccount *account, const gchar *room, const gchar *name, gboolean auto_connect) { g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (room != NULL, NULL); return g_object_new (EMPATHY_TYPE_CHATROOM, "account", account, "room", room, "name", name, "auto_connect", auto_connect, NULL); }
void empathy_account_widget_handle_params (McAccount *account, GladeXML *gui, const gchar *first_widget_name, ...) { va_list args; g_return_if_fail (MC_IS_ACCOUNT (account)); va_start (args, first_widget_name); account_widget_handle_params_valist (account, gui, first_widget_name, args); va_end (args); }
/** * empathy_account_manager_get_connection: * @manager: a #EmpathyAccountManager * @account: a #McAccount * * Get the connection of the accounts, or NULL if account is offline or the * connection is not yet ready. This function does not return a new ref. * * Returns: the connection of the accounts. **/ TpConnection * empathy_account_manager_get_connection (EmpathyAccountManager *manager, McAccount *account) { EmpathyAccountManagerPriv *priv; AccountData *data; g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), NULL); g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); priv = GET_PRIV (manager); data = g_hash_table_lookup (priv->accounts, account); if (data && data->connection && tp_connection_is_ready (data->connection)) return data->connection; return NULL; }
GList * empathy_log_manager_get_messages_for_date (EmpathyLogManager *manager, McAccount *account, const gchar *chat_id, gboolean chatroom, const gchar *date) { gchar *filename; GList *messages; g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL); g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (chat_id != NULL, NULL); filename = log_manager_get_filename_for_date (manager, account, chat_id, chatroom, date); messages = empathy_log_manager_get_messages_for_file (manager, filename); g_free (filename); return messages; }
void empathy_chatroom_set_account (EmpathyChatroom *chatroom, McAccount *account) { EmpathyChatroomPriv *priv; g_return_if_fail (EMPATHY_IS_CHATROOM (chatroom)); g_return_if_fail (MC_IS_ACCOUNT (account)); 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"); }
EmpathyTpRoomlist * empathy_tp_roomlist_new (McAccount *account) { EmpathyTpRoomlist *list; MissionControl *mc; TpConnection *connection; g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); mc = empathy_mission_control_dup_singleton (); connection = mission_control_get_tpconnection (mc, account, NULL); list = g_object_new (EMPATHY_TYPE_TP_ROOMLIST, "connection", connection, NULL); g_object_unref (mc); g_object_unref (connection); return list; }
GtkWidget * empathy_account_widget_generic_new (McAccount *account) { GtkBuilder *gui; GtkWidget *widget; GtkWidget *table_common_settings; GtkWidget *table_advanced_settings; gchar *filename; g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); filename = empathy_file_lookup ("empathy-account-widget-generic.ui", "libempathy-gtk"); gui = empathy_builder_get_file (filename, "vbox_generic_settings", &widget, "table_common_settings", &table_common_settings, "table_advanced_settings", &table_advanced_settings, NULL); g_free (filename); accounts_widget_generic_setup (account, table_common_settings, table_advanced_settings); return empathy_builder_unref_and_keep_widget (gui, widget); }