{
GtkWidget *main_menu;
GtkWidget *menubar;
- GList *iter;
+ GList *children, *iter;
g_return_val_if_fail (ui_manager, NULL);
/* Get the menubar from the UI manager */
menubar = gtk_ui_manager_get_widget (ui_manager, "/MenuBar");
- iter = gtk_container_get_children (GTK_CONTAINER (menubar));
+ iter = children = gtk_container_get_children (GTK_CONTAINER (menubar));
while (iter) {
GtkWidget *menu;
iter = g_list_next (iter);
}
+ g_list_free (children);
return main_menu;
}
static void
on_camel_account_get_supported_secure_authentication (
TnyCamelAccount *self, gboolean cancelled,
- TnyList *auth_types, GError **err,
+ TnyList *auth_types, GError *err,
gpointer user_data)
{
-
ModestGetSupportedAuthInfo *info = (ModestGetSupportedAuthInfo*)user_data;
g_return_if_fail (info);
+
/* Free everything if the actual action was canceled */
if (info->cancel)
}
else
{
- /* TODO: Why is this a pointer to a pointer? We are not supposed to
- * set it, are we? */
- if(err != NULL && *err != NULL)
+ if (err)
{
- if(info->error != NULL) g_error_free(info->error);
- info->error = g_error_copy(*err);
+ if (info->error) {
+ g_error_free (info->error);
+ info->error = NULL;
+ }
+
+ info->error = g_error_copy (err);
}
if (!auth_types) {
- printf ("DEBUG: %s: auth_types is NULL.\n", __FUNCTION__);
+ g_warning ("DEBUG: %s: auth_types is NULL.\n", __FUNCTION__);
}
- else
+ else if (tny_list_get_length(auth_types) == 0) {
+ g_warning ("DEBUG: %s: auth_types is an empty TnyList.\n", __FUNCTION__);
+ } else
{
ModestPairList* pairs = modest_protocol_info_get_auth_protocol_pair_list ();
}
printf("DEBUG: finished\n");
-
+
/* Close the dialog in a main thread */
g_idle_add(on_idle_secure_auth_finished, info);
}
}
}
-
-typedef struct
-{
- GMainLoop* loop;
-} UserData;
-
-static UserData *user_data = NULL;
-
-static void
-on_account_online (TnyCamelAccount *account, GError *err)
-{
- printf ("DEBUGa1: %s\n", __FUNCTION__);
-
- if (err) {
- printf("DEBUG: %s: error=\n %s\n", __FUNCTION__, err->message);
- }
-
- /* Allow the function that requested this callback to continue: */
- /* TODO: Tinymail should really give us user_data with this callback. */
- if (user_data && user_data->loop)
- g_main_loop_quit (user_data->loop);
-}
-
GList*
modest_maemo_utils_get_supported_secure_authentication_methods (ModestTransportStoreProtocol proto,
const gchar* hostname, gint port, const gchar* username, GtkWindow *parent_window, GError** error)
tny_camel_account_set_session (TNY_CAMEL_ACCOUNT(tny_account), session);
- /* This blocks on the result: */
- /* TODO: Fix tinymail to take user_data for the callback instead of using one static instance: */
- if (user_data) {
- g_slice_free (UserData, user_data);
- user_data = NULL;
- }
-
- user_data = g_slice_new0 (UserData);
- user_data->loop = g_main_loop_new (NULL, FALSE /* not running */);
-
- /* We get a warning if we don't do use tny_camel_account_set_online():
- * GLIB CRITICAL ** camel-lite - camel_service_query_auth_types: assertion `service != NULL' failed.
- */
- tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (tny_account), TRUE, &on_account_online);
- printf ("DEBUGa2: %s\n", __FUNCTION__);
-
- /* This main loop will run until the idle handler has stopped it: */
- printf ("DEBUG: %s: before g_main_loop_run()\n", __FUNCTION__);
- GDK_THREADS_LEAVE();
- g_main_loop_run (user_data->loop);
- GDK_THREADS_ENTER();
- printf ("DEBUG: %s: after g_main_loop_run()\n", __FUNCTION__);
- g_main_loop_unref (user_data->loop);
- /* g_main_context_unref (context); */
-
- g_slice_free (UserData, user_data);
- user_data = NULL;
-
-
/* Ask camel to ask the server, asynchronously: */
ModestGetSupportedAuthInfo *info = g_slice_new (ModestGetSupportedAuthInfo);
info->result = NULL;
gtk_dialog_run (GTK_DIALOG (info->dialog));
gtk_widget_destroy(info->dialog);
-
+
GList *result = info->result;
if (!info->cancel)
{
- if(info->error != NULL)
+ if (info->error) {
+ gchar * debug_url_string = tny_account_get_url_string (tny_account);
+ g_warning ("DEBUG: %s:\n error: %s\n account url: %s", __FUNCTION__, info->error->message,
+ debug_url_string);
+ g_free (debug_url_string);
+
g_propagate_error(error, info->error);
+ info->error = NULL;
+ }
g_slice_free (ModestGetSupportedAuthInfo, info);
info = NULL;
}
-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)
return FALSE; /* Don't call this again. */
}
-void modest_maemo_show_information_note_in_main_context_and_forget (GtkWindow *parent_window, const gchar* message)
+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;
}
#endif
-void modest_maemo_show_dialog_and_forget (GtkWindow *parent_window, GtkDialog *dialog)
+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);
+ g_signal_connect_swapped (dialog,
+ "response",
+ G_CALLBACK (gtk_widget_destroy),
+ dialog);
+
gtk_widget_show (GTK_WIDGET (dialog));
}
void
-modest_maemo_set_thumbable_scrollbar (GtkScrolledWindow *win, gboolean thumbable)
+modest_maemo_set_thumbable_scrollbar (GtkScrolledWindow *win,
+ gboolean thumbable)
{
g_return_if_fail (GTK_IS_SCROLLED_WINDOW(win));
#ifdef MODEST_HAVE_HILDON1_WIDGETS
}
}
+
+
+
+FILE*
+modest_maemo_open_mcc_mapping_file (void)
+{
+ FILE* result;
+
+ /* Load the file one line at a time: */
+#ifdef MODEST_HILDON_VERSION_0
+ const gchar* filepath = PROVIDER_DATA_DIR "/mcc_mapping";
+#else
+ const gchar* filepath = "/usr/share/operator-wizard/mcc_mapping";
+#endif /*MODEST_HILDON_VERSION_0*/
+
+ result = fopen (filepath, "r");
+ if (!result)
+ g_printerr ("modest: failed to open mcc mapping file");
+
+ return result;
+}
+
+