#include <libmissioncontrol/mission-control.h>
#include <libmissioncontrol/mc-account-monitor.h>
#include <libtelepathy/tp-constants.h>
+#include <libtelepathy/tp-helpers.h>
-#include <libempathy/empathy-session.h>
#include <libempathy/gossip-debug.h>
#include <libempathy/gossip-paths.h>
#include <libempathy/gossip-utils.h>
#define FLASH_TIMEOUT 500
typedef struct {
- GtkWidget *window;
+ GtkWidget *window;
- GtkWidget *alignment_settings;
+ GtkWidget *alignment_settings;
- GtkWidget *vbox_details;
- GtkWidget *frame_no_account;
- GtkWidget *label_no_account;
- GtkWidget *label_no_account_blurb;
+ GtkWidget *vbox_details;
+ GtkWidget *frame_no_account;
+ GtkWidget *label_no_account;
+ GtkWidget *label_no_account_blurb;
- GtkWidget *treeview;
+ GtkWidget *treeview;
- GtkWidget *button_remove;
- GtkWidget *button_connect;
+ GtkWidget *button_remove;
+ GtkWidget *button_connect;
- GtkWidget *frame_new_account;
- GtkWidget *combobox_profile;
- GtkWidget *entry_name;
- GtkWidget *table_new_account;
- GtkWidget *button_create;
- GtkWidget *button_cancel;
+ GtkWidget *frame_new_account;
+ GtkWidget *combobox_profile;
+ GtkWidget *entry_name;
+ GtkWidget *table_new_account;
+ GtkWidget *button_create;
+ GtkWidget *button_back;
- GtkWidget *image_type;
- GtkWidget *label_name;
- GtkWidget *label_type;
- GtkWidget *settings_widget;
+ GtkWidget *image_type;
+ GtkWidget *label_name;
+ GtkWidget *label_type;
+ GtkWidget *settings_widget;
- gboolean connecting_show;
- guint connecting_id;
- gboolean account_changed;
+ gboolean connecting_show;
+ guint connecting_id;
+ gboolean account_changed;
+
+ MissionControl *mc;
+ McAccountMonitor *monitor;
} GossipAccountsDialog;
enum {
GossipAccountsDialog *dialog);
static void accounts_dialog_button_create_clicked_cb (GtkWidget *button,
GossipAccountsDialog *dialog);
-static void accounts_dialog_button_cancel_clicked_cb (GtkWidget *button,
+static void accounts_dialog_button_back_clicked_cb (GtkWidget *button,
GossipAccountsDialog *dialog);
static void accounts_dialog_button_connect_clicked_cb (GtkWidget *button,
GossipAccountsDialog *dialog);
GtkTreeSelection *selection;
GtkTreeIter iter;
GList *accounts, *l;
- MissionControl *mc;
view = GTK_TREE_VIEW (dialog->treeview);
store = GTK_LIST_STORE (gtk_tree_view_get_model (view));
selection = gtk_tree_view_get_selection (view);
- mc = empathy_session_get_mission_control ();
accounts = mc_accounts_list ();
for (l = accounts; l; l = l->next) {
continue;
}
- status = mission_control_get_connection_status (mc, account, NULL);
+ status = mission_control_get_connection_status (dialog->mc, account, NULL);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
COL_ACCOUNT_POINTER, account,
-1);
- accounts_dialog_status_changed_cb (mc,
+ accounts_dialog_status_changed_cb (dialog->mc,
status,
MC_PRESENCE_UNSET,
TP_CONN_STATUS_REASON_NONE_SPECIFIED,
accounts_dialog_add_account (GossipAccountsDialog *dialog,
McAccount *account)
{
- MissionControl *mc;
TelepathyConnectionStatus status;
const gchar *name;
GtkTreeView *view;
}
}
- mc = empathy_session_get_mission_control ();
- status = mission_control_get_connection_status (mc, account, NULL);
+ status = mission_control_get_connection_status (dialog->mc, account, NULL);
name = mc_account_get_display_name (account);
g_return_if_fail (name != NULL);
gchar *unique_name,
GossipAccountsDialog *dialog)
{
- MissionControl *mc;
- McAccount *account;
+ McAccount *account;
- mc = empathy_session_get_mission_control ();
account = mc_account_lookup (unique_name);
accounts_dialog_model_set_selected (dialog, account);
}
static void
-accounts_dialog_button_cancel_clicked_cb (GtkWidget *button,
- GossipAccountsDialog *dialog)
+accounts_dialog_button_back_clicked_cb (GtkWidget *button,
+ GossipAccountsDialog *dialog)
{
McAccount *account;
accounts_dialog_destroy_cb (GtkWidget *widget,
GossipAccountsDialog *dialog)
{
- MissionControl *mc;
- McAccountMonitor *monitor;
- GList *accounts, *l;
-
- mc = empathy_session_get_mission_control ();
- monitor = mc_account_monitor_new ();
+ GList *accounts, *l;
/* Disconnect signals */
- g_signal_handlers_disconnect_by_func (monitor,
+ g_signal_handlers_disconnect_by_func (dialog->monitor,
accounts_dialog_account_added_cb,
dialog);
- g_signal_handlers_disconnect_by_func (monitor,
+ g_signal_handlers_disconnect_by_func (dialog->monitor,
accounts_dialog_account_removed_cb,
dialog);
- dbus_g_proxy_disconnect_signal (DBUS_G_PROXY (mc), "AccountStatusChanged",
- G_CALLBACK (accounts_dialog_status_changed_cb),
- dialog);
+ dbus_g_proxy_disconnect_signal (DBUS_G_PROXY (dialog->mc),
+ "AccountStatusChanged",
+ G_CALLBACK (accounts_dialog_status_changed_cb),
+ dialog);
/* Delete incomplete accounts */
accounts = mc_accounts_list ();
g_source_remove (dialog->connecting_id);
}
+ g_object_unref (dialog->mc);
+ g_object_unref (dialog->monitor);
+
g_free (dialog);
}
gossip_accounts_dialog_show (void)
{
static GossipAccountsDialog *dialog = NULL;
- MissionControl *mc;
- McAccountMonitor *monitor;
GladeXML *glade;
GtkWidget *bbox;
GtkWidget *button_close;
"entry_name", &dialog->entry_name,
"table_new_account", &dialog->table_new_account,
"button_create", &dialog->button_create,
- "button_cancel", &dialog->button_cancel,
+ "button_back", &dialog->button_back,
"image_type", &dialog->image_type,
"label_type", &dialog->label_type,
"label_name", &dialog->label_name,
"accounts_dialog", "destroy", accounts_dialog_destroy_cb,
"accounts_dialog", "response", accounts_dialog_response_cb,
"button_create", "clicked", accounts_dialog_button_create_clicked_cb,
- "button_cancel", "clicked", accounts_dialog_button_cancel_clicked_cb,
+ "button_back", "clicked", accounts_dialog_button_back_clicked_cb,
"entry_name", "changed", accounts_dialog_entry_name_changed_cb,
"treeview", "row-activated", accounts_dialog_treeview_row_activated_cb,
"button_connect", "clicked", accounts_dialog_button_connect_clicked_cb,
gtk_widget_show (dialog->combobox_profile);
/* Set up signalling */
- mc = empathy_session_get_mission_control ();
- monitor = mc_account_monitor_new ();
+ dialog->mc = mission_control_new (tp_get_bus ());
+ dialog->monitor = mc_account_monitor_new ();
/* FIXME: connect account-enabled/disabled too */
- g_signal_connect (monitor, "account-created",
+ g_signal_connect (dialog->monitor, "account-created",
G_CALLBACK (accounts_dialog_account_added_cb),
dialog);
- g_signal_connect (monitor, "account-deleted",
+ g_signal_connect (dialog->monitor, "account-deleted",
G_CALLBACK (accounts_dialog_account_removed_cb),
dialog);
- dbus_g_proxy_connect_signal (DBUS_G_PROXY (mc), "AccountStatusChanged",
+ dbus_g_proxy_connect_signal (DBUS_G_PROXY (dialog->mc), "AccountStatusChanged",
G_CALLBACK (accounts_dialog_status_changed_cb),
dialog, NULL);