toplevel = gtk_widget_get_toplevel (GTK_WIDGET (recpt_editor));
- contact_model = osso_abook_contact_model_new ();
if (!open_addressbook ()) {
if (contact_model) {
g_object_unref (contact_model);
}
return;
}
+ contact_model = osso_abook_contact_model_new ();
contact_view = osso_abook_contact_selector_new_basic (contact_model);
osso_abook_contact_selector_set_minimum_selection (OSSO_ABOOK_CONTACT_SELECTOR (contact_view), 1);
static gboolean
idle_select_default_focus (gpointer data)
{
+ gdk_threads_enter ();
+
ModestGlobalSettingsDialogPrivate *ppriv;
ModestMaemoGlobalSettingsDialogPrivate *priv;
SwitchPageHelper *helper;
g_free (helper);
+ gdk_threads_leave ();
+
return FALSE;
}
gchar *confirmation_message;
gint response;
gint n_attachments;
+ TnyMsg *msg;
+/* TnyFolder *folder; */
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window));
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
if (response != GTK_RESPONSE_OK)
return;
+ msg = modest_msg_view_get_message (MODEST_MSG_VIEW (priv->msg_view));
+/* folder = tny_msg_get_folder (msg); */
+/* tny_msg_uncache_attachments (msg); */
+/* tny_folder_refresh (folder, NULL); */
+/* g_object_unref (folder); */
+
+ modest_msg_view_set_message (MODEST_MSG_VIEW (priv->msg_view), msg);
+
for (node = mime_parts; node != NULL; node = g_list_next (node)) {
- modest_msg_view_remove_attachment (MODEST_MSG_VIEW (priv->msg_view), node->data);
+ tny_mime_part_set_purged (TNY_MIME_PART (node->data));
+/* modest_msg_view_remove_attachment (MODEST_MSG_VIEW (priv->msg_view), node->data); */
}
+ tny_msg_rewrite_cache (msg);
g_list_foreach (mime_parts, (GFunc) g_object_unref, NULL);
g_list_free (mime_parts);
+ modest_platform_information_banner (NULL, NULL, _("mcen_ib_removing_attachment"));
+
}
static gboolean
idle_notify_progress (gpointer data)
{
+ gdk_threads_enter ();
+
ModestMailOperation *mail_op = MODEST_MAIL_OPERATION (data);
ModestMailOperationState *state;
g_signal_emit (G_OBJECT (mail_op), signals[PROGRESS_CHANGED_SIGNAL], 0, state, NULL);
g_slice_free (ModestMailOperationState, state);
+ gdk_threads_leave ();
+
return TRUE;
}
static gboolean
idle_notify_progress_once (gpointer data)
{
+ gdk_threads_enter ();
+
ModestPair *pair;
pair = (ModestPair *) data;
g_slice_free (ModestMailOperationState, (ModestMailOperationState*)pair->second);
g_object_unref (pair->first);
+ gdk_threads_leave ();
+
return FALSE;
}
time(NULL),
TRUE);
+ gdk_threads_leave ();
+
return FALSE;
}
static gboolean _folder_is_any_of_type (TnyFolder *folder, TnyFolderType types[], guint ntypes);
static gboolean _invalid_msg_selected (ModestMainWindow *win, gboolean unique, ModestDimmingRule *rule);
static gboolean _invalid_attach_selected (ModestWindow *win, gboolean unique, gboolean for_view, ModestDimmingRule *rule);
+static gboolean _purged_attach_selected (ModestWindow *win);
static gboolean _clipboard_is_empty (ModestWindow *win);
static gboolean _invalid_clipboard_selected (ModestWindow *win, ModestDimmingRule *rule);
static gboolean _already_opened_msg (ModestWindow *win, guint *n_messages);
GtkWidget *folder_view = NULL;
GtkWidget *header_view = NULL;
ModestDimmingRule *rule = NULL;
- const gchar *message = NULL;
gboolean dimmed = FALSE;
g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), TRUE);
/* Check diming rules for folders and messages transfer */
if (!dimmed) {
- dimmed = _selected_folder_not_writeable(MODEST_MAIN_WINDOW(win));
- if (dimmed) {
- if (gtk_widget_is_focus (folder_view))
- message = _("mail_in_ui_folder_move_target_error");
- else
- message = ngettext ("mail_in_ui_folder_move_target_error", "mail_in_ui_folder_move_targets_error",
- modest_header_view_count_selected_headers (MODEST_HEADER_VIEW(header_view)) > 1);
- }
- }
- if (!dimmed) {
dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), FALSE, user_data);
}
g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE);
rule = MODEST_DIMMING_RULE (user_data);
- /* Check dimmed rule */
+ /* Check dimmed rule */
if (!dimmed) {
- dimmed = _invalid_attach_selected (win, TRUE, TRUE, rule);
+ dimmed = _purged_attach_selected (win);
+ if (dimmed)
+ modest_dimming_rule_set_notification (rule, _("mail_ib_attachment_already_purged"));
}
+
if (!dimmed) {
dimmed = _invalid_attachment_for_purge (win, rule);
}
}
static gboolean
+_purged_attach_selected (ModestWindow *win)
+{
+ GList *attachments, *node;
+ gint n_selected;
+ gboolean result = FALSE;
+
+ if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
+
+ /* Get selected atachments */
+ attachments = modest_msg_view_window_get_attachments (MODEST_MSG_VIEW_WINDOW(win));
+ n_selected = g_list_length (attachments);
+
+ for (node = attachments; node != NULL && !result; node = g_list_next (node)) {
+ TnyMimePart *mime_part = TNY_MIME_PART (node->data);
+ if (tny_mime_part_is_purged (mime_part)) {
+ result = TRUE;
+ break;
+ }
+ }
+
+ /* Free */
+ g_list_free (attachments);
+ }
+
+ return result;
+}
+
+static gboolean
_invalid_msg_selected (ModestMainWindow *win,
gboolean unique,
ModestDimmingRule *rule)
TnyMsg *msg = NULL;
TnyFolder *folder = NULL;
TnyAccount *account = NULL;
- gboolean result = TRUE;
+ gboolean result = FALSE;
if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
priv->get_size_idle_id = 0;
}
+ gdk_threads_leave ();
+
return (priv->get_size_stream != NULL);
-
}
static void
ModestAttachmentViewPriv *priv = NULL;
const gchar *filename = NULL;
gchar *file_icon_name = NULL;
+ gboolean show_size = FALSE;
g_return_if_fail (TNY_IS_MIME_PART_VIEW (self));
g_return_if_fail (TNY_IS_MIME_PART (mime_part));
}
priv->size = 0;
-
- if (TNY_IS_MSG (mime_part)) {
+
+ if (tny_mime_part_is_purged (mime_part)) {
+ filename = _("TODO: purged file");
+ file_icon_name = modest_platform_get_file_icon_name (NULL, NULL, NULL);
+ } else if (TNY_IS_MSG (mime_part)) {
TnyHeader *header = tny_msg_get_header (TNY_MSG (mime_part));
if (TNY_IS_HEADER (header)) {
filename = tny_header_get_subject (header);
file_icon_name = modest_platform_get_file_icon_name (filename,
tny_mime_part_get_content_type (mime_part),
NULL);
+ show_size = TRUE;
}
if (file_icon_name) {
gtk_label_set_text (GTK_LABEL (priv->filename_view), filename);
update_filename_request (MODEST_ATTACHMENT_VIEW (self));
- gtk_label_set_text (GTK_LABEL (priv->size_view), " ");
+ gtk_label_set_text (GTK_LABEL (priv->size_view), "");
- priv->get_size_idle_id = g_idle_add ((GSourceFunc) get_size_idle_func, (gpointer) self);
+ if (show_size)
+ priv->get_size_idle_id = g_idle_add ((GSourceFunc) get_size_idle_func, (gpointer) self);
gtk_widget_queue_draw (GTK_WIDGET (self));
}
static void
idle_notify_headers_count_changed_destroy (gpointer data)
{
+ gdk_threads_enter ();
+
HeadersCountChangedHelper *helper = NULL;
g_return_if_fail (data != NULL);
g_object_unref (helper->change);
g_slice_free (HeadersCountChangedHelper, helper);
+
+ gdk_threads_leave ();
}
static gboolean
idle_notify_headers_count_changed (gpointer data)
{
+ gdk_threads_enter ();
+
TnyFolder *folder = NULL;
ModestHeaderViewPrivate *priv = NULL;
HeadersCountChangedHelper *helper = NULL;
g_mutex_unlock (priv->observers_lock);
+ gdk_threads_leave ();
+
return FALSE;
}
result = gtk_html_engine_search (GTK_HTML (priv->gtkhtml),
search,
FALSE, TRUE, TRUE);
+#if 0
+ if (result) {
+ gint x, y, w, h;
+ gdouble offset_top, offset_bottom;
+ GtkAdjustment *adj;
+ gtk_html_get_selection_area (GTK_HTML (priv->gtkhtml), &x, &y, &w, &h);
+ offset_top = (gdouble) (priv->headers_box->requisition.height + y);
+ offset_bottom = (gdouble) (priv->headers_box->requisition.height + y + h);
+ adj = GTK_ADJUSTMENT (priv->vadj);
+ if (offset_top < adj->value)
+ gtk_adjustment_set_value (adj, offset_top + adj->page_increment - adj->page_size);
+ else if (offset_bottom > adj->value + adj->page_increment)
+ gtk_adjustment_set_value (adj, offset_bottom - adj->page_increment);
+ }
+#endif
y_offset = tmp_vadj->value;
gtk_layout_set_vadjustment (GTK_LAYOUT (priv->gtkhtml), vadj);
g_object_unref (vadj);
priv = MODEST_MSG_VIEW_GET_PRIVATE (self);
result = gtk_html_engine_search_next (GTK_HTML (priv->gtkhtml));
-
-/*
- {
+#if 0
+ if (result) {
+ gint x, y, w, h;
+ gdouble offset_top, offset_bottom;
GtkAdjustment *adj;
-
- adj = gtk_container_get_focus_vadjustment (GTK_CONTAINER (priv->gtkhtml));
+ gtk_html_get_selection_area (GTK_HTML (priv->gtkhtml), &x, &y, &w, &h);
+ g_message ("SELECTION AREA x%d y%d w%d h%d", x, y, w, h);
+ offset_top = (gdouble) (priv->headers_box->requisition.height + y);
+ offset_bottom = (gdouble) (priv->headers_box->requisition.height + y + h);
+ adj = GTK_ADJUSTMENT (priv->vadj);
+ if (offset_top < adj->value)
+ gtk_adjustment_set_value (adj, offset_top + adj->page_increment - adj->page_size);
+ else if (offset_bottom > adj->value + adj->page_increment)
+ gtk_adjustment_set_value (adj, offset_bottom - adj->page_increment);
}
-*/
+#endif
return result;
}
msg = modest_msg_view_get_message (view);
modest_attachments_view_remove_attachment (MODEST_ATTACHMENTS_VIEW (priv->attachments_view),
attachment);
- tny_mime_part_del_part (TNY_MIME_PART (msg), attachment);
+
}