X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-maemo-utils.c;h=140e2f3179c7461179aff562ccbd66b139632446;hb=2ead225b46b1b43497890b6a040524fa27144448;hp=b9f89d78aef56be70f091a8e384f625c1670ad3b;hpb=81307d447e9fa67d5df56fcd36ea908d993157d0;p=modest diff --git a/src/hildon2/modest-maemo-utils.c b/src/hildon2/modest-maemo-utils.c index b9f89d7..140e2f3 100644 --- a/src/hildon2/modest-maemo-utils.c +++ b/src/hildon2/modest-maemo-utils.c @@ -57,6 +57,9 @@ /* Label child of a captioned */ #define CAPTIONED_LABEL_CHILD "captioned-label" +#ifdef MODEST_PLATFORM_MAEMO +#define INTERNAL_MMC_USB_MODE "/system/osso/af/internal-mmc-used-over-usb" +#endif static osso_context_t *__osso_context = NULL; /* urgh global */ @@ -64,18 +67,12 @@ osso_context_t * modest_maemo_utils_get_osso_context (void) { if (!__osso_context) - g_warning ("%s: __osso_context == NULL", __FUNCTION__); + __osso_context = osso_initialize(PACKAGE,PACKAGE_VERSION, + FALSE, NULL); return __osso_context; } -void -modest_maemo_utils_set_osso_context (osso_context_t *osso_context) -{ - g_return_if_fail (osso_context); - __osso_context = osso_context; -} - static void get_properties_cb (DBusMessage *message) { @@ -199,7 +196,10 @@ modest_maemo_utils_get_device_name (void) get_default_adapter_cb (conn, msg); dbus_message_unref (msg); } + dbus_message_unref (request); + if (dbus_error_is_set (&error)) + dbus_error_free (&error); } void @@ -212,14 +212,19 @@ modest_maemo_utils_setup_images_filechooser (GtkFileChooser *chooser) g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser)); - conf_folder = modest_conf_get_string (modest_runtime_get_conf (), MODEST_CONF_LATEST_INSERT_IMAGE_PATH, NULL); + conf_folder = modest_conf_get_string (modest_runtime_get_conf (), + MODEST_CONF_LATEST_INSERT_IMAGE_PATH, NULL); if (conf_folder && conf_folder[0] != '\0') { gtk_file_chooser_set_current_folder_uri (chooser, conf_folder); } else { gchar *images_folder; /* Set the default folder to images folder */ - images_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV), - MODEST_MAEMO_UTILS_DEFAULT_IMAGE_FOLDER, NULL); + images_folder = (gchar *) g_strdup(g_get_user_special_dir (G_USER_DIRECTORY_PICTURES)); + if (!images_folder) { + /* fallback */ + images_folder = g_build_filename (g_getenv (MODEST_MAEMO_UTILS_MYDOCS_ENV), + MODEST_MAEMO_UTILS_DEFAULT_IMAGE_FOLDER, NULL); + } gtk_file_chooser_set_current_folder (chooser, images_folder); g_free (images_folder); } @@ -508,14 +513,14 @@ modest_maemo_utils_select_attachments (GtkWindow *window, TnyList *att_list, gbo if (TNY_IS_MSG (part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (part)); filename = tny_header_dup_subject (header); - if ((filename == NULL) || (filename[0] == '\0')) { - g_free (filename); - filename = g_strdup (_("mail_va_no_subject")); - } g_object_unref (header); } else { filename = g_strdup (tny_mime_part_get_filename (part)); } + if ((filename == NULL) || (filename[0] == '\0')) { + g_free (filename); + filename = g_strdup (_("mail_va_no_subject")); + } gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, filename, 1, part, -1); attachments_added ++; @@ -570,3 +575,50 @@ modest_maemo_utils_select_attachments (GtkWindow *window, TnyList *att_list, gbo return result; } + +#ifdef MODEST_PLATFORM_MAEMO +gboolean +modest_maemo_utils_in_usb_mode () +{ + return modest_conf_get_bool (modest_runtime_get_conf (), INTERNAL_MMC_USB_MODE, NULL); +} +#endif + +void +modest_maemo_utils_scroll_pannable (HildonPannableArea *pannable, + gint horizontal, + gint vertical) +{ + gint h_pos = -1; + gint v_pos = -1; + + g_assert (pannable); + /* at atleast one of values have to be valid */ + g_return_if_fail (h_pos == -1 && v_pos == -1); + + if (horizontal != 0) { + GtkAdjustment *h_adj; + + h_adj = hildon_pannable_area_get_hadjustment (pannable); + g_return_if_fail (h_adj); + + h_pos = h_adj->value + h_adj->step_increment * horizontal; + if (horizontal > 0) { + h_pos += h_adj->page_size; + } + } + + if (vertical != 0) { + GtkAdjustment *v_adj; + + v_adj = hildon_pannable_area_get_vadjustment (pannable); + g_return_if_fail (v_adj); + + v_pos = v_adj->value + v_adj->step_increment * vertical; + if (vertical > 0) { + v_pos += v_adj->page_size; + } + } + + hildon_pannable_area_scroll_to (pannable, h_pos, v_pos); +}