2012-11-30 [wwp] 3.9.0cvs31
authorTristan Chabredier <wwp@claws-mail.org>
Fri, 30 Nov 2012 14:25:12 +0000 (14:25 +0000)
committerTristan Chabredier <wwp@claws-mail.org>
Fri, 30 Nov 2012 14:25:12 +0000 (14:25 +0000)
* src/mainwindow.c
* src/mainwindow.h
* src/procmsg.c
* src/send_message.c
* src/send_message.h
* src/toolbar.c
* src/toolbar.h
Add Message/Cancel sending (same as --cancel-sending), adds the
relevant toolbar icon, and an extra cancel sending+receiving icon
for convenience.

ChangeLog
PATCHSETS
configure.ac
src/mainwindow.c
src/mainwindow.h
src/procmsg.c
src/send_message.c
src/send_message.h
src/toolbar.c
src/toolbar.h

index a9c86965564e2720c37c87c9d3ea199aae224908..e0bffd6add4de18e91495d8e350de9178714f377 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2012-11-30 [wwp]       3.9.0cvs31
+
+       * src/mainwindow.c
+       * src/mainwindow.h
+       * src/procmsg.c
+       * src/send_message.c
+       * src/send_message.h
+       * src/toolbar.c
+       * src/toolbar.h
+       Add Message/Cancel sending (same as --cancel-sending), adds the
+       relevant toolbar icon, and an extra cancel sending+receiving icon
+       for convenience.
+
 2012-11-29 [colin]     3.9.0cvs30
 
        * src/mainwindow.c
index b153fcfed1551c8a96fa2ff62d9e12da37db357f..b0a17f79651cec820787e3db5391afb156eab518 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.274.2.357 -r 1.274.2.358 src/mainwindow.c;  cvs diff -u -r 1.101.2.74 -r 1.101.2.75 src/news.c;  cvs diff -u -r 1.21.2.11 -r 1.21.2.12 src/news.h;  cvs diff -u -r 1.1.2.23 -r 1.1.2.24 src/etpan/nntp-thread.c;  ) > 3.9.0cvs28.patchset
 ( cvs diff -u -r 1.274.2.358 -r 1.274.2.359 src/mainwindow.c;  cvs diff -u -r 1.39.2.65 -r 1.39.2.66 src/mainwindow.h;  cvs diff -u -r 1.395.2.458 -r 1.395.2.459 src/summaryview.c;  cvs diff -u -r 1.43.2.132 -r 1.43.2.133 src/toolbar.c;  ) > 3.9.0cvs29.patchset
 ( cvs diff -u -r 1.274.2.359 -r 1.274.2.360 src/mainwindow.c;  ) > 3.9.0cvs30.patchset
+( cvs diff -u -r 1.274.2.360 -r 1.274.2.361 src/mainwindow.c;  cvs diff -u -r 1.39.2.66 -r 1.39.2.67 src/mainwindow.h;  cvs diff -u -r 1.150.2.132 -r 1.150.2.133 src/procmsg.c;  cvs diff -u -r 1.17.2.66 -r 1.17.2.67 src/send_message.c;  cvs diff -u -r 1.1.4.13 -r 1.1.4.14 src/send_message.h;  cvs diff -u -r 1.43.2.133 -r 1.43.2.134 src/toolbar.c;  cvs diff -u -r 1.19.2.35 -r 1.19.2.36 src/toolbar.h;  ) > 3.9.0cvs31.patchset
index c649408821dbaad1747db840533b56b4ce8a66f2..971874ddf94f8778b60ff2787f3976bc8ac1f689 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=9
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=30
+EXTRA_VERSION=31
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 69c858dbb7eb14230b3b858129ced12155a5dd95..6773fc25c152dc23086e5a4b0a47d027ba923d6f 100644 (file)
@@ -187,6 +187,8 @@ static void filtering_debug_window_show_cb  (GtkAction      *action,
 
 static void inc_cancel_cb              (GtkAction      *action,
                                  gpointer       data);
+static void send_cancel_cb             (GtkAction      *action,
+                                 gpointer       data);
 
 static void open_msg_cb                        (GtkAction      *action,
                                  gpointer       data);
@@ -642,6 +644,7 @@ static GtkActionEntry mainwin_entries[] =
        {"Message/Receive/---",                 NULL, "---" },
        {"Message/Receive/PlaceHolder",         NULL, "PlaceHolder,", NULL, NULL, G_CALLBACK(mainwindow_nothing_cb) },
        {"Message/SendQueue",                   NULL, N_("_Send queued messages"), NULL, NULL, G_CALLBACK(mw_send_queue_cb) },
+       {"Message/CancelSending",       NULL, N_("Cancel sending"), NULL, NULL, G_CALLBACK(send_cancel_cb) },
 
        {"Message/---",                         NULL, "---" },
 
@@ -1792,11 +1795,11 @@ MainWindow *main_window_create()
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Goto", "Separator8", "View/Goto/---", GTK_UI_MANAGER_SEPARATOR)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Goto", "NextPart", "View/Goto/NextPart", GTK_UI_MANAGER_MENUITEM)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Goto", "PrevPart", "View/Goto/PrevPart", GTK_UI_MANAGER_MENUITEM)
-        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Scroll", "View/Scroll", GTK_UI_MANAGER_MENU)
-        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "PrevLine", "View/Scroll/PrevLine", GTK_UI_MANAGER_MENUITEM)
-        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "NextLine", "View/Scroll/NextLine", GTK_UI_MANAGER_MENUITEM)
-        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "PrevPage", "View/Scroll/PrevPage", GTK_UI_MANAGER_MENUITEM)
-        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "NextPage", "View/Scroll/NextPage", GTK_UI_MANAGER_MENUITEM)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Scroll", "View/Scroll", GTK_UI_MANAGER_MENU)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "PrevLine", "View/Scroll/PrevLine", GTK_UI_MANAGER_MENUITEM)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "NextLine", "View/Scroll/NextLine", GTK_UI_MANAGER_MENUITEM)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "PrevPage", "View/Scroll/PrevPage", GTK_UI_MANAGER_MENUITEM)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Scroll", "NextPage", "View/Scroll/NextPage", GTK_UI_MANAGER_MENUITEM)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Separator4", "View/---", GTK_UI_MANAGER_SEPARATOR)
 
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Encoding", "View/Encoding", GTK_UI_MANAGER_MENU)
@@ -1889,6 +1892,7 @@ MainWindow *main_window_create()
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Receive", "Separator1", "Message/Receive/---", GTK_UI_MANAGER_SEPARATOR)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Receive", "PlaceHolder", "Message/Receive/PlaceHolder", GTK_UI_MANAGER_MENUITEM)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "SendQueue", "Message/SendQueue", GTK_UI_MANAGER_MENUITEM)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "CancelSending", "Message/CancelSending", GTK_UI_MANAGER_MENUITEM)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "Separator1", "Message/---", GTK_UI_MANAGER_SEPARATOR)
 
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "ComposeEmail", "Message/ComposeEmail", GTK_UI_MANAGER_MENUITEM)
@@ -3230,6 +3234,9 @@ SensitiveCond main_window_get_current_state(MainWindow *mainwin)
        if (imap_cancel_all_enabled())
                UPDATE_STATE(M_INC_ACTIVE);
 
+       if (send_is_active() | procmsg_is_sending())
+               UPDATE_STATE(M_SEND_ACTIVE);
+
        if (mainwin->summaryview->deleted > 0)
                UPDATE_STATE(M_DELETED_EXISTS);
 
@@ -3291,7 +3298,7 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
        gint i;
        gboolean mimepart_selected = FALSE;
 
-#define N_ENTRIES 81
+#define N_ENTRIES 82
        static struct {
                const gchar *entry;
                SensitiveCond cond;
@@ -3342,6 +3349,7 @@ do { \
        FILL_TABLE("Menu/Message/Receive/AllAccounts", M_HAVE_ACCOUNT, M_UNLOCKED, M_HAVE_ANY_RETRIEVABLE_ACCOUNT);
        FILL_TABLE("Menu/Message/Receive/CancelReceiving", M_INC_ACTIVE);
        FILL_TABLE("Menu/Message/SendQueue", M_HAVE_ACCOUNT, M_HAVE_QUEUED_MAILS);
+       FILL_TABLE("Menu/Message/CancelSending", M_SEND_ACTIVE);
        FILL_TABLE("Menu/Message/ComposeEmail", M_HAVE_ACCOUNT);
        FILL_TABLE("Menu/Message/ComposeNews", M_HAVE_NEWS_ACCOUNT);
        FILL_TABLE("Menu/Message/Reply", M_HAVE_ACCOUNT, M_TARGET_EXIST, M_SUMMARY_ISLIST);
@@ -4459,6 +4467,11 @@ static void inc_cancel_cb(GtkAction *action, gpointer data)
        imap_cancel_all();
 }
 
+static void send_cancel_cb(GtkAction *action, gpointer data)
+{
+       send_cancel();
+}
+
 static void move_to_cb(GtkAction *action, gpointer data)
 {
        MainWindow *mainwin = (MainWindow *)data;
index f094ffa9e9adef76cd36a074387017dfeb0091f0..7b0ae535eaae4a4ea1572ad879bbe3406e88a39f 100644 (file)
@@ -47,6 +47,7 @@ typedef enum
        M_UNTHREADED,
        M_ALLOW_DELETE,
        M_INC_ACTIVE,
+       M_SEND_ACTIVE,
        M_NEWS,
        M_HAVE_NEWS_ACCOUNT,
        M_HIDE_READ_MSG,
index 100602c5ddc7794532ba946755d7ff3078371ddb..643b875e6fae4527efc2741ef32062a391a9f543 100644 (file)
@@ -943,6 +943,7 @@ gint procmsg_send_queue(FolderItem *queue, gboolean save_msgs, gchar **errstr)
        GNode *node, *next;
        
        if (!procmsg_queue_lock(errstr)) {
+               main_window_set_menu_sensitive(mainwindow_get_mainwindow());
                toolbar_main_set_sensitive(mainwindow_get_mainwindow());
                return -1;
        }
@@ -956,6 +957,7 @@ gint procmsg_send_queue(FolderItem *queue, gboolean save_msgs, gchar **errstr)
                return -1;
        }
 
+       main_window_set_menu_sensitive(mainwindow_get_mainwindow());
        toolbar_main_set_sensitive(mainwindow_get_mainwindow());
 
        folder_item_scan(queue);
@@ -1013,6 +1015,7 @@ gint procmsg_send_queue(FolderItem *queue, gboolean save_msgs, gchar **errstr)
        }
        procmsg_queue_unlock();
        inc_unlock();
+       main_window_set_menu_sensitive(mainwindow_get_mainwindow());
        toolbar_main_set_sensitive(mainwindow_get_mainwindow());
 
        return (err != 0 ? -err : sent);
@@ -1896,6 +1899,7 @@ send_mail:
 gint procmsg_send_message_queue(const gchar *file, gchar **errstr, FolderItem *queue, gint msgnum, gboolean *queued_removed)
 {
        gint result = procmsg_send_message_queue_full(file, FALSE, errstr, queue, msgnum, queued_removed);
+       main_window_set_menu_sensitive(mainwindow_get_mainwindow());
        toolbar_main_set_sensitive(mainwindow_get_mainwindow());
        return result;
 }
index 1d246254eba850350ef1d0d001dc7f351a2dec72..38b2d2c95863fec3415a762de728435c9e4c7080 100644 (file)
@@ -94,6 +94,11 @@ void send_cancel(void)
                send_cancel_button_cb(NULL, send_dialog);
 }
 
+gboolean send_is_active(void)
+{
+       return (send_dialog != NULL);
+}
+
 gint send_message(const gchar *file, PrefsAccount *ac_prefs, GSList *to_list)
 {
        FILE *fp;
@@ -606,7 +611,7 @@ static void send_progress_dialog_destroy(SendProgressDialog *dialog)
                progress_dialog_destroy(dialog->dialog);
        }
        g_free(dialog);
-       dialog = NULL;
+       send_dialog = NULL;
 }
 
 static void send_showlog_button_cb(GtkWidget *widget, gpointer data)
index 826d54e9bfeef8a88c633129bc931db00d83e706..b5ae53d7f7e518f16d189e4f16e1a6df9e084747 100644 (file)
@@ -42,5 +42,6 @@ gint send_message_smtp_full   (PrefsAccount *ac_prefs,
                                 FILE *fp, 
                                 gboolean keep_session);
 void send_cancel       (void);
+gboolean inc_is_active (void);
 
 #endif /* __SEND_H__ */
index 11536af44566b3a029e60341e7ae6b971d87cce9..96ba3bf5b070122b03d62461652aee57d5076c29 100644 (file)
@@ -179,6 +179,10 @@ static void toolbar_check_spelling_cb              (GtkWidget      *widget,
 #endif
 static void toolbar_cancel_inc_cb              (GtkWidget      *widget,
                                                 gpointer        data);
+static void toolbar_cancel_send_cb             (GtkWidget      *widget,
+                                                gpointer        data);
+static void toolbar_cancel_all_cb              (GtkWidget      *widget,
+                                                gpointer        data);
 
 struct {
        gchar *index_str;
@@ -193,19 +197,19 @@ struct {
        { "A_REPLY_SENDER",     N_("Reply to Sender")                      },
        { "A_REPLY_ALL",        N_("Reply to All")                         },
        { "A_REPLY_ML",         N_("Reply to Mailing-list")                },
-       { "A_OPEN_MAIL",        N_("Open email")                           },
+       { "A_OPEN_MAIL",        N_("Open email")                           },
        { "A_FORWARD",          N_("Forward Message")                      }, 
        { "A_TRASH",            N_("Trash Message")                        },
        { "A_DELETE_REAL",      N_("Delete Message")                       },
        { "A_EXECUTE",          N_("Execute")                              },
        { "A_GOTO_PREV",        N_("Go to Previous Unread Message")        },
        { "A_GOTO_NEXT",        N_("Go to Next Unread Message")            },
-       { "A_IGNORE_THREAD",    N_("Ignore thread")                        },
-       { "A_WATCH_THREAD",     N_("Watch thread")                         },
-       { "A_PRINT",            N_("Print")                                },
-       { "A_LEARN_SPAM",       N_("Learn Spam or Ham")                    },
+       { "A_IGNORE_THREAD",    N_("Ignore thread")                        },
+       { "A_WATCH_THREAD",     N_("Watch thread")                         },
+       { "A_PRINT",            N_("Print")                                },
+       { "A_LEARN_SPAM",       N_("Learn Spam or Ham")                    },
        { "A_GO_FOLDERS",       N_("Open folder/Go to folder list")        },
-       { "A_PREFERENCES",      N_("Preferences")                          },
+       { "A_PREFERENCES",      N_("Preferences")                          },
 
        { "A_SEND",             N_("Send Message")                         },
        { "A_SENDL",            N_("Put into queue folder and send later") },
@@ -220,11 +224,13 @@ struct {
 #ifdef USE_ENCHANT
        { "A_CHECK_SPELLING",   N_("Check spelling")                       },
 #endif
-       { "A_CLAWS_ACTIONS",    N_("Claws Mail Actions Feature")           }, 
-       { "A_CANCEL_INC",       N_("Cancel receiving")                     },
-       { "A_CLOSE",            N_("Close window")                         },
-       { "A_SEPARATOR",        N_("Separator")                         },
-       { "A_CLAWS_PLUGINS",    N_("Claws Mail Plugins")       },
+       { "A_CLAWS_ACTIONS",    N_("Claws Mail Actions Feature")           }, 
+       { "A_CANCEL_INC",       N_("Cancel receiving")                     },
+       { "A_CANCEL_SEND",      N_("Cancel sending")                       },
+       { "A_CANCEL_ALL",       N_("Cancel receiving/sending")             },
+       { "A_CLOSE",            N_("Close window")                         },
+       { "A_SEPARATOR",        N_("Separator")                            },
+       { "A_CLAWS_PLUGINS",    N_("Claws Mail Plugins")                   },
 };
 
 /* struct holds configuration files and a list of
@@ -305,13 +311,13 @@ GList *toolbar_get_action_items(ToolbarType source)
        gint i = 0;
        
        if (source == TOOLBAR_MAIN) {
-               gint main_items[]   = { A_RECEIVE_ALL,   A_RECEIVE_CUR,   A_SEND_QUEUED,
+               gint main_items[] = { A_RECEIVE_ALL,   A_RECEIVE_CUR,   A_SEND_QUEUED,
                                        A_COMPOSE_EMAIL, A_REPLY_MESSAGE, A_REPLY_SENDER, 
-                                       A_REPLY_ALL,     A_REPLY_ML,      A_OPEN_MAIL,  A_FORWARD, 
-                                       A_TRASH , A_DELETE_REAL,       A_EXECUTE,       A_GOTO_PREV, 
-                                       A_GOTO_NEXT,    A_IGNORE_THREAD,  A_WATCH_THREAD,       A_PRINT,
-                                       A_ADDRBOOK,     A_LEARN_SPAM, A_GO_FOLDERS, 
-                                       A_CANCEL_INC,   A_PREFERENCES };
+                                       A_REPLY_ALL,     A_REPLY_ML,      A_OPEN_MAIL,     A_FORWARD, 
+                                       A_TRASH,         A_DELETE_REAL,   A_EXECUTE,       A_GOTO_PREV, 
+                                       A_GOTO_NEXT,     A_IGNORE_THREAD, A_WATCH_THREAD,  A_PRINT,
+                                       A_ADDRBOOK,      A_LEARN_SPAM,    A_GO_FOLDERS, 
+                                       A_CANCEL_INC,    A_CANCEL_SEND,   A_CANCEL_ALL,    A_PREFERENCES };
 
                for (i = 0; i < sizeof main_items / sizeof main_items[0]; i++)  {
                        items = g_list_append(items, gettext(toolbar_text[main_items[i]].descr));
@@ -424,6 +430,8 @@ const gchar *toolbar_get_short_text(int action) {
        case A_LINEWRAP_ALL:    return _("Wrap all");
        case A_ADDRBOOK:        return _("Address");
        case A_CANCEL_INC:      return _("Stop");
+       case A_CANCEL_SEND:     return _("Stop");
+       case A_CANCEL_ALL:      return _("Stop all");
        case A_EXECUTE:         return _("Execute");
        #ifdef USE_ENCHANT
        case A_CHECK_SPELLING:  return _("Check spelling");
@@ -467,6 +475,8 @@ gint toolbar_get_icon(int action) {
        case A_LINEWRAP_ALL:    return STOCK_PIXMAP_LINEWRAP_ALL;
        case A_ADDRBOOK:        return STOCK_PIXMAP_ADDRESS_BOOK;
        case A_CANCEL_INC:      return STOCK_PIXMAP_CANCEL;
+       case A_CANCEL_SEND:     return STOCK_PIXMAP_CANCEL;
+       case A_CANCEL_ALL:      return STOCK_PIXMAP_CANCEL;
        case A_EXECUTE:         return STOCK_PIXMAP_EXEC;
        #ifdef USE_ENCHANT
        case A_CHECK_SPELLING:  return STOCK_PIXMAP_CHECK_SPELLING;
@@ -1486,6 +1496,19 @@ static void toolbar_cancel_inc_cb(GtkWidget *widget, gpointer data)
        imap_cancel_all();
 }
 
+static void toolbar_cancel_send_cb(GtkWidget *widget, gpointer data)
+{
+       ToolbarItem *toolbar_item = (ToolbarItem*)data;
+
+       cm_return_if_fail(toolbar_item != NULL);
+       send_cancel();
+}
+
+static void toolbar_cancel_all_cb(GtkWidget *widget, gpointer data)
+{
+       toolbar_cancel_inc_cb(widget, data);
+       toolbar_cancel_send_cb(widget, data);
+}
 
 static void toolbar_print_cb(GtkWidget *widget, gpointer data)
 {
@@ -1746,6 +1769,8 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
 #endif
                { A_CLAWS_ACTIONS,      toolbar_actions_execute_cb      },
                { A_CANCEL_INC,         toolbar_cancel_inc_cb           },
+               { A_CANCEL_SEND,        toolbar_cancel_send_cb          },
+               { A_CANCEL_ALL,         toolbar_cancel_all_cb           },
                { A_CLAWS_PLUGINS,  toolbar_plugins_execute_cb  },
        };
 
@@ -2152,6 +2177,14 @@ Toolbar *toolbar_create(ToolbarType       type,
                        TOOLBAR_ITEM(item,icon_wid,toolbar_item->text,_("Cancel receiving"));
                        toolbar_data->cancel_inc_btn = item;
                        break;
+               case A_CANCEL_SEND:
+                       TOOLBAR_ITEM(item,icon_wid,toolbar_item->text,_("Cancel sending"));
+                       toolbar_data->cancel_send_btn = item;
+                       break;
+               case A_CANCEL_ALL:
+                       TOOLBAR_ITEM(item,icon_wid,toolbar_item->text,_("Cancel receiving/sending"));
+                       toolbar_data->cancel_all_btn = item;
+                       break;
                case A_CLAWS_PLUGINS:
                        TOOLBAR_ITEM(item,icon_wid,toolbar_item->text, toolbar_item->text);
                        break;
@@ -2442,6 +2475,10 @@ do { \
                SET_WIDGET_COND(toolbar->cancel_inc_btn,
                                M_INC_ACTIVE);
 
+       if (toolbar->cancel_send_btn)
+               SET_WIDGET_COND(toolbar->cancel_send_btn,
+                               M_SEND_ACTIVE);
+
        for (cur = toolbar->action_list; cur != NULL;  cur = cur->next) {
                ToolbarClawsActions *act = (ToolbarClawsActions*)cur->data;
                
@@ -2468,7 +2505,10 @@ do { \
 
        /* match any bit flags */
 
-       /*
+       if (toolbar->cancel_all_btn)
+               SET_WIDGET_COND(toolbar->cancel_all_btn,
+                               M_INC_ACTIVE, M_SEND_ACTIVE);
+
        for (cur = entry_list; cur != NULL; cur = cur->next) {
                Entry *e = (Entry*) cur->data;
 
@@ -2477,7 +2517,6 @@ do { \
                        GTK_BUTTON_SET_SENSITIVE(e->widget, sensitive); 
                }
        }
-       */
 
        while (entry_list != NULL) {
                Entry *e = (Entry*) entry_list->data;
@@ -2559,6 +2598,8 @@ static void toolbar_init(Toolbar * toolbar)
        toolbar->learn_spam_icon   = NULL;
        toolbar->learn_ham_icon    = NULL;
        toolbar->cancel_inc_btn    = NULL;
+       toolbar->cancel_send_btn   = NULL;
+       toolbar->cancel_all_btn    = NULL;
 
        /* compose buttons */ 
        toolbar->sendl_btn         = NULL;
index 1455495e8f315853c0ef87feeec218790da8c260..f0cd8c8659e3f4473a5270020d3a79f711a08653 100644 (file)
@@ -77,6 +77,8 @@ struct _Toolbar {
        GtkWidget *learn_ham_icon;
        
        GtkWidget *cancel_inc_btn;
+       GtkWidget *cancel_send_btn;
+       GtkWidget *cancel_all_btn;
        
        ComposeButtonType compose_btn_type;
        LearnButtonType learn_btn_type;
@@ -194,6 +196,8 @@ enum {
        /* common items */
        A_CLAWS_ACTIONS,
        A_CANCEL_INC,
+       A_CANCEL_SEND,
+       A_CANCEL_ALL,
        A_CLOSE,
 
        A_SEPARATOR,