/* Init state */
state = g_slice_new0 (DimmedState);
state->n_selected = 0;
- state->already_opened_msg = FALSE;
+ state->already_opened_msg = 0;
state->any_marked_as_deleted = FALSE;
state->all_marked_as_deleted = FALSE;
state->any_marked_as_seen = FALSE;
/* Already opened */
mgr = modest_runtime_get_window_mgr ();
- if (!state->already_opened_msg)
- state->already_opened_msg = modest_window_mgr_find_registered_header (mgr, header, NULL);
+ if (modest_window_mgr_find_registered_header (mgr, header, NULL))
+ state->already_opened_msg++;
/* Mark as deleted */
if (model != NULL){
gint count;
count = gtk_tree_model_iter_n_children(model, NULL);
- if(state->n_selected == count != 0)
+ if(state->n_selected == count)
state->all_selected = TRUE;
}
/* Init state */
state = g_slice_new0 (DimmedState);
state->n_selected = 0;
- state->already_opened_msg = FALSE;
+ state->already_opened_msg = 0;
state->any_marked_as_deleted = FALSE;
state->all_marked_as_deleted = FALSE;
state->any_marked_as_seen = FALSE;
state->sent_in_progress = FALSE;
header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW(window));
+ if (header == NULL)
+ return state;
g_return_val_if_fail (TNY_IS_HEADER(header), state);
flags = tny_header_get_flags (header);
all_has_attach = all_has_attach && (flags & TNY_HEADER_FLAG_ATTACHMENTS);
state->all_has_attachments = all_has_attach;
if (!state->any_has_attachments)
- state->any_has_attachments = flags & TNY_HEADER_FLAG_ATTACHMENTS;
+ state->any_has_attachments = (flags & TNY_HEADER_FLAG_ATTACHMENTS)?1:0;
/* sent in progress */
msg_uid = modest_tny_send_queue_get_msg_id (header);
g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE);
rule = MODEST_DIMMING_RULE (user_data);
+ if (!dimmed) {
+ dimmed = _transfer_mode_enabled (win);
+ if (dimmed) {
+ modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_create_error"));
+ return dimmed;
+ }
+ }
+
/* Get selected folder as parent of new folder to create */
folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
if (dimmed)
modest_dimming_rule_set_notification (rule, "");
}
+ if (!dimmed) {
+ dimmed = _transfer_mode_enabled (win);
+ if (dimmed)
+ modest_dimming_rule_set_notification (rule, "");
+ }
return dimmed;
}
modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data)
{
ModestDimmingRule *rule = NULL;
- guint n_messages = 0;
const DimmedState *state = NULL;
gboolean dimmed = FALSE;
dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), FALSE, user_data);
}
if (!dimmed) {
- dimmed = state->already_opened_msg;
- n_messages = state->n_selected;
+ dimmed = (state->already_opened_msg > 0) ? TRUE : FALSE;
if (dimmed) {
- gchar *num = g_strdup_printf ("%d", n_messages);
- gchar *message = g_strdup_printf(_("mcen_nc_unable_to_delete_n_messages"), num);
+ gchar *num = NULL, *message = NULL;
+
+ num = g_strdup_printf ("%d", state->already_opened_msg);
+ message = g_strdup_printf(_("mcen_nc_unable_to_delete_n_messages"), num);
modest_dimming_rule_set_notification (rule, message);
+ g_free(num);
g_free(message);
- g_free(num);
}
}
}
g_object_unref (folder_store);
+ } else {
+ dimmed = TRUE;
+ modest_dimming_rule_set_notification (rule, "");
}
if (!dimmed) {
dimmed = _msg_download_in_progress (win);
{
GtkWidget *folder_view = NULL;
ModestDimmingRule *rule = NULL;
- guint n_messages = 0;
const DimmedState *state = NULL;
gboolean dimmed = FALSE;
/* Check diming rules for messages transfer */
if (!dimmed) {
- dimmed = state->already_opened_msg;
- n_messages = state->n_selected;
+ dimmed = (state->already_opened_msg > 0) ? TRUE : FALSE;
if (dimmed) {
- gchar *message = g_strdup_printf(_("emev_bd_unabletomove_items"), n_messages);
+ gchar *message = g_strdup_printf(_("emev_bd_unabletomove_items"),
+ state->already_opened_msg);
modest_dimming_rule_set_notification (rule, message);
g_free(message);
}
/* Check if the selected message in main window has attachments */
if (!dimmed && MODEST_IS_MAIN_WINDOW (win)) {
- dimmed = state->any_has_attachments;
+ dimmed = !(state->any_has_attachments);
if (dimmed)
modest_dimming_rule_set_notification (rule, _("mail_ib_unable_to_purge_attachments"));
}
modest_dimming_rule_set_notification (rule, _("mcen_ib_unable_to_cut_mess"));
}
if (!dimmed) {
- dimmed = state->already_opened_msg;
+ dimmed = (state->already_opened_msg > 0) ? TRUE : FALSE;
if(dimmed)
modest_dimming_rule_set_notification (rule, _("mcen_ib_unable_to_cut_mess"));
}
modest_dimming_rule_set_notification (rule, _(""));
}
if (!dimmed) {
- dimmed = state->already_opened_msg;
+ dimmed = (state->already_opened_msg > 0) ? TRUE : FALSE;
if(dimmed)
modest_dimming_rule_set_notification (rule, _(""));
}
}
if (!dimmed) {
- GtkClipboard *clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+ dimmed = GTK_IS_TOGGLE_BUTTON (focused);
+ }
+
+ if (!dimmed) {
ModestEmailClipboard *e_clipboard = modest_runtime_get_email_clipboard ();
dimmed = modest_email_clipboard_cleared (e_clipboard) &&
- !gtk_clipboard_wait_is_text_available (clipboard);
+ (modest_msg_edit_window_get_clipboard_text(MODEST_MSG_EDIT_WINDOW (win)) == NULL) &&
+ !gtk_clipboard_wait_is_text_available(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD));
}
return dimmed;
/* Get folder type */
folder_type = modest_tny_folder_guess_folder_type (folder);
-
+ if (folder_type == TNY_FOLDER_TYPE_INVALID)
+ g_warning ("%s: BUG: TNY_FOLDER_TYPE_INVALID", __FUNCTION__);
+
/* Check foler type */
for (i=0; i < ntypes; i++) {
result = result || folder_type == types[i];
result = TRUE;
modest_dimming_rule_set_notification (rule, _("mail_ib_unable_to_purge_editable_msg"));
} else {
- /* We're currently disabling purge in any local store */
- result = TRUE;
- modest_dimming_rule_set_notification (rule, _("mail_ib_unable_to_purge_attachments"));
+ result = FALSE;
}
} else {
const gchar *proto_str = tny_account_get_proto (TNY_ACCOUNT (account));
return result;
}
+gboolean
+modest_ui_dimming_rules_on_save_to_drafts (ModestWindow *win,
+ gpointer user_data)
+{
+ ModestDimmingRule *rule = NULL;
+ gboolean dimmed = FALSE;
+
+ g_return_val_if_fail (MODEST_MSG_EDIT_WINDOW (win), FALSE);
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE);
+ rule = MODEST_DIMMING_RULE (user_data);
+
+ /* Check dimmed rule */
+ if (!dimmed) {
+ dimmed = !modest_msg_edit_window_is_modified (MODEST_MSG_EDIT_WINDOW (win));
+ }
+
+ return dimmed;
+}
+
+gboolean
+modest_ui_dimming_rules_on_insert_image (ModestWindow *win,
+ gpointer user_data)
+{
+ g_return_val_if_fail (MODEST_MSG_EDIT_WINDOW (win), FALSE);
+
+ ModestMsgEditFormat format =
+ modest_msg_edit_window_get_format (MODEST_MSG_EDIT_WINDOW (win));
+
+ return (format != MODEST_MSG_EDIT_FORMAT_HTML);
+}