#include "claws-features.h"
#endif
-#include <glib/gi18n.h>
-
#include "foldertype.h"
#include "folderpropertiestype.h"
#include "messageinfotype.h"
+#include "mailboxtype.h"
+
+#include <glib/gi18n.h>
#include <structmember.h>
Py_RETURN_NONE;
}
-static PyObject* get_path(clawsmail_FolderObject *self, void *closure)
+static PyObject* get_mailbox_name(clawsmail_FolderObject *self, void *closure)
{
- if(self->folderitem && self->folderitem->path)
- return PyString_FromString(self->folderitem->path);
+ if(self->folderitem && self->folderitem->folder && self->folderitem->folder->name)
+ return PyString_FromString(self->folderitem->folder->name);
Py_RETURN_NONE;
}
-static PyObject* get_mailbox_name(clawsmail_FolderObject *self, void *closure)
+static PyObject* get_mailbox(clawsmail_FolderObject *self, void *closure)
{
- if(self->folderitem && self->folderitem->folder && self->folderitem->folder->name)
- return PyString_FromString(self->folderitem->folder->name);
+ if(self->folderitem && self->folderitem->folder)
+ return clawsmail_mailbox_new(self->folderitem->folder);
+ Py_RETURN_NONE;
+}
+
+
+static PyObject* get_identifier(clawsmail_FolderObject *self, void *closure)
+{
+ if(self->folderitem) {
+ gchar *id;
+ id = folder_item_get_identifier(self->folderitem);
+ if(id) {
+ PyObject *retval;
+ retval = PyString_FromString(id);
+ g_free(id);
+ return retval;
+ }
+ }
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_path(clawsmail_FolderObject *self, void *closure)
+{
+ if(self->folderitem) {
+ gchar *path;
+ path = folder_item_get_path(self->folderitem);
+ if(path) {
+ PyObject *retval;
+ retval = PyString_FromString(path);
+ g_free(path);
+ return retval;
+ }
+ }
Py_RETURN_NONE;
}
+
static PyObject* get_properties(clawsmail_FolderObject *self, void *closure)
{
Py_INCREF(self->properties);
return self->properties;
}
+static PyObject* get_num_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->total_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_new_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->new_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_unread_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->unread_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_marked_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->marked_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_locked_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->locked_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_unread_marked_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->unreadmarked_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_ignored_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->ignored_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_watched_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->watched_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_replied_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->replied_msgs);
+ Py_RETURN_NONE;
+}
+
+static PyObject* get_num_forwarded_messages(clawsmail_FolderObject *self, void *closure)
+{
+ if(self && self->folderitem)
+ return PyInt_FromLong(self->folderitem->forwarded_msgs);
+ Py_RETURN_NONE;
+}
+
static PyMethodDef Folder_methods[] = {
{"get_identifier", (PyCFunction)Folder_get_identifier, METH_NOARGS,
"get_identifier() - get identifier\n"
"\n"
- "Get identifier for folder as a string (e.g. #mh/foo/bar)."},
+ "Get identifier for folder as a string (e.g. #mh/foo/bar).\n\n"
+ "DEPRECATED: Use identifier property instead."},
+
{"get_messages", (PyCFunction)Folder_get_messages, METH_NOARGS,
"get_messages() - get a tuple of messages in folder\n"
"\n"
"Get a tuple of MessageInfos for the folder."},
- {NULL}
+
+ {NULL}
};
static PyGetSetDef Folder_getset[] = {
{"path", (getter)get_path, (setter)NULL,
"path - path of folder", NULL},
+ {"identifier", (getter)get_identifier, (setter)NULL,
+ "identifier - identifier of folder", NULL},
+
+ {"mailbox", (getter)get_mailbox, (setter)NULL,
+ "mailbox - corresponding mailbox", NULL},
+
{"mailbox_name", (getter)get_mailbox_name, (setter)NULL,
- "mailbox_name - name of the corresponding mailbox", NULL},
+ "mailbox_name - name of the corresponding mailbox\n\n"
+ "DEPRECATED: Use folder.mailbox.name instead", NULL},
{"properties", (getter)get_properties, (setter)NULL,
"properties - folder properties object", NULL},
+ {"num_messages", (getter)get_num_messages, (setter)NULL,
+ "num_messages - total number of messages in folder", NULL},
+
+ {"num_new_messages", (getter)get_num_new_messages, (setter)NULL,
+ "num_new_messages - number of new messages in folder", NULL},
+
+ {"num_unread_messages", (getter)get_num_unread_messages, (setter)NULL,
+ "num_unread_messages - number of unread messages in folder", NULL},
+
+ {"num_marked_messages", (getter)get_num_marked_messages, (setter)NULL,
+ "num_marked_messages - number of marked messages in folder", NULL},
+
+ {"num_locked_messages", (getter)get_num_locked_messages, (setter)NULL,
+ "num_locked_messages - number of locked messages in folder", NULL},
+
+ {"num_unread_marked_messages", (getter)get_num_unread_marked_messages, (setter)NULL,
+ "num_unread_marked_messages - number of unread marked messages in folder", NULL},
+
+ {"num_ignored_messages", (getter)get_num_ignored_messages, (setter)NULL,
+ "num_ignored_messages - number of ignored messages in folder", NULL},
+
+ {"num_watched_messages", (getter)get_num_watched_messages, (setter)NULL,
+ "num_watched_messages - number of watched messages in folder", NULL},
+
+ {"num_replied_messages", (getter)get_num_replied_messages, (setter)NULL,
+ "num_replied_messages - number of replied messages in folder", NULL},
+
+ {"num_forwarded_messages", (getter)get_num_forwarded_messages, (setter)NULL,
+ "num_forwarded_messages - number of forwarded messages in folder", NULL},
+
{NULL}
};
return NULL;
id = folder_item_get_identifier(folderitem);
- arglist = Py_BuildValue("(s)", id);
- g_free(id);
- ff = (clawsmail_FolderObject*) PyObject_CallObject((PyObject*) &clawsmail_FolderType, arglist);
- Py_DECREF(arglist);
- return (PyObject*)ff;
+ if(id) {
+ arglist = Py_BuildValue("(s)", id);
+ g_free(id);
+ ff = (clawsmail_FolderObject*) PyObject_CallObject((PyObject*) &clawsmail_FolderType, arglist);
+ Py_DECREF(arglist);
+ return (PyObject*)ff;
+ }
+ Py_RETURN_NONE;
}
FolderItem* clawsmail_folder_get_item(PyObject *self)