New modest_platform_system_banner (show even if no windows visible)
[modest] / src / maemo / modest-platform.c
index 8df3cda..bb472f1 100644 (file)
@@ -103,19 +103,27 @@ on_modest_conf_update_interval_changed (ModestConf* self,
 static gboolean
 check_required_files (void)
 {
-       FILE *mcc_file = modest_utils_open_mcc_mapping_file (NULL);
+       FILE *mcc_file = modest_utils_open_mcc_mapping_file (FALSE,NULL);
        if (!mcc_file) {
                g_printerr ("modest: check for mcc file failed\n");
                return FALSE;
-       } else 
+       } else
                fclose (mcc_file);
-       
+
+
+       mcc_file = modest_utils_open_mcc_mapping_file (TRUE, NULL);
+       if (!mcc_file) {
+               g_printerr ("modest: check for mcc file (for LC_MESSAGES) failed\n");
+               return FALSE;
+       } else
+               fclose (mcc_file);
+
        if (access(MODEST_PROVIDER_DATA_FILE, R_OK) != 0 &&
            access(MODEST_FALLBACK_PROVIDER_DATA_FILE, R_OK) != 0) {
                g_printerr ("modest: cannot find providers data\n");
                return FALSE;
        }
-       
+
        return TRUE;
 }
 
@@ -336,7 +344,7 @@ modest_platform_activate_uri (const gchar *uri)
                        modest_window_mgr_get_main_window (modest_runtime_get_window_mgr(), FALSE);
                hildon_banner_show_information (parent ? GTK_WIDGET(parent): NULL, NULL,
                                                _("mcen_ib_unsupported_link"));
-               g_warning ("%s: cannot open uri '%s'", __FUNCTION__,uri);
+               g_debug ("%s: cannot open uri '%s'", __FUNCTION__,uri);
        } 
        
        return result;
@@ -1099,7 +1107,7 @@ modest_platform_set_update_interval (guint minutes)
         * because we will replace it: */
        if (alarm_cookie) {
                if (alarm_event_del(alarm_cookie) != 1)
-                       g_warning ("%s: alarm %d was not on the queue", __FUNCTION__, (int)alarm_cookie);
+                       g_debug ("%s: alarm %d was not on the queue", __FUNCTION__, (int)alarm_cookie);
                alarm_cookie = 0;
                modest_conf_set_int (conf, MODEST_CONF_ALARM_ID, 0, NULL);
        }
@@ -1244,28 +1252,24 @@ modest_platform_on_new_headers_received (GList *URI_list,
                                                   MODEST_CONF_NOTIFICATION_IDS, 
                                                   MODEST_CONF_VALUE_INT, NULL);
 
-       iter = header_list;
+       iter = URI_list;
        while (iter) {
-               gchar *display_address = NULL,  *summary = NULL;
-               const gchar *display_date;
+               gchar *display_address = NULL;
                gboolean first_notification = TRUE;
                gint notif_id;
-               gchar *str;
                ModestMsgNotificationData *data;
 
                data = (ModestMsgNotificationData *) iter->data;
 
-               /* constant string, don't free */
-               display_date = modest_text_utils_get_display_date (tny_header_get_date_received (header));
-
                display_address = g_strdup (data->from);
                modest_text_utils_get_display_address (display_address); /* string is changed in-place */
 
-               summary = g_strdup_printf ("%s - %s", display_date, display_address);
-               notification = hildon_notification_new (summary,
+               notification = hildon_notification_new (display_address,
                                                        data->subject,
                                                        "qgn_list_messagin",
                                                        "email.arrive");
+               g_free (display_address);
+
                /* Add DBus action */
                hildon_notification_add_dbus_action(notification,
                                                    "default",
@@ -1274,7 +1278,7 @@ modest_platform_on_new_headers_received (GList *URI_list,
                                                    MODEST_DBUS_OBJECT,
                                                    MODEST_DBUS_IFACE,
                                                    MODEST_DBUS_METHOD_OPEN_MESSAGE,
-                                                   G_TYPE_STRING, data->url,
+                                                   G_TYPE_STRING, data->uri,
                                                    -1);
 
                /* Play sound if the user wants. Show the LED
@@ -1305,10 +1309,6 @@ modest_platform_on_new_headers_received (GList *URI_list,
                   don't care about if the notification was removed or
                   not to store the list in gconf */
 
-               /* Free & carry on */
-               g_free (display_address);
-               g_free (summary);
-
                iter = g_list_next (iter);
        }
 
@@ -1461,7 +1461,7 @@ modest_platform_information_banner (GtkWidget *parent,
                                    const gchar *icon_name,
                                    const gchar *text)
 {
-       GtkWidget *banner, *banner_parent = NULL;
+       GtkWidget *banner_parent = NULL;
        ModestWindowMgr *mgr = modest_runtime_get_window_mgr ();
 
        if (modest_window_mgr_get_num_windows (mgr) == 0)
@@ -1484,8 +1484,25 @@ modest_platform_information_banner (GtkWidget *parent,
                        return;
        }
 
+       modest_platform_system_banner (banner_parent, icon_name, text);
 
-       banner = hildon_banner_show_information (banner_parent, icon_name, text);
+}
+
+void
+modest_platform_system_banner (GtkWidget *parent,
+                                   const gchar *icon_name,
+                                   const gchar *text)
+{
+       GtkWidget *banner = NULL;
+       ModestWindowMgr *mgr = modest_runtime_get_window_mgr ();
+
+
+       if (parent && GTK_IS_WINDOW (parent)) {
+               if (!gtk_window_is_active (GTK_WINDOW (parent)))
+                       parent = NULL;
+       }
+
+       banner = hildon_banner_show_information (parent, icon_name, text);
 
        modest_window_mgr_register_banner (mgr);
        g_object_ref (mgr);
@@ -1672,8 +1689,8 @@ modest_platform_run_certificate_confirmation_dialog (const gchar* server_name,
        ModestWindow *main_win;
        
        if (!modest_window_mgr_main_window_exists (modest_runtime_get_window_mgr())) {
-               g_warning ("%s: don't show dialogs if there's no main window; assuming 'Cancel'",
-                          __FUNCTION__);
+               g_debug ("%s: don't show dialogs if there's no main window; assuming 'Cancel'",
+                        __FUNCTION__);
                return FALSE;
        }
 
@@ -1718,7 +1735,7 @@ modest_platform_run_alert_dialog (const gchar* prompt,
        ModestWindow *main_win; 
 
        if (!modest_window_mgr_main_window_exists (modest_runtime_get_window_mgr())) {
-               g_warning ("%s:\n'%s'\ndon't show dialogs if there's no main window;"
+               g_debug ("%s:\n'%s'\ndon't show dialogs if there's no main window;"
                           " assuming 'Cancel' for questions, 'Ok' otherwise", prompt, __FUNCTION__);
                return is_question ? FALSE : TRUE;
        }