}
}
-void
+void
modest_platform_on_new_headers_received (TnyList *header_list,
gboolean show_visual)
{
- g_return_if_fail (TNY_IS_LIST(header_list));
+ g_return_if_fail (TNY_IS_LIST (header_list));
- if (tny_list_get_length(header_list) == 0) {
- g_warning ("%s: header list is empty", __FUNCTION__);
+ if (tny_list_get_length (header_list) < 1)
return;
- }
- if (!show_visual) {
- modest_platform_push_email_notification ();
- /* We do a return here to avoid indentation with an else */
+ /* If the window is in the foreground don't do anything */
+ if (hildon_program_get_is_topmost (hildon_program_get_instance ()))
return;
- }
#ifdef MODEST_HAVE_HILDON_NOTIFY
+ /* For any other case issue a notification */
HildonNotification *notification;
TnyIterator *iter;
GSList *notifications_list = NULL;
/* We don't listen for the "closed" signal, because we
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 (url);
notifications_list, MODEST_CONF_VALUE_INT, NULL);
g_slist_free (notifications_list);
-
+
#endif /*MODEST_HAVE_HILDON_NOTIFY*/
}
}
}
-GtkWidget *
-modest_platform_create_folder_view (TnyFolderStoreQuery *query)
+static GtkWidget *
+modest_platform_create_folder_view_full (TnyFolderStoreQuery *query, gboolean do_refresh)
{
- GtkWidget *widget = modest_folder_view_new (query);
+ GtkWidget *widget = modest_folder_view_new_full (query, do_refresh);
/* Show one account by default */
modest_folder_view_set_style (MODEST_FOLDER_VIEW (widget),
return widget;
}
+GtkWidget *
+modest_platform_create_folder_view (TnyFolderStoreQuery *query)
+{
+ return modest_platform_create_folder_view_full (query, TRUE);
+}
+
void
banner_finish (gpointer data, GObject *object)
{
GtkWidget *action_button;
GtkWidget *image = NULL;
TnyAccount *account;
- gchar *account_name = NULL;
+ gchar *account_name = NULL, *short_name = NULL;
action_button = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_ACTION_BUTTON));
g_object_unref (account);
/* Set title of button: account or folder name */
- if (TNY_IS_FOLDER (folder_store)) {
- hildon_button_set_title (HILDON_BUTTON (action_button),
- tny_folder_get_name (TNY_FOLDER (folder_store)));
- } else {
- hildon_button_set_title (HILDON_BUTTON (action_button), account_name);
- }
+ if (TNY_IS_FOLDER (folder_store))
+ short_name = folder_store_get_display_name (folder_store);
+ else
+ short_name = g_strdup (account_name);
+
+ hildon_button_set_title (HILDON_BUTTON (action_button), short_name);
/* Set value of button, folder full name */
if (TNY_IS_CAMEL_FOLDER (folder_store)) {
- gchar *full_name = g_strconcat (account_name, MOVE_TO_FOLDER_SEPARATOR,
- tny_camel_folder_get_full_name (TNY_CAMEL_FOLDER (folder_store)),
- NULL);
+ const gchar *camel_full_name;
+ gchar *last_slash, *full_name;
+
+ camel_full_name = tny_camel_folder_get_full_name (TNY_CAMEL_FOLDER (folder_store));
+ last_slash = g_strrstr (camel_full_name, "/");
+ if (last_slash) {
+ gchar *prefix = g_strndup (camel_full_name, last_slash - camel_full_name + 1);
+ full_name = g_strconcat (account_name, MOVE_TO_FOLDER_SEPARATOR, prefix, short_name, NULL);
+ g_free (prefix);
+ } else {
+ full_name = g_strconcat (account_name, MOVE_TO_FOLDER_SEPARATOR,
+ short_name,
+ NULL);
+ }
hildon_button_set_value (HILDON_BUTTON (action_button), full_name);
g_free (full_name);
}
g_free (account_name);
+ g_free (short_name);
/* Set image for the button */
image = get_image_for_folder_store (folder_store, MODEST_ICON_SIZE_BIG);
on_move_to_dialog_action_clicked (GtkButton *selection,
gpointer user_data)
{
- TnyFolderStore *selected;
GtkWidget *dialog;
- GtkWidget *folder_view;
gboolean showing_folders;
dialog = (GtkWidget *) user_data;
showing_folders = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS));
if (showing_folders) {
+ TnyFolderStore *selected;
+ GtkWidget *folder_view;
+
folder_view = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW));
selected = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
- if (selected)
+ if (selected) {
gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+ g_object_unref (selected);
+ }
}
}
+static void
+move_to_dialog_activity_changed (ModestFolderView *folder_view, gboolean activity, GtkDialog *dialog)
+{
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (dialog), activity?1:0);
+}
+
GtkWidget *
modest_platform_create_move_to_dialog (GtkWindow *parent_window,
GtkWidget **folder_view)
top_vbox = gtk_vbox_new (FALSE, MODEST_MARGIN_HALF);
/* Create folder view */
- *folder_view = modest_platform_create_folder_view (NULL);
+ *folder_view = modest_platform_create_folder_view_full (NULL, FALSE);
+ g_signal_connect (G_OBJECT (*folder_view), "activity-changed", G_CALLBACK (move_to_dialog_activity_changed),
+ dialog);
modest_folder_view_set_cell_style (MODEST_FOLDER_VIEW (*folder_view),
MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT);