X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-maemo-utils.c;h=d1915fdfb5c483b056c3b174ec67f9dff93476fe;hp=518fbd14ea627b317a16cd0095bd2f11820eb9ef;hb=40a8f5cbe03bd040fe3403dbfa6806df4fb6bc8a;hpb=832c77270a9a6f2ecbf7f42aeda724bffdc29749 diff --git a/src/maemo/modest-maemo-utils.c b/src/maemo/modest-maemo-utils.c index 518fbd1..d1915fd 100644 --- a/src/maemo/modest-maemo-utils.c +++ b/src/maemo/modest-maemo-utils.c @@ -45,6 +45,7 @@ #include "modest-hildon-includes.h" #include "modest-maemo-utils.h" +#include "modest-platform.h" /* * For getting and tracking the Bluetooth name @@ -203,6 +204,11 @@ modest_maemo_utils_get_device_name (void) gboolean modest_maemo_utils_folder_writable (const gchar *filename) { + g_return_val_if_fail (filename, FALSE); + + if (!filename) + return FALSE; + if (g_strncasecmp (filename, "obex", 4) != 0) { GnomeVFSFileInfo folder_info; gchar *folder; @@ -324,7 +330,14 @@ on_camel_account_get_supported_secure_authentication ( GList *result = NULL; TnyIterator* iter = tny_list_create_iterator(auth_types); while (!tny_iterator_is_done(iter)) { - const gchar *auth_name = tny_pair_get_name(TNY_PAIR(tny_iterator_get_current(iter))); + TnyPair *pair = TNY_PAIR(tny_iterator_get_current(iter)); + const gchar *auth_name = NULL; + if (pair) { + auth_name = tny_pair_get_name(pair); + g_object_unref (pair); + pair = NULL; + } + printf("DEBUG: %s: auth_name=%s\n", __FUNCTION__, auth_name); ModestPair *matching = modest_pair_list_find_by_first_as_string (pairs, auth_name); @@ -368,6 +381,10 @@ GList* modest_maemo_utils_get_supported_secure_authentication_methods (ModestTra { g_return_val_if_fail (proto != MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN, NULL); + /* We need a connection to get the capabilities; */ + if (!modest_platform_connect_and_wait (GTK_WINDOW (parent_window), NULL)) + return NULL; + /* result = g_list_append (result, GINT_TO_POINTER (MODEST_PROTOCOL_AUTH_CRAMMD5)); */ @@ -390,7 +407,6 @@ GList* modest_maemo_utils_get_supported_secure_authentication_methods (ModestTra tny_account = NULL; } - /* TODO: Handle connection requests. */ if (!tny_account) { g_printerr ("%s could not create tny account.", __FUNCTION__); @@ -525,6 +541,55 @@ modest_maemo_show_information_note_and_forget (GtkWindow *parent_window, const g gtk_widget_show (GTK_WIDGET (dialog)); } +#if 0 +static void +on_hide (GtkDialog *dialog, gpointer user_data) +{ + /* Just destroy the dialog: */ + gtk_widget_destroy (GTK_WIDGET (dialog)); +} +#endif + +#if 0 /* Not used now. */ +/* user_data for the idle callback: */ +typedef struct +{ + GtkWindow *parent_window; + gchar *message; +} ModestIdleNoteInfo; + +static gboolean +on_idle_show_information(gpointer user_data) +{ + ModestIdleNoteInfo *info = (ModestIdleNoteInfo*)user_data; + + modest_maemo_show_information_note_and_forget (info->parent_window, info->message); + + g_free (info->message); + g_slice_free (ModestIdleNoteInfo, info); + + return FALSE; /* Don't call this again. */ +} + +void modest_maemo_show_information_note_in_main_context_and_forget (GtkWindow *parent_window, const gchar* message) +{ + ModestIdleNoteInfo *info = g_slice_new (ModestIdleNoteInfo); + info->parent_window = parent_window; + info->message = g_strdup (message); + + g_idle_add (on_idle_show_information, info); +} +#endif + +void modest_maemo_show_dialog_and_forget (GtkWindow *parent_window, GtkDialog *dialog) +{ + gtk_window_set_transient_for (GTK_WINDOW (dialog), parent_window); + + /* Destroy the dialog when it is closed: */ + g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (on_response), NULL); + gtk_widget_show (GTK_WIDGET (dialog)); +} + void @@ -535,3 +600,26 @@ modest_maemo_set_thumbable_scrollbar (GtkScrolledWindow *win, gboolean thumbable hildon_helper_set_thumb_scrollbar (win, thumbable); #endif /* MODEST_HAVE_HILDON1_WIDGETS */ } + +void +modest_maemo_toggle_action_set_active_block_notify (GtkToggleAction *action, gboolean value) +{ + GSList *proxies = NULL; + + g_return_if_fail (GTK_IS_TOGGLE_ACTION (action)); + + for (proxies = gtk_action_get_proxies (GTK_ACTION (action)); + proxies != NULL; proxies = g_slist_next (proxies)) { + GtkWidget *widget = (GtkWidget *) proxies->data; + gtk_action_block_activate_from (GTK_ACTION (action), widget); + } + + gtk_toggle_action_set_active (action, value); + + for (proxies = gtk_action_get_proxies (GTK_ACTION (action)); + proxies != NULL; proxies = g_slist_next (proxies)) { + GtkWidget *widget = (GtkWidget *) proxies->data; + gtk_action_unblock_activate_from (GTK_ACTION (action), widget); + } + +}