summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/sylpheed/claws-plugin-mailmbox_1.14.bb11
-rw-r--r--packages/sylpheed/files/claws-plugin-mailmbox-fixup.patch218
2 files changed, 221 insertions, 8 deletions
diff --git a/packages/sylpheed/claws-plugin-mailmbox_1.14.bb b/packages/sylpheed/claws-plugin-mailmbox_1.14.bb
index cfa26a464e..621fbb4fdf 100644
--- a/packages/sylpheed/claws-plugin-mailmbox_1.14.bb
+++ b/packages/sylpheed/claws-plugin-mailmbox_1.14.bb
@@ -2,19 +2,14 @@ SECTION = "x11/network"
DESCRIPTION = "Mail user agent plugins"
DEPENDS = "claws-mail"
LICENSE = "GPL"
-PR = "r1"
+PR = "r2"
-SRC_URI = "http://www.claws-mail.org/downloads/plugins/mailmbox-${PV}.tar.gz"
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/mailmbox-${PV}.tar.gz\
+ file://claws-plugin-mailmbox-fixup.patch;patch=1"
inherit autotools pkgconfig
S = "${WORKDIR}/mailmbox-${PV}"
-do_configure() {
- gnu-configize
- libtoolize --force
- oe_runconf
-}
-
FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
diff --git a/packages/sylpheed/files/claws-plugin-mailmbox-fixup.patch b/packages/sylpheed/files/claws-plugin-mailmbox-fixup.patch
new file mode 100644
index 0000000000..f8cce25225
--- /dev/null
+++ b/packages/sylpheed/files/claws-plugin-mailmbox-fixup.patch
@@ -0,0 +1,218 @@
+Index: mailmbox-1.14/src/plugin_gtk.c
+===================================================================
+--- mailmbox-1.14.orig/src/plugin_gtk.c 2008-12-04 06:18:50.000000000 +0300
++++ mailmbox-1.14/src/plugin_gtk.c 2008-12-04 06:49:40.000000000 +0300
+@@ -35,39 +35,41 @@
+
+ #include "pluginconfig.h"
+
+-static void new_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void delete_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void rename_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void update_tree_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void remove_mailbox_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void add_mailbox(gpointer callback_data, guint callback_action, GtkWidget *widget);
+-
+-static GtkItemFactoryEntry claws_mailmbox_popup_entries[] =
+-{
+- {N_("/Create _new folder..."), NULL, new_folder_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Rename folder..."), NULL, rename_folder_cb, 0, NULL},
+- {N_("/M_ove folder..."), NULL, move_folder_cb, 0, NULL},
+- {N_("/Cop_y folder..."), NULL, move_folder_cb, 1, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Delete folder"), NULL, delete_folder_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Check for new messages"), NULL, update_tree_cb, 0, NULL},
+- {N_("/C_heck for new folders"), NULL, update_tree_cb, 1, NULL},
+- {N_("/R_ebuild folder tree"), NULL, update_tree_cb, 2, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/Remove _mailbox"), NULL, remove_mailbox_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
++static void new_folder_cb(GtkAction *action, gpointer data);
++static void delete_folder_cb(GtkAction *action, gpointer data);
++static void rename_folder_cb(GtkAction *action, gpointer data);
++static void move_folder_cb(GtkAction *action, gpointer data);
++static void update_tree_cb(GtkAction *action, gpointer data);
++static void remove_mailbox_cb(GtkAction *action, gpointer data);
++static void add_mailbox(gpointer callback_data, guint callback_action, gpointer data);
++
++static GtkActionEntry claws_mailmbox_popup_entries[] =
++{
++ {"FolderViewPopup/CreateNewFolder", NULL, N_("/Create _new folder..."), NULL, NULL, G_CALLBACK(new_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/RenameFolder", NULL, N_("/_Rename folder..."), NULL, NULL, G_CALLBACK(rename_folder_cb) },
++ {"FolderViewPopup/MoveFolder", NULL, N_("/M_ove folder..."), NULL, NULL, G_CALLBACK(move_folder_cb) },
++ {"FolderViewPopup/CopyFolder", NULL, N_("/Cop_y folder..."), NULL, NULL, G_CALLBACK(move_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/DeleteFolder", NULL, N_("/_Delete folder"), NULL, NULL, G_CALLBACK(delete_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/CheckNewMessages", NULL, N_("/_Check for new messages"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/CheckNewFolders", NULL, N_("/C_heck for new folders"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/RebuildfTree", NULL, N_("/R_ebuild folder tree"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/RemoveMailbox", NULL, N_("/Remove _mailbox"), NULL, NULL, G_CALLBACK(remove_mailbox_cb) },
+ };
+
+-static void set_sensitivity(GtkItemFactory *factory, FolderItem *item);
++static void set_sensitivity(GtkUIManager *factory, FolderItem *item);
+
+ static FolderViewPopup claws_mailmbox_popup =
+ {
+ "mailmbox",
+ "<MailmboxFolder>",
+- NULL,
++ claws_mailmbox_popup_entries,
++ G_N_ELEMENTS(claws_mailmbox_popup_entries),
++ NULL, 0,
++ NULL, 0, 0, NULL, NULL,
+ set_sensitivity
+ };
+
+@@ -85,11 +87,6 @@
+ GtkItemFactory *ifactory;
+ MainWindow *mainwin = mainwindow_get_mainwindow();
+
+- n_entries = sizeof(claws_mailmbox_popup_entries) /
+- sizeof(claws_mailmbox_popup_entries[0]);
+- for (i = 0; i < n_entries; i++)
+- claws_mailmbox_popup.entries = g_slist_append(claws_mailmbox_popup.entries, &claws_mailmbox_popup_entries[i]);
+-
+ folderview_register_popup(&claws_mailmbox_popup);
+
+ ifactory = gtk_item_factory_from_widget(mainwin->menubar);
+@@ -115,7 +112,7 @@
+ gtk_item_factory_delete_item(ifactory, mainwindow_add_mailbox.path);
+ }
+
+-static void set_sensitivity(GtkItemFactory *factory, FolderItem *item)
++static void set_sensitivity(GtkUIManager *factory, FolderItem *item)
+ {
+ #define SET_SENS(name, sens) \
+ menu_set_sensitive(factory, name, sens)
+@@ -132,10 +129,13 @@
+ #undef SET_SENS
+ }
+
+-static void update_tree_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++#define DO_ACTION(name, act) { if (!strcmp(a_name, name)) act; }
++
++static void update_tree_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *item;
++ const gchar *a_name = gtk_action_get_name(action);
+
+ item = folderview_get_selected_item(folderview);
+ g_return_if_fail(item != NULL);
+@@ -144,16 +144,12 @@
+
+ g_return_if_fail(item->folder != NULL);
+
+- if (action == 0)
+- folderview_check_new(item->folder);
+- else if (action == 1)
+- folderview_rescan_tree(item->folder, FALSE);
+- else if (action == 2)
+- folderview_rescan_tree(item->folder, TRUE);
++ DO_ACTION("FolderViewPopup/CheckNewMessages", folderview_check_new(item->folder));
++ DO_ACTION("FolderViewPopup/CheckNewFolders", folderview_rescan_tree(item->folder, FALSE));
++ DO_ACTION("FolderViewPopup/RebuildTree", folderview_rescan_tree(item->folder, FALSE));
+ }
+
+-static void add_mailbox(gpointer callback_data, guint callback_action,
+- GtkWidget *widget)
++static void add_mailbox(gpointer callback_data, guint callback_action, gpointer data)
+ {
+ MainWindow *mainwin = (MainWindow *) callback_data;
+ gchar *path, *basename;
+@@ -193,10 +189,10 @@
+ return;
+ }
+
+-static void new_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void new_folder_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ FolderItem *item;
+ FolderItem *new_item;
+ gchar *new_folder;
+@@ -245,9 +241,10 @@
+ folder_write_list();
+ }
+
+-static void remove_mailbox_cb(FolderView *folderview, guint action, GtkWidget *widget)
++static void remove_mailbox_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ GtkCTreeNode *node;
+ FolderItem *item;
+ gchar *name;
+@@ -276,10 +273,10 @@
+ folder_destroy(item->folder);
+ }
+
+-static void delete_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void delete_folder_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ FolderItem *item;
+ gchar *message, *name;
+ AlertValue avalue;
+@@ -329,24 +326,41 @@
+
+ }
+
+-static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget)
++static void move_folder_cb(GtkAction *action, gpointer data)
++{
++ FolderView *folderview = (FolderView *)data;
++ FolderItem *from_folder = NULL, *to_folder = NULL;
++
++ from_folder = folderview_get_selected_item(folderview);
++ if (!from_folder || from_folder->folder->klass != claws_mailmbox_get_class())
++ return;
++
++ to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL, TRUE);
++ if (!to_folder)
++ return;
++
++ folderview_move_folder(folderview, from_folder, to_folder, 0);
++}
++
++static void copy_folder_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *from_folder = NULL, *to_folder = NULL;
+
+ from_folder = folderview_get_selected_item(folderview);
+ if (!from_folder || from_folder->folder->klass != claws_mailmbox_get_class())
+ return;
+
+- to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL);
++ to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL, TRUE);
+ if (!to_folder)
+ return;
+
+- folderview_move_folder(folderview, from_folder, to_folder, action);
++ folderview_move_folder(folderview, from_folder, to_folder, 1);
+ }
+
+-static void rename_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void rename_folder_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *item, *parent;
+ gchar *new_folder;
+ gchar *name;