[claws-mail-cvs-commit] clawsmailmodule.c
Holger Berndt <[email protected]> Wed, 19 Aug 2009 17:11:30 +0000
| Newsgroups | gmane.mail.sylpheed.claws.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /srv/cvs/claws-mail/plugins/python/src
In directory ran:/tmp/cvs-serv23871/src
Modified Files:
Tag: gtk2
clawsmailmodule.c nodetype.c
Log Message:
2009-08-19 [holger] 0.1cvs8
* src/clawsmailmodule.c
* src/nodetype.c
Add basic interface to quicksearch
Index: clawsmailmodule.c
===================================================================
RCS file: /srv/cvs/claws-mail/plugins/python/src/Attic/clawsmailmodule.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -d -r1.1.2.2 -r1.1.2.3
--- clawsmailmodule.c 19 Aug 2009 16:49:25 -0000 1.1.2.2
+++ clawsmailmodule.c 19 Aug 2009 17:11:28 -0000 1.1.2.3
@@ -30,7 +30,10 @@
#include <pygtk/pygtk.h>
#include "mainwindow.h"
+#include "summaryview.h"
+#include "quicksearch.h"
#include "toolbar.h"
+#include "prefs_common.h"
#include <glib.h>
@@ -263,6 +266,48 @@
return result;
}
+static PyObject* quicksearch_search(PyObject *self, PyObject *args)
+{
+ const char *string;
+ int searchtype;
+ QuickSearch *qs;
+ MainWindow *mainwin;
+
+ /* must be given exactly one argument, which is a string */
+ searchtype = prefs_common.summary_quicksearch_type;
+ if(!PyArg_ParseTuple(args, "s|i", &string, &searchtype))
+ return NULL;
+
+ mainwin = mainwindow_get_mainwindow();
+ if(!mainwin || !mainwin->summaryview || !mainwin->summaryview->quicksearch) {
+ PyErr_SetString(PyExc_LookupError, "Quicksearch not found");
+ return NULL;
+ }
+
+ qs = mainwin->summaryview->quicksearch;
+ quicksearch_set(qs, searchtype, string);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+static PyObject* quicksearch_clear(PyObject *self, PyObject *args)
+{
+ QuickSearch *qs;
+ MainWindow *mainwin;
+
+ mainwin = mainwindow_get_mainwindow();
+ if(!mainwin || !mainwin->summaryview || !mainwin->summaryview->quicksearch) {
+ PyErr_SetString(PyExc_LookupError, "Quicksearch not found");
+ return NULL;
+ }
+
+ qs = mainwin->summaryview->quicksearch;
+ quicksearch_set(qs, prefs_common.summary_quicksearch_type, "");
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
static PyMethodDef ClawsMailMethods[] = {
/* public */
@@ -270,6 +315,8 @@
{"get_folder_tree", get_folder_tree, METH_VARARGS, "Get folder tree."},
{"get_folderview_selected_folder", get_folderview_selected_folder, METH_NOARGS, "Get selected folder in folderview."},
{"folderview_select_folder", folderview_select_folder, METH_VARARGS, "Select folder in folderview. Takes an argument of type Folder."},
+ {"quicksearch_search", quicksearch_search, METH_VARARGS, "Perform a quicksearch."},
+ {"quicksearch_clear", quicksearch_clear, METH_NOARGS, "Clear the quicksearch."},
/* private */
{"__gobj", private_wrap_gobj, METH_VARARGS, "Wraps a C GObject"},
@@ -277,6 +324,23 @@
{NULL, NULL, 0, NULL}
};
+static void initmiscstuff(PyObject *module)
+{
+ PyObject *dict;
+ PyObject *res;
+ const char *cmd =
+ "QUICK_SEARCH_SUBJECT = 0\n"
+ "QUICK_SEARCH_FROM = 1\n"
+ "QUICK_SEARCH_TO = 2\n"
+ "QUICK_SEARCH_EXTENDED = 3\n"
+ "QUICK_SEARCH_MIXED = 4\n"
+ "QUICK_SEARCH_TAG = 5\n"
+ "\n";
+ dict = PyModule_GetDict(module);
+ res = PyRun_String(cmd, Py_file_input, dict, dict);
+ Py_XDECREF(res);
+}
+
void claws_mail_python_init(void)
{
if (!Py_IsInitialized())
@@ -290,5 +354,8 @@
initcomposewindow(cm_module);
initfolder(cm_module);
+ /* initialize misc things */
+ initmiscstuff(cm_module);
+
PyRun_SimpleString("import clawsmail\n");
}
Index: nodetype.c
===================================================================
RCS file: /srv/cvs/claws-mail/plugins/python/src/Attic/nodetype.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -d -r1.1.2.1 -r1.1.2.2
--- nodetype.c 19 Aug 2009 16:49:26 -0000 1.1.2.1
+++ nodetype.c 19 Aug 2009 17:11:28 -0000 1.1.2.2
@@ -47,6 +47,12 @@
" for child in self.children:\n"
" str.extend(child.get_str_list(level+1))\n"
" return str\n"
+ "\n"
+ " def traverse(self, callback):\n"
+ " if self.data:\n"
+ " callback(self.data)\n"
+ " for child in self.children:\n"
+ " child.traverse(callback)\n"
"\n";
dict = PyModule_GetDict(module);