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:
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)
{