X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-maemo-utils.c;h=6d50ee181155e65adb2eab198927c0d1b0769cd4;hp=6ee96b315e3c31979251038bcde5e410455be778;hb=6fb1323bf79f5fe514da3bbb44130fdfdbd8e46f;hpb=f84423c4cbab91d4f479388e1efcb5f31a8e6c9a diff --git a/src/maemo/modest-maemo-utils.c b/src/maemo/modest-maemo-utils.c index 6ee96b3..6d50ee1 100644 --- a/src/maemo/modest-maemo-utils.c +++ b/src/maemo/modest-maemo-utils.c @@ -75,7 +75,7 @@ modest_maemo_utils_menubar_to_menu (GtkUIManager *ui_manager) { GtkWidget *main_menu; GtkWidget *menubar; - GList *iter; + GList *children, *iter; g_return_val_if_fail (ui_manager, NULL); @@ -85,7 +85,7 @@ modest_maemo_utils_menubar_to_menu (GtkUIManager *ui_manager) /* 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; @@ -94,6 +94,7 @@ modest_maemo_utils_menubar_to_menu (GtkUIManager *ui_manager) iter = g_list_next (iter); } + g_list_free (children); return main_menu; } @@ -116,7 +117,6 @@ update_device_name_from_msg (DBusMessage *message) return; } dbus_message_iter_get_basic (&iter, &device_name); - g_warning ("update device name: %s", device_name); modest_conf_set_string (modest_runtime_get_conf(), MODEST_CONF_DEVICE_NAME, device_name, NULL); @@ -242,11 +242,12 @@ modest_maemo_utils_file_exists (const gchar *filename) } TnyFsStream * -modest_maemo_utils_create_temp_stream (const gchar *orig_name, gchar **path) +modest_maemo_utils_create_temp_stream (const gchar *orig_name, const gchar *hash_base, gchar **path) { gint fd; gchar *filepath = NULL; gchar *tmpdir; + guint hash_number; /* hmmm... maybe we need a modest_text_utils_validate_file_name? */ g_return_val_if_fail (orig_name || strlen(orig_name) == 0, NULL); @@ -263,8 +264,13 @@ modest_maemo_utils_create_temp_stream (const gchar *orig_name, gchar **path) } /* make a random subdir under /tmp or /var/tmp */ - tmpdir = g_strdup_printf ("%s/%d", g_get_tmp_dir (), (guint)random()); - if (g_mkdir (tmpdir, 0755) == -1) { + if (hash_base != NULL) { + hash_number = g_str_hash (hash_base); + } else { + hash_number = (guint) random (); + } + tmpdir = g_strdup_printf ("%s/%u", g_get_tmp_dir (), hash_number); + if ((g_access (tmpdir, R_OK) == -1) && (g_mkdir (tmpdir, 0755) == -1)) { g_warning ("%s: failed to create dir '%s': %s", __FUNCTION__, tmpdir, g_strerror(errno)); g_free (tmpdir); @@ -325,12 +331,12 @@ on_idle_secure_auth_finished (gpointer user_data) 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) @@ -342,18 +348,22 @@ on_camel_account_get_supported_secure_authentication ( } 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 (); @@ -385,7 +395,7 @@ on_camel_account_get_supported_secure_authentication ( } printf("DEBUG: finished\n"); - + /* Close the dialog in a main thread */ g_idle_add(on_idle_secure_auth_finished, info); } @@ -494,12 +504,19 @@ modest_maemo_utils_get_supported_secure_authentication_methods (ModestTransportS 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; @@ -553,23 +570,6 @@ modest_maemo_utils_setup_images_filechooser (GtkFileChooser *chooser) } -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) @@ -600,7 +600,9 @@ on_idle_show_information(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; @@ -610,19 +612,26 @@ void modest_maemo_show_information_note_in_main_context_and_forget (GtkWindow *p } #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 @@ -652,3 +661,26 @@ modest_maemo_toggle_action_set_active_block_notify (GtkToggleAction *action, gbo } } + + + +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; +} + +