#include "foldersel.h"
#include "toolbar.h"
#include "inc.h"
+#include "message_search.h"
+
enum
{
COL_MIMETYPE = 0,
void compose_remove_draft (Compose *compose);
static gint compose_queue (Compose *compose,
gint *msgnum,
- FolderItem **item);
+ FolderItem **item,
+ gchar **msgpath);
static gint compose_queue_sub (Compose *compose,
gint *msgnum,
FolderItem **item,
+ gchar **msgpath,
gboolean check_subject);
static void compose_add_attachments (Compose *compose,
MimeInfo *parent);
static void compose_wrap_cb (gpointer data,
guint action,
GtkWidget *widget);
+static void compose_find_cb (gpointer data,
+ guint action,
+ GtkWidget *widget);
static void compose_toggle_autowrap_cb (gpointer data,
guint action,
GtkWidget *widget);
{N_("/_Edit/Select _all"), "<control>A", compose_allsel_cb, 0, NULL},
{N_("/_Edit/A_dvanced"), NULL, NULL, 0, "<Branch>"},
{N_("/_Edit/A_dvanced/Move a character backward"),
- "<control>B",
+ "<shift><control>B",
compose_advanced_action_cb,
COMPOSE_CALL_ADVANCED_ACTION_MOVE_BACKWARD_CHARACTER,
NULL},
{N_("/_Edit/A_dvanced/Move a character forward"),
- "<control>F",
+ "<shift><control>F",
compose_advanced_action_cb,
COMPOSE_CALL_ADVANCED_ACTION_MOVE_FORWARD_CHARACTER,
NULL},
COMPOSE_CALL_ADVANCED_ACTION_DELETE_TO_LINE_END,
NULL},
{N_("/_Edit/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/_Edit/_Find"),
+ "<control>F", compose_find_cb, 0, NULL},
+ {N_("/_Edit/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Edit/_Wrap current paragraph"),
"<control>L", compose_wrap_cb, 0, NULL},
{N_("/_Edit/Wrap all long _lines"),
gtk_widget_set_sensitive(compose->toolbar->draft_btn, FALSE);
gtk_widget_set_sensitive(compose->toolbar->insert_btn, FALSE);
gtk_widget_set_sensitive(compose->toolbar->attach_btn, FALSE);
- gtk_widget_set_sensitive(compose->toolbar->sig_btn, FALSE);
- gtk_widget_set_sensitive(compose->toolbar->exteditor_btn, FALSE);
- gtk_widget_set_sensitive(compose->toolbar->linewrap_current_btn, FALSE);
- gtk_widget_set_sensitive(compose->toolbar->linewrap_all_btn, FALSE);
+ if (compose->toolbar->sig_btn)
+ gtk_widget_set_sensitive(compose->toolbar->sig_btn, FALSE);
+ if (compose->toolbar->exteditor_btn)
+ gtk_widget_set_sensitive(compose->toolbar->exteditor_btn, FALSE);
+ if (compose->toolbar->linewrap_current_btn)
+ gtk_widget_set_sensitive(compose->toolbar->linewrap_current_btn, FALSE);
+ if (compose->toolbar->linewrap_all_btn)
+ gtk_widget_set_sensitive(compose->toolbar->linewrap_all_btn, FALSE);
compose->modified = FALSE;
compose_set_title(compose);
gint msgnum;
FolderItem *folder;
gint val = -1;
- gchar *msgpath;
+ gchar *msgpath = NULL;
compose_allow_user_actions (compose, FALSE);
compose->sending = TRUE;
if (compose_check_entries(compose, TRUE) == FALSE)
goto bail;
- val = compose_queue(compose, &msgnum, &folder);
+ val = compose_queue(compose, &msgnum, &folder, &msgpath);
if (val) {
if (val == -4) {
return 0;
}
- msgpath = folder_item_fetch_msg(folder, msgnum);
- val = procmsg_send_message_queue(msgpath);
- g_free(msgpath);
-
+ if (msgpath == NULL) {
+ msgpath = folder_item_fetch_msg(folder, msgnum);
+ val = procmsg_send_message_queue(msgpath);
+ g_free(msgpath);
+ } else {
+ val = procmsg_send_message_queue(msgpath);
+ g_unlink(msgpath);
+ g_free(msgpath);
+ }
if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS) {
compose->sending = FALSE;
compose_allow_user_actions (compose, TRUE);
}
-static gint compose_queue(Compose *compose, gint *msgnum, FolderItem **item)
+static gint compose_queue(Compose *compose, gint *msgnum, FolderItem **item, gchar **msgpath)
{
- return compose_queue_sub (compose, msgnum, item, FALSE);
+ return compose_queue_sub (compose, msgnum, item, msgpath, FALSE);
}
-static gint compose_queue_sub(Compose *compose, gint *msgnum, FolderItem **item, gboolean check_subject)
+static gint compose_queue_sub(Compose *compose, gint *msgnum, FolderItem **item, gchar **msgpath, gboolean check_subject)
{
FolderItem *queue;
gchar *tmp;
return -1;
}
folder_item_scan(queue);
- if ((num = folder_item_add_msg(queue, tmp, NULL, TRUE)) < 0) {
+ if ((num = folder_item_add_msg(queue, tmp, NULL, FALSE)) < 0) {
g_warning("can't queue the message\n");
g_unlink(tmp);
g_free(tmp);
return -1;
}
- g_unlink(tmp);
- g_free(tmp);
+
+ if (msgpath == NULL) {
+ g_unlink(tmp);
+ g_free(tmp);
+ } else
+ *msgpath = tmp;
if (compose->mode == COMPOSE_REEDIT) {
compose_remove_reedit_target(compose, FALSE);
gtk_widget_show(notebook);
/* header labels and entries */
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), compose_create_header(compose), gtk_label_new(_("Header")));
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ compose_create_header(compose),
+ gtk_label_new_with_mnemonic(_("Hea_der")));
/* attachment list */
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), compose_create_attach(compose), gtk_label_new(_("Attachments")));
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ compose_create_attach(compose),
+ gtk_label_new_with_mnemonic(_("_Attachments")));
/* Others Tab */
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), compose_create_others(compose), gtk_label_new(_("Others")));
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ compose_create_others(compose),
+ gtk_label_new_with_mnemonic(_("Othe_rs")));
/* Subject */
subject_hbox = gtk_hbox_new(FALSE, 0);
conv_get_locale_charset_str(),
prefs_common.misspelled_col,
prefs_common.check_while_typing,
+ prefs_common.recheck_when_changing_dict,
prefs_common.use_alternate,
GTK_TEXT_VIEW(text),
GTK_WINDOW(compose->window));
gtk_widget_set_sensitive(compose->toolbar->sendl_btn, sensitive);
gtk_widget_set_sensitive(compose->toolbar->draft_btn, sensitive);
gtk_widget_set_sensitive(compose->toolbar->insert_btn, sensitive);
- gtk_widget_set_sensitive(compose->toolbar->sig_btn, sensitive);
- gtk_widget_set_sensitive(compose->toolbar->exteditor_btn, sensitive);
- gtk_widget_set_sensitive(compose->toolbar->linewrap_current_btn, sensitive);
- gtk_widget_set_sensitive(compose->toolbar->linewrap_all_btn, sensitive);
+ if (compose->toolbar->sig_btn)
+ gtk_widget_set_sensitive(compose->toolbar->sig_btn, ensitive);
+ if (compose->toolbar->exteditor_btn)
+ gtk_widget_set_sensitive(compose->toolbar->exteditor_btn, sensitive);
+ if (compose->toolbar->linewrap_current_btn)
+ gtk_widget_set_sensitive(compose->toolbar->linewrap_current_btn, sensitive);
+ if (compose->toolbar->linewrap_all_btn)
+ gtk_widget_set_sensitive(compose->toolbar->linewrap_all_btn, sensitive);
}
#endif /* G_OS_UNIX */
Compose *compose = (Compose *)data;
gint val;
- val = compose_queue_sub(compose, NULL, NULL, TRUE);
+ val = compose_queue_sub(compose, NULL, NULL, NULL, TRUE);
if (!val)
compose_close(compose);
else if (val == -2) {
compose_beautify_paragraph(compose, NULL, TRUE);
}
+static void compose_find_cb(gpointer data, guint action, GtkWidget *widget)
+{
+ Compose *compose = (Compose *)data;
+
+ message_search_compose(compose);
+}
+
static void compose_toggle_autowrap_cb(gpointer data, guint action,
GtkWidget *widget)
{
g_free(body);
}
+void compose_set_position(Compose *compose, gint pos)
+{
+ GtkTextView *text = GTK_TEXT_VIEW(compose->text);
+
+ gtkut_text_view_set_position(text, pos);
+}
+
+gboolean compose_search_string(Compose *compose,
+ const gchar *str, gboolean case_sens)
+{
+ GtkTextView *text = GTK_TEXT_VIEW(compose->text);
+
+ return gtkut_text_view_search_string(text, str, case_sens);
+}
+
+gboolean compose_search_string_backward(Compose *compose,
+ const gchar *str, gboolean case_sens)
+{
+ GtkTextView *text = GTK_TEXT_VIEW(compose->text);
+
+ return gtkut_text_view_search_string_backward(text, str, case_sens);
+}
+
/*
* End of Source.
*/