X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgtk-glade%2Fmodest-ui.c;h=36f4f49da789c98dafea00757084f26e2eb4e53b;hb=9381d2949de3c1268e83284bd39a8ffb865ec851;hp=a34aac5a153e75dcbd908909be7b09adcb76e1aa;hpb=5458e352ca31d2729dd17f5b323b38e1c7d0bbb1;p=modest diff --git a/src/gtk-glade/modest-ui.c b/src/gtk-glade/modest-ui.c index a34aac5..36f4f49 100644 --- a/src/gtk-glade/modest-ui.c +++ b/src/gtk-glade/modest-ui.c @@ -44,7 +44,7 @@ static void modest_ui_finalize (GObject *obj); static void modest_ui_window_destroy (GtkWidget *win, GdkEvent *event, gpointer data); static void modest_ui_last_window_closed (GObject *obj, gpointer data); -static void on_password_requested (ModestTnyAccountStore *account_store, const gchar *account_name, gpointer user_data); +gchar *on_password_requested (TnyAccountIface *, const gchar *, gboolean *); /* list my signals */ enum { @@ -92,12 +92,6 @@ modest_ui_class_init (ModestUIClass *klass) g_type_class_add_private (gobject_class, sizeof(ModestUIPrivate)); - /* signal definitions go here, e.g.: */ -/* signals[MY_SIGNAL_1] = */ -/* g_signal_new ("my_signal_1",....); */ -/* signals[MY_SIGNAL_2] = */ -/* g_signal_new ("my_signal_2",....); */ -/* etc. */ } @@ -141,6 +135,20 @@ modest_ui_finalize (GObject *obj) } +static void +on_accounts_reloaded (ModestTnyAccountStore *account_store, gpointer user_data) +{ + ModestUIPrivate *priv = user_data; + + g_return_if_fail (MODEST_IS_TNY_FOLDER_TREE_VIEW (priv->folder_view)); + g_return_if_fail (MODEST_IS_TNY_HEADER_TREE_VIEW (priv->header_view)); + + modest_tny_header_tree_view_set_folder (priv->header_view, NULL); + + modest_tny_folder_tree_view_update_model(priv->folder_view, account_store); +} + + GObject* modest_ui_new (ModestConf *modest_conf) { @@ -162,7 +170,7 @@ modest_ui_new (ModestConf *modest_conf) g_warning ("could not create ModestAccountMgr instance"); g_object_unref (obj); return NULL; - } + } modest_id_mgr = MODEST_IDENTITY_MGR(modest_identity_mgr_new (modest_conf)); if (!modest_id_mgr) { @@ -176,10 +184,13 @@ modest_ui_new (ModestConf *modest_conf) if (!account_store_iface) { g_warning ("could not initialze ModestTnyAccountStore"); return NULL; - } - g_signal_connect (account_store_iface, "password_requested", - G_CALLBACK(on_password_requested), - NULL); + } + + modest_tny_account_store_set_get_pass_func(MODEST_TNY_ACCOUNT_STORE(account_store_iface), + on_password_requested); + + g_signal_connect (account_store_iface, "accounts_reloaded", + G_CALLBACK(on_accounts_reloaded), priv); glade_init (); priv->glade_xml = glade_xml_new (MODEST_GLADE, NULL, NULL); @@ -224,17 +235,19 @@ modest_ui_last_window_closed (GObject *obj, gpointer data) } -static void -on_password_requested (ModestTnyAccountStore *account_store, - const gchar *account_name, gpointer user_data) -{ +gchar * +on_password_requested (TnyAccountIface *account, + const gchar *prompt, + gboolean *cancel) { GtkWidget *passdialog; GtkWidget *vbox; + GtkWidget *infoscroll; GtkWidget *infolabel; GtkWidget *passentry; - gint retval; - const gchar *infostring = g_strconcat(_("Please enter the password for "), account_name, ".", NULL); + GtkTextBuffer *infobuffer; + gchar *retval; + gint result; passdialog = gtk_dialog_new_with_buttons(_("Password"), NULL, @@ -247,31 +260,38 @@ on_password_requested (ModestTnyAccountStore *account_store, vbox = gtk_vbox_new(FALSE, 0); - infolabel = gtk_label_new(infostring); + infobuffer = gtk_text_buffer_new (NULL); + gtk_text_buffer_set_text(infobuffer, prompt, -1); + infoscroll = gtk_scrolled_window_new(NULL, NULL); + infolabel = gtk_text_view_new_with_buffer(infobuffer); + gtk_container_add(GTK_CONTAINER(infoscroll), infolabel); passentry = gtk_entry_new(); + gtk_entry_set_visibility(GTK_ENTRY(passentry), FALSE); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), infolabel, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), infoscroll, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), passentry, FALSE, FALSE, 0); gtk_widget_show_all(passdialog); - retval = gtk_dialog_run (GTK_DIALOG(passdialog)); - - switch (retval) { - case GTK_RESPONSE_ACCEPT: - modest_account_mgr_set_server_account_string(modest_tny_account_store_get_accout_mgr(account_store), - account_name, - "password", - gtk_entry_get_text(GTK_ENTRY(passentry)), - NULL); - break; - case GTK_RESPONSE_CANCEL: - /* FIXME: - * What happens, if canceled?" - */ - break; + result = gtk_dialog_run (GTK_DIALOG(passdialog)); + + switch (result) { + case GTK_RESPONSE_ACCEPT: + retval = g_strdup(gtk_entry_get_text(GTK_ENTRY(passentry))); + *cancel=FALSE; + break; + default: + retval = g_strdup("");; + *cancel=TRUE; + break; + } + + gtk_widget_hide(passdialog); + gtk_widget_destroy(passdialog); + while (gtk_events_pending()){ + gtk_main_iteration(); } - gtk_widget_destroy (passdialog); + return retval; } @@ -290,8 +310,6 @@ on_account_selector_selection_changed (GtkWidget *widget, gpointer user_data) account_name="empty"; } - g_message("Value: '%s'\n", account_name); - free(account_name); }