aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-23 08:13:44 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-23 08:13:44 +0000
commitef9b25bb1a22c98c33d6d1edd48f061243838e48 (patch)
tree3c8969ac653007534d6f7a051dc4c250782bf20b
parent4c2d91b4e1f289b61d78c7e6bfdd116f3d215d37 (diff)
enabled moving of virtual folders.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2634 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog5
-rw-r--r--libsylph/virtual.c16
-rw-r--r--src/folderview.c4
3 files changed, 21 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 056c204b..3e1460d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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) {