[Xfce4-commits] <postler:master> Implement 'Fulltext' search, treating it like a special header
Christian Dywan
noreply at xfce.org
Sat Jul 10 00:24:03 CEST 2010
Updating branch refs/heads/master
to 1e897eb58ba839170ddf21dfb4748e119f3f0923 (commit)
from 94be2a7aa7b50dc41a412e28f844805b1a89a39d (commit)
commit 1e897eb58ba839170ddf21dfb4748e119f3f0923
Author: Christian Dywan <christian at twotoasts.de>
Date: Sat Jun 26 22:08:50 2010 +0200
Implement 'Fulltext' search, treating it like a special header
postler/postler-bureau.vala | 12 +++++++++++-
postler/postler-messages.vala | 17 +++++++++++++++++
2 files changed, 28 insertions(+), 1 deletions(-)
diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index ba6da9f..8a9134a 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -79,6 +79,7 @@ public class Postler.Bureau : Gtk.Window {
<toolitem action="SearchSubject"/>
<toolitem action="SearchSender"/>
<toolitem action="SearchRecipient"/>
+ <toolitem action="SearchFulltext"/>
<separator expand="true"/>
<toolitem action="SaveSearch"/>
</toolbar>
@@ -159,6 +160,9 @@ public class Postler.Bureau : Gtk.Window {
case 2:
messages.search (search.text, "to");
break;
+ case 3:
+ messages.search (search.text, "fulltext");
+ break;
default:
assert_not_reached ();
}
@@ -183,6 +187,9 @@ public class Postler.Bureau : Gtk.Window {
case 2:
header = "to";
break;
+ case 3:
+ header = "fulltext";
+ break;
default:
assert_not_reached ();
}
@@ -263,7 +270,9 @@ public class Postler.Bureau : Gtk.Window {
{ "SearchSender", null, N_("Sender"), "",
N_("Search messages by sender"), 1 },
{ "SearchRecipient", null, N_("Recipient"), "",
- N_("Search messages by recipient"), 2 }
+ N_("Search messages by recipient"), 2 },
+ { "SearchFulltext", null, N_("_Fulltext"), "",
+ N_("Search the full message text"), 3}
};
static string icon_name_for_mime_type (string mime_type, Gtk.Widget widget) {
@@ -366,6 +375,7 @@ public class Postler.Bureau : Gtk.Window {
actions.get_action ("SearchSubject").is_important = true;
actions.get_action ("SearchSender").is_important = true;
actions.get_action ("SearchRecipient").is_important = true;
+ actions.get_action ("SearchFulltext").is_important = true;
actions.get_action ("SaveSearch").is_important = true;
messages_box.pack_start (search_options, false, false, 0);
messages = new Postler.Messages (accounts);
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index ec1a06a..a534802 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -500,6 +500,23 @@ public class Postler.Messages : Gtk.TreeView {
}
if (skip)
continue;
+
+ unowned string? fulltext = null;
+ if (headers[0] == "fulltext")
+ fulltext = filters[0];
+ else if (headers[1] == "fulltext")
+ fulltext = filters[1];
+ if (fulltext != null) {
+ skip = true;
+ while ((line = stream.read_line (null, null)) != null) {
+ if (line.down ().contains (fulltext)) {
+ skip = false;
+ break;
+ }
+ }
+ }
+ if (skip)
+ continue;
} catch (GLib.Error contents_error) {
GLib.critical (_("Failed to read message \"%s\": %s"),
contents.get_path (), contents_error.message);
More information about the Xfce4-commits
mailing list