diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2010-07-23 08:13:44 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2010-07-23 08:13:44 +0000 |
commit | ef9b25bb1a22c98c33d6d1edd48f061243838e48 (patch) | |
tree | 3c8969ac653007534d6f7a051dc4c250782bf20b | |
parent | 4c2d91b4e1f289b61d78c7e6bfdd116f3d215d37 (diff) |
enabled moving of virtual folders.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2634 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | libsylph/virtual.c | 16 | ||||
-rw-r--r-- | src/folderview.c | 4 |
3 files changed, 21 insertions, 4 deletions
@@ -1,3 +1,8 @@ +2010-07-23 + + * libsylph/virtual.c + src/folderview.c: enabled moving of virtual folders. + 2010-07-22 * src/addressbook.c: implemeted drag and drop of addresses. diff --git a/libsylph/virtual.c b/libsylph/virtual.c index 5452d1da..ead73eee 100644 --- a/libsylph/virtual.c +++ b/libsylph/virtual.c @@ -1,6 +1,6 @@ /* * LibSylph -- E-Mail client library - * Copyright (C) 1999-2009 Hiroyuki Yamamoto + * Copyright (C) 1999-2010 Hiroyuki Yamamoto * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -108,6 +108,9 @@ static gint virtual_scan_folder (Folder *folder, static gint virtual_rename_folder (Folder *folder, FolderItem *item, const gchar *name); +static gint virtual_move_folder (Folder *folder, + FolderItem *item, + FolderItem *new_parent); static gint virtual_remove_folder (Folder *folder, FolderItem *item); @@ -142,7 +145,7 @@ static FolderClass virtual_class = NULL, virtual_rename_folder, - NULL, + virtual_move_folder, virtual_remove_folder, }; @@ -571,6 +574,15 @@ static gint virtual_rename_folder(Folder *folder, FolderItem *item, return mh_get_class()->rename_folder(folder, item, name); } +static gint virtual_move_folder(Folder *folder, FolderItem *item, + FolderItem *new_parent) +{ + g_return_val_if_fail(item != NULL, -1); + g_return_val_if_fail(item->stype == F_VIRTUAL, -1); + + return mh_get_class()->move_folder(folder, item, new_parent); +} + static gint virtual_remove_folder(Folder *folder, FolderItem *item) { gchar *path; diff --git a/src/folderview.c b/src/folderview.c index 66ff0576..fe1d3dee 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -1547,7 +1547,7 @@ void folderview_move_folder(FolderView *folderview) g_return_if_fail(item->folder != NULL); if (!item->path) return; - if (item->stype != F_NORMAL) return; + if (item->stype != F_NORMAL || item->stype != F_VIRTUAL) return; if (item->folder->klass->move_folder) folderview_move_folder_cb(folderview, 0, NULL); @@ -1701,7 +1701,7 @@ static gboolean folderview_menu_popup(FolderView *folderview, } if (item->stype == F_VIRTUAL) { new_folder = FALSE; - rename_folder = delete_folder = TRUE; + move_folder = rename_folder = delete_folder = TRUE; } if (FOLDER_TYPE(folder) == F_IMAP || FOLDER_TYPE(folder) == F_NEWS) { |