static void on_default_account_changed (ModestAccountMgr *mgr,
gpointer user_data);
+static void on_display_name_changed (ModestAccountMgr *self,
+ const gchar *account,
+ gpointer user_data);
+
typedef enum {
MODEST_ACCOUNT_VIEW_NAME_COLUMN,
MODEST_ACCOUNT_VIEW_DISPLAY_NAME_COLUMN,
{
GtkListStore *model = GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(self)));
GtkTreeIter iter;
- g_message(__FUNCTION__);
+ gboolean found = FALSE;
+
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter))
return;
- do
- {
+
+ do {
gchar* cur_name;
- gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, MODEST_ACCOUNT_VIEW_NAME_COLUMN,
- &cur_name, -1);
- if (g_str_equal(cur_name, account_name))
- {
+ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter,
+ MODEST_ACCOUNT_VIEW_NAME_COLUMN,
+ &cur_name, -1);
+
+ if (g_str_equal(cur_name, account_name)) {
ModestAccountData* account_data =
modest_account_mgr_get_account_data (account_mgr, account_name);
- if (!account_data)
+ if (!account_data) {
+ g_free (cur_name);
return;
+ }
gchar* last_updated_string = get_last_updated_string(account_mgr, account_data);
gtk_list_store_set(model, &iter,
MODEST_ACCOUNT_VIEW_LAST_UPDATED_COLUMN, last_updated_string,
-1);
g_free (last_updated_string);
modest_account_mgr_free_account_data (account_mgr, account_data);
- return;
+ found = TRUE;
}
- }
- while (gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter));
+ g_free (cur_name);
+
+ } while (!found && gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter));
}
static void
self = MODEST_ACCOUNT_VIEW (user_data);
priv = MODEST_ACCOUNT_VIEW_GET_PRIVATE (self);
- g_warning ("account changed: %s", tny_account_get_id(account));
-
/* Update account view */
/* update_account_view (priv->account_mgr, self); */
}
"default_account_changed",
G_CALLBACK(on_default_account_changed),
self);
+ priv->sig_handlers =
+ modest_signal_mgr_connect (priv->sig_handlers,
+ G_OBJECT(priv->account_mgr),
+ "display_name_changed",
+ G_CALLBACK(on_display_name_changed),
+ self);
}
-1);
/* Update the default account column */
- if (!strcmp (name, default_account_name))
+ if ((default_account_name != NULL) && (!strcmp (name, default_account_name)))
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
MODEST_ACCOUNT_VIEW_IS_DEFAULT_COLUMN, TRUE, -1);
else
g_free (default_account_name);
gtk_widget_queue_draw (GTK_WIDGET (user_data));
}
+
+static void
+on_display_name_changed (ModestAccountMgr *mgr,
+ const gchar *account,
+ gpointer user_data)
+{
+ /* Update the view */
+ update_account_view (mgr, MODEST_ACCOUNT_VIEW (user_data));
+}