talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 714ebee34cd950369f7f300090892447187817c8
parent 60c48df1ffb38fed0c2ebcc31c00abd097e50ecd
Author: Paul <paul@claws-mail.org>
Date:   Tue,  1 Oct 2019 17:22:11 +0100

add 'Re-edit' to the message context menu in the Drafts folder

Diffstat:
Msrc/gtk/menu.c | 4++++
Msrc/mainwindow.c | 4++++
Msrc/mainwindow.h | 1+
Msrc/summaryview.c | 14++++++++++++--
4 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/gtk/menu.c b/src/gtk/menu.c @@ -93,6 +93,10 @@ void cm_menu_set_sensitive_full(GtkUIManager *gui_manager, const gchar *menu, gb } gtk_widget_set_sensitive(widget, sensitive); + + if (strcmp(menu, "Menus/SummaryViewPopup/Reedit") == 0) + (sensitive)? gtk_widget_show(widget) : gtk_widget_hide(widget); + g_free(path); } diff --git a/src/mainwindow.c b/src/mainwindow.c @@ -2999,6 +2999,10 @@ SensitiveCondMask main_window_get_current_state(MainWindow *mainwin) && mainwin->summaryview->folder_item->stype != F_DRAFT) UPDATE_STATE(M_NOT_DRAFT); + if (mainwin->summaryview->folder_item && + mainwin->summaryview->folder_item->stype == F_DRAFT) + UPDATE_STATE(M_DRAFT); + if (prefs_common.actions_list && g_slist_length(prefs_common.actions_list)) UPDATE_STATE(M_ACTIONS_EXIST); diff --git a/src/mainwindow.h b/src/mainwindow.h @@ -70,6 +70,7 @@ typedef enum M_HAVE_RETRIEVABLE_ACCOUNT, M_HAVE_ANY_RETRIEVABLE_ACCOUNT, M_NOT_DRAFT, + M_DRAFT, /* reserved */ M_MAX_RESERVED diff --git a/src/summaryview.c b/src/summaryview.c @@ -415,12 +415,14 @@ GtkTargetEntry summary_drag_types[3] = {"claws-mail/msg-path-list", 0, TARGET_MAIL_CM_PATH_LIST}, }; +static void summary_reedit_cb(GtkAction *gaction, gpointer data); static void summary_reply_cb(GtkAction *gaction, gpointer data); /* Only submenus and specifically-handled menu entries here */ static GtkActionEntry summary_popup_entries[] = { {"SummaryViewPopup", NULL, "SummaryViewPopup", NULL, NULL, NULL }, + {"SummaryViewPopup/Reedit", NULL, N_("Re-edit"), NULL, NULL, G_CALLBACK(summary_reedit_cb) }, {"SummaryViewPopup/Reply", NULL, N_("_Reply"), NULL, NULL, G_CALLBACK(summary_reply_cb) }, /* COMPOSE_REPLY */ {"SummaryViewPopup/ReplyTo", NULL, N_("Repl_y to"), NULL, NULL, NULL }, {"SummaryViewPopup/ReplyTo/All", NULL, N_("_All"), NULL, NULL, G_CALLBACK(summary_reply_cb) }, /* COMPOSE_REPLY_TO_ALL */ @@ -702,6 +704,7 @@ SummaryView *summary_create(MainWindow *mainwin) G_N_ELEMENTS(summary_popup_entries), (gpointer)summaryview); MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus", "SummaryViewPopup", "SummaryViewPopup", GTK_UI_MANAGER_MENU) + MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup", "Reedit", "SummaryViewPopup/Reedit", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup", "Reply", "SummaryViewPopup/Reply", GTK_UI_MANAGER_MENUITEM) #ifndef GENERIC_UMPC MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup", "ReplyTo", "SummaryViewPopup/ReplyTo", GTK_UI_MANAGER_MENU) @@ -1802,9 +1805,9 @@ void summary_set_menu_sensitive(SummaryView *summaryview) gint i; #ifndef GENERIC_UMPC -#define N_ENTRIES 39 +#define N_ENTRIES 40 #else -#define N_ENTRIES 28 +#define N_ENTRIES 29 #endif static struct { const gchar *entry; @@ -1817,6 +1820,7 @@ do { \ entry[i].entry = (const gchar *) entry_str; entry[i++].cond = main_window_get_mask(__VA_ARGS__, -1); \ } while (0) + FILL_TABLE("Menus/SummaryViewPopup/Reedit", M_TARGET_EXIST, M_DRAFT); FILL_TABLE("Menus/SummaryViewPopup/Reply", M_HAVE_ACCOUNT, M_TARGET_EXIST); #ifndef GENERIC_UMPC FILL_TABLE("Menus/SummaryViewPopup/ReplyTo", M_HAVE_ACCOUNT, M_TARGET_EXIST); @@ -8490,6 +8494,12 @@ void summaryview_unlock(SummaryView *summaryview, FolderItem *item) gtk_widget_set_sensitive(summaryview->ctree, TRUE); } +static void summary_reedit_cb(GtkAction *gaction, gpointer data) +{ + SummaryView *summaryview = (SummaryView *)data; + summary_reedit(summaryview); +} + #define DO_ACTION(name, act) { if (!strcmp(a_name, name)) action = act; } static void summary_reply_cb(GtkAction *gaction, gpointer data) {