Updating branch refs/heads/master to cf13c0c80e7d55136edfee3485b216ff23a1700d (commit) from 81001743bcef4a5781fc1d2d115fe64b068efd63 (commit)
commit cf13c0c80e7d55136edfee3485b216ff23a1700d Author: Christian Dywan <christ...@twotoasts.de> Date: Fri May 27 20:24:55 2011 +0200 Implement forwarded and replied message properties postler/postler-index.vala | 16 ++++++++++------ postler/postler-message.vala | 14 ++++++++++++-- postler/postler-messages.vala | 8 ++++++-- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/postler/postler-index.vala b/postler/postler-index.vala index a611ed3..34fb5ff 100644 --- a/postler/postler-index.vala +++ b/postler/postler-index.vala @@ -38,7 +38,8 @@ namespace Postler { """ CREATE TABLE IF NOT EXISTS messages (uri TEXT UNIQUE, subject TEXT, sender TEXT, recipients TEXT, - unread BOOLEAN, flagged BOOLEAN, priority BOOLEAN, + unread BOOLEAN, flagged BOOLEAN, + forwarded BOOLEAN, replied BOOLEAN, priority BOOLEAN, date INTEGER, excerpt TEXT, zeitgeist BOOLEAN); """ ) != Sqlite.OK) @@ -49,8 +50,9 @@ namespace Postler { if (statement_insert == null) { if (database.prepare_v2 (""" INSERT OR IGNORE INTO messages - (uri, subject, sender, recipients, unread, flagged, priority, date) - VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8) + (uri, subject, sender, recipients, + unread, flagged, forwarded, replied, priority, date) + VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) """, -1, out statement_insert) != Sqlite.OK) throw new GLib.FileError.FAILED (_("Failed to open database: %s"), database.errmsg ()); @@ -62,8 +64,10 @@ namespace Postler { && statement_insert.bind_text (4, message.recipients, -1) == Sqlite.OK && statement_insert.bind_int64 (5, message.unread ? 1 : 0) == Sqlite.OK && statement_insert.bind_int64 (6, message.flagged ? 1 : 0) == Sqlite.OK - && statement_insert.bind_int64 (7, message.flagged ? 1 : 0) == Sqlite.OK - && statement_insert.bind_int64 (8, message.get_timestamp ()) == Sqlite.OK + && statement_insert.bind_int64 (7, message.forwarded ? 1 : 0) == Sqlite.OK + && statement_insert.bind_int64 (8, message.replied ? 1 : 0) == Sqlite.OK + && statement_insert.bind_int64 (9, message.priority ? 1 : 0) == Sqlite.OK + && statement_insert.bind_int64 (10, message.get_timestamp ()) == Sqlite.OK && statement_insert.step () == Sqlite.DONE; statement_insert.reset (); if (!success) @@ -126,7 +130,7 @@ namespace Postler { if (statement_get == null) { if (database.prepare_v2 (""" SELECT subject, sender, recipients, - unread, flagged, priority, date FROM messages WHERE uri LIKE ?1 + unread, flagged, forwarded, replied, priority, date FROM messages WHERE uri LIKE ?1 """, -1, out statement_get) != Sqlite.OK) throw new GLib.FileError.FAILED (_("Failed to list messages: %s"), database.errmsg ()); diff --git a/postler/postler-message.vala b/postler/postler-message.vala index cb709d6..22f29c0 100644 --- a/postler/postler-message.vala +++ b/postler/postler-message.vala @@ -24,6 +24,8 @@ namespace Postler { public string? reply_to { public get; set; } public bool unread { public get; set; } public bool flagged { public get; set; } + public bool forwarded { public get; set; } + public bool replied { public get; set; } public bool priority { public get; set; } public string organization { public get; set; } public string application { public get; set; } @@ -48,6 +50,8 @@ namespace Postler { message_data.insert ("recipients", this.recipients ?? ""); message_data.insert ("unread", this.unread); message_data.insert ("flagged", this.flagged); + message_data.insert ("forwarded", this.forwarded); + message_data.insert ("replied", this.replied); message_data.insert ("priority", this.priority); message_data.insert ("date", this.get_timestamp ()); return message_data; @@ -63,6 +67,8 @@ namespace Postler { this.recipients = message_data.lookup ("recipients").get_string (); this.unread = message_data.lookup ("unread").get_boolean (); this.flagged = message_data.lookup ("flagged").get_boolean (); + this.forwarded = message_data.lookup ("forwarded").get_boolean (); + this.replied = message_data.lookup ("replied").get_boolean (); this.priority = message_data.lookup ("priority").get_boolean (); this.date = new GLib.DateTime.from_unix_utc (message_data.lookup ("date").get_int64 ()); } @@ -74,8 +80,10 @@ namespace Postler { this.recipients = statement.column_text (2); this.unread = statement.column_int64 (3) != 0; this.flagged = statement.column_int64 (4) != 0; - this.priority = statement.column_int64 (5) != 0; - this.date = new GLib.DateTime.from_unix_utc (statement.column_int64 (6)); + this.forwarded = statement.column_int64 (5) != 0; + this.replied = statement.column_int64 (6) != 0; + this.priority = statement.column_int64 (7) != 0; + this.date = new GLib.DateTime.from_unix_utc (statement.column_int64 (8)); } void read_flags (string path) { @@ -84,6 +92,8 @@ namespace Postler { if (last_colon != null) { this.unread = last_colon.chr (-1, 'S') == null; this.flagged = last_colon.chr (-1, 'F') != null; + this.forwarded = last_colon.chr (-1, 'P') != null; + this.replied = last_colon.chr (-1, 'R') != null; } else { this.unread = true; diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala index 6dfe791..db2c459 100644 --- a/postler/postler-messages.vala +++ b/postler/postler-messages.vala @@ -90,8 +90,12 @@ public class Postler.Messages : Gtk.TreeView { model.get (iter, Columns.MESSAGE, out message); - cell.set ("stock-id", message.unread ? STOCK_MAIL_UNREAD : null); - /* TODO: missing status values */ + if (message.forwarded) + cell.set ("stock-id", STOCK_MAIL_FORWARDED); + else if (message.replied) + cell.set ("stock-id", STOCK_MAIL_REPLIED); + else + cell.set ("stock-id", message.unread ? STOCK_MAIL_UNREAD : null); } void render_flag (Gtk.CellLayout layout, Gtk.CellRenderer cell, _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits