#include "modest-hildon-includes.h"
#include "modest-maemo-utils.h"
+#include "modest-platform.h"
/*
* For getting and tracking the Bluetooth name
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;
}
static gboolean
-on_secure_auth_finished (gpointer user_data)
+on_idle_secure_auth_finished (gpointer user_data)
{
ModestGetSupportedAuthInfo *info = (ModestGetSupportedAuthInfo*)user_data;
/* Operation has finished, close the dialog. Control continues after
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);
printf("DEBUG: finished\n");
/* Close the dialog in a main thread */
- g_idle_add(on_secure_auth_finished, info);
+ g_idle_add(on_idle_secure_auth_finished, info);
}
gdk_threads_leave();
{
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));
*/
default:
tny_account = NULL;
}
+
if (!tny_account) {
g_printerr ("%s could not create tny account.", __FUNCTION__);
#endif
}
+
+static void
+on_response (GtkDialog *dialog, gint response, gpointer user_data)
+{
+ /* Just destroy the dialog: */
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+}
+
+void
+modest_maemo_show_information_note_and_forget (GtkWindow *parent_window, const gchar* message)
+{
+ GtkDialog *dialog = GTK_DIALOG (hildon_note_new_information (parent_window, message));
+
+ /* 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));
+}
+
+#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
+modest_maemo_set_thumbable_scrollbar (GtkScrolledWindow *win, gboolean thumbable)
+{
+ g_return_if_fail (GTK_IS_SCROLLED_WINDOW(win));
+#ifdef MODEST_HAVE_HILDON1_WIDGETS
+ 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);
+ }
+
+}