static void recpt_field_changed (GtkTextBuffer *buffer, ModestMsgEditWindow *editor);
static void send_insensitive_press (GtkWidget *widget, ModestMsgEditWindow *editor);
static void style_insensitive_press (GtkWidget *widget, ModestMsgEditWindow *editor);
+static void remove_attachment_insensitive_press (GtkWidget *widget, ModestMsgEditWindow *editor);
static void setup_insensitive_handlers (ModestMsgEditWindow *editor);
static void reset_modified (ModestMsgEditWindow *editor);
static gboolean is_modified (ModestMsgEditWindow *editor);
static void modest_msg_edit_window_clipboard_owner_change (GtkClipboard *clipboard,
GdkEvent *event,
ModestMsgEditWindow *window);
+static void modest_msg_edit_window_system_clipboard_owner_change (GtkClipboard *clipboard,
+ GdkEvent *event,
+ ModestMsgEditWindow *window);
static void update_window_title (ModestMsgEditWindow *window);
static void update_dimmed (ModestMsgEditWindow *window);
+static void update_paste_dimming (ModestMsgEditWindow *window);
/* Find toolbar */
static void modest_msg_edit_window_find_toolbar_search (GtkWidget *widget,
gdouble zoom_level;
gulong clipboard_change_handler_id;
+ gulong system_clipboard_change_handler_id;
TnyMsg *draft_msg;
};
priv->draft_msg = NULL;
priv->clipboard_change_handler_id = 0;
+ priv->system_clipboard_change_handler_id = 0;
}
priv->clipboard_change_handler_id = g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_PRIMARY)), "owner-change",
G_CALLBACK (modest_msg_edit_window_clipboard_owner_change), obj);
+ priv->system_clipboard_change_handler_id = g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD)), "owner-change",
+ G_CALLBACK (modest_msg_edit_window_system_clipboard_owner_change), obj);
}
priv->clipboard_change_handler_id = 0;
}
+ if (priv->system_clipboard_change_handler_id > 0) {
+ g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD),
+ priv->system_clipboard_change_handler_id);
+ priv->system_clipboard_change_handler_id = 0;
+ }
+
/* This had to stay alive for as long as the combobox that used it: */
modest_pair_list_free (priv->from_field_protos);
gtk_action_set_sensitive (action, FALSE);
action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/CopyMenu");
gtk_action_set_sensitive (action, FALSE);
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/AttachmentsMenu/RemoveAttachmentsMenu");
+ gtk_action_set_sensitive (action, FALSE);
/* set initial state of cc and bcc */
action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/ViewMenu/ViewCcFieldMenu");
MODEST_FILE_FORMAT_FORMATTED_TEXT :
MODEST_FILE_FORMAT_PLAIN_TEXT;
modest_msg_edit_window_set_file_format (MODEST_MSG_EDIT_WINDOW (obj), file_format);
+
+ update_paste_dimming (MODEST_MSG_EDIT_WINDOW (obj));
return (ModestWindow*) obj;
}
priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_OPEN);
+ gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_ia_select_inline_image_title"));
response = gtk_dialog_run (GTK_DIALOG (dialog));
switch (response) {
ModestMsgEditWindowPrivate *priv;
GtkWidget *dialog = NULL;
gint response = 0;
- GSList *uris;
+ GSList *uris = NULL;
GSList *uri_node;
priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
widget = priv->font_face_toolitem;
g_signal_connect (G_OBJECT (widget), "insensitive-press", G_CALLBACK (style_insensitive_press), window);
+ widget = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/MenuBar/AttachmentsMenu/RemoveAttachmentsMenu");
+ g_signal_connect (G_OBJECT (widget), "insensitive-press", G_CALLBACK (remove_attachment_insensitive_press), window);
}
static void
hildon_banner_show_information (NULL, NULL, _("mcen_ib_add_recipients_first"));
}
+static void
+remove_attachment_insensitive_press (GtkWidget *widget, ModestMsgEditWindow *editor)
+{
+ ModestWindowPrivate *parent_priv;
+ ModestMsgEditWindowPrivate *priv;
+ GList *selected_attachments = NULL;
+ gint n_att_selected = 0;
+
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (editor);
+ parent_priv = MODEST_WINDOW_GET_PRIVATE (editor);
+
+ selected_attachments = modest_attachments_view_get_selection (MODEST_ATTACHMENTS_VIEW (priv->attachments_view));
+ n_att_selected = g_list_length (selected_attachments);
+ g_list_free (selected_attachments);
+
+ if (n_att_selected > 1)
+ hildon_banner_show_information (NULL, NULL, _("mcen_ib_unable_to_display_more"));
+ else if (n_att_selected == 0)
+ hildon_banner_show_information (NULL, NULL, _("TODO: select one attachment"));
+
+}
+
static void
style_insensitive_press (GtkWidget *widget, ModestMsgEditWindow *editor)
{
ModestMsgEditWindow *window)
{
ModestWindowPrivate *parent_priv;
+ ModestMsgEditWindowPrivate *priv;
GtkAction *action;
gchar *selection;
GtkWidget *focused;
+ GList *selected_attachments = NULL;
+ gint n_att_selected = 0;
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
selection = gtk_clipboard_wait_for_text (clipboard);
focused = gtk_window_get_focus (GTK_WINDOW (window));
gtk_action_set_sensitive (action, (selection != NULL) && (!MODEST_IS_ATTACHMENTS_VIEW (focused)));
action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/CopyMenu");
gtk_action_set_sensitive (action, (selection != NULL) && (!MODEST_IS_ATTACHMENTS_VIEW (focused)));
+
+ selected_attachments = modest_attachments_view_get_selection (MODEST_ATTACHMENTS_VIEW (priv->attachments_view));
+ n_att_selected = g_list_length (selected_attachments);
+ g_list_free (selected_attachments);
+
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/AttachmentsMenu/RemoveAttachmentsMenu");
+ gtk_action_set_sensitive (action, n_att_selected == 1);
+
+
+ update_paste_dimming (window);
}
static void
}
+static void
+update_paste_dimming (ModestMsgEditWindow *window)
+{
+ ModestWindowPrivate *parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
+ GtkAction *action = NULL;
+ GtkClipboard *clipboard = NULL;
+
+ clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/PasteMenu");
+ gtk_action_set_sensitive (action, gtk_clipboard_wait_is_text_available (clipboard));
+
+}
+
+static void
+modest_msg_edit_window_system_clipboard_owner_change (GtkClipboard *clipboard,
+ GdkEvent *event,
+ ModestMsgEditWindow *window)
+{
+ update_paste_dimming (window);
+}
+