claws-plugin-mailmbox: update to reflect the current Gtk API
authorDmitry Baryshkov <dbaryshkov@gmail.com>
Thu, 4 Dec 2008 11:25:10 +0000 (14:25 +0300)
committerDmitry Baryshkov <dbaryshkov@gmail.com>
Thu, 4 Dec 2008 13:58:50 +0000 (16:58 +0300)
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
packages/sylpheed/claws-plugin-mailmbox_1.14.bb
packages/sylpheed/files/claws-plugin-mailmbox-fixup.patch [new file with mode: 0644]

index cfa26a4..621fbb4 100644 (file)
@@ -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 (file)
index 0000000..f8cce25
--- /dev/null
@@ -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;