#include <tny-msg.h>
#include <tny-header.h>
#include <tny-header-view.h>
-#include <tny-folder-stats.h>
+#include <tny-folder-store.h>
#include <modest-tny-folder.h>
+#include <modest-tny-account.h>
#include <modest-text-utils.h>
-
+#include <string.h> /* for strlen */
static void modest_details_dialog_set_header_default (ModestDetailsDialog *self,
TnyHeader *header);
/* Create value */
value_w = gtk_label_new (value);
gtk_label_set_line_wrap (GTK_LABEL (value_w), TRUE);
+ gtk_label_set_line_wrap_mode (GTK_LABEL (value_w), PANGO_WRAP_WORD_CHAR);
gtk_misc_set_alignment (GTK_MISC (value_w), 0.0, 0.0);
gtk_label_set_justify (GTK_LABEL (value_w), GTK_JUSTIFY_LEFT);
gchar *size_s;
TnyFolder *folder;
TnyFolderType folder_type;
-
+#define DATE_TIME_BUFFER_SIZE 128
+ gchar date_time_buffer [DATE_TIME_BUFFER_SIZE];
+
/* Set window title & Add close button */
gtk_window_set_title (GTK_WINDOW (self), _("mcen_ti_message_properties"));
gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_close"), GTK_RESPONSE_CLOSE);
folder_type = modest_tny_folder_guess_folder_type (folder);
g_object_unref (folder);
+ g_return_if_fail (folder_type != TNY_FOLDER_TYPE_INVALID);
+
/* Get header data */
from = g_strdup (tny_header_get_from (header));
to = g_strdup (tny_header_get_to (header));
if (cc == NULL)
cc = g_strdup ("");
- /* Add from and subject */
+ /* Add from and subject for all folders */
modest_details_dialog_add_data (self, _("mcen_fi_message_properties_from"), from);
modest_details_dialog_add_data (self, _("mcen_fi_message_properties_subject"), subject);
- /* Set received (optional) */
- if ((folder_type != TNY_FOLDER_TYPE_SENT) &&
+
+ /* for inbox, user-created folders and archive: Received */
+ if (received && (folder_type != TNY_FOLDER_TYPE_SENT) &&
(folder_type != TNY_FOLDER_TYPE_DRAFTS) &&
(folder_type != TNY_FOLDER_TYPE_OUTBOX)) {
- gchar *received_s;
+
+ modest_text_utils_strftime (date_time_buffer, DATE_TIME_BUFFER_SIZE, "%x %X",
+ received);
+ modest_details_dialog_add_data (self, _("mcen_fi_message_properties_received"),
+ date_time_buffer);
+ }
- received_s = modest_text_utils_get_display_date (received);
- if (received_s == NULL)
- received_s = g_strdup (received_s);
- modest_details_dialog_add_data (self, _("mcen_fi_message_properties_received"), received_s);
- g_free (received_s);
+ /* for outbox, drafts: Modified: (_created) */
+ if ((folder_type == TNY_FOLDER_TYPE_DRAFTS) ||
+ (folder_type == TNY_FOLDER_TYPE_OUTBOX) ||
+ (folder_type == TNY_FOLDER_TYPE_SENT)) {
+ modest_text_utils_strftime (date_time_buffer, DATE_TIME_BUFFER_SIZE, "%x %X",
+ received);
+ modest_details_dialog_add_data (self, _("mcen_fi_message_properties_created"),
+ date_time_buffer);
}
- /* Set date sent (optional) */
- if ((folder_type != TNY_FOLDER_TYPE_DRAFTS)&&
+ /* for everyting except outbox, drafts: Sent */
+ if (sent && (folder_type != TNY_FOLDER_TYPE_DRAFTS)&&
(folder_type != TNY_FOLDER_TYPE_OUTBOX)) {
- gchar *sent_s;
-
- sent_s = modest_text_utils_get_display_date (sent);
- if (sent_s == NULL)
- sent_s = g_strdup (sent_s);
- modest_details_dialog_add_data (self, _("mcen_fi_message_properties_sent"), sent_s);
- g_free (sent_s);
+
+ modest_text_utils_strftime (date_time_buffer, DATE_TIME_BUFFER_SIZE, "%x %X",
+ sent);
+ modest_details_dialog_add_data (self, _("mcen_fi_message_properties_sent"),
+ date_time_buffer);
}
-
+
/* Set To and CC */
modest_details_dialog_add_data (self, _("mcen_fi_message_properties_to"), to);
- modest_details_dialog_add_data (self, _("mcen_fi_message_properties_cc"), cc);
+
+ /* only show cc when it's there */
+ if (cc && strlen(cc) > 0)
+ modest_details_dialog_add_data (self, _("mcen_fi_message_properties_cc"), cc);
/* Set size */
if (size <= 0)
modest_details_dialog_set_folder_default (ModestDetailsDialog *self,
TnyFolder *folder)
{
- TnyFolderStats *stats;
- gchar *count, *size_s;
- gint size;
+ gchar *count_s, *size_s, *name = NULL;
+ gint size, count;
+
+
+ g_return_if_fail (folder && TNY_IS_FOLDER (folder));
+ g_return_if_fail (modest_tny_folder_guess_folder_type (folder)
+ != TNY_FOLDER_TYPE_INVALID);
/* Set window title */
gtk_window_set_title (GTK_WINDOW (self), _("mcen_ti_folder_properties"));
- gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_folder_properties_close"), GTK_RESPONSE_CLOSE);
+ gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_close"), GTK_RESPONSE_CLOSE);
- /* Get stats */
- stats = tny_folder_get_stats (folder);
- count = g_strdup_printf ("%d", tny_folder_stats_get_all_count (stats));
- /* Format the size */
- size = tny_folder_stats_get_local_size (stats);
+ /* Get data. We use our function because it's recursive */
+ if (TNY_IS_FOLDER (folder)) {
+ count = tny_folder_get_all_count (TNY_FOLDER (folder));
+ size = tny_folder_get_local_size (TNY_FOLDER (folder));
+ } else {
+ count = modest_tny_folder_store_get_message_count (TNY_FOLDER_STORE (folder));
+ size = modest_tny_folder_store_get_local_size (TNY_FOLDER_STORE (folder));
+ }
+
+ /* Format count and size */
+ count_s = g_strdup_printf ("%d", count);
if (size <= 0)
size_s = g_strdup (_("mcen_va_message_properties_size_noinfo"));
else
size_s = modest_text_utils_get_display_size (size);
- modest_details_dialog_add_data (self, _("mcen_fi_folder_properties_foldername"),
- tny_folder_get_name (folder));
- modest_details_dialog_add_data (self, _("mcen_fi_folder_properties_messages"), count);
+ /* Different names for the local folders */
+ if (modest_tny_folder_is_local_folder (folder)) {
+ gint type = modest_tny_folder_get_local_or_mmc_folder_type (folder);
+ if (type != TNY_FOLDER_TYPE_UNKNOWN)
+ name = g_strdup(modest_local_folder_info_get_type_display_name (type));
+ }
+
+ if (!name)
+ name = g_strdup (tny_folder_get_name (folder));
+
+ modest_details_dialog_add_data (self, _("mcen_fi_folder_properties_foldername"), name);
+ modest_details_dialog_add_data (self, _("mcen_fi_folder_properties_messages"), count_s);
modest_details_dialog_add_data (self, _("mcen_fi_folder_properties_size"), size_s);
/* Frees */
+ g_free (name);
g_free (size_s);
- g_free (count);
- g_object_unref (stats);
+ g_free (count_s);
}
static void