Updating branch refs/heads/master to 6b25c523c5b94deb100149585a4d58067d81db6e (commit) from 1c91d20fd5f516ab370412e19c2a8939b96649a6 (commit)
commit 6b25c523c5b94deb100149585a4d58067d81db6e Author: Christian Dywan <christ...@twotoasts.de> Date: Sun Jan 30 09:15:10 2011 +0100 Add Important toggle button to the composer Fixes: https://bugs.launchpad.net/postler/+bug/706648 postler/postler-app.vala | 2 +- postler/postler-composer.vala | 77 +++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/postler/postler-app.vala b/postler/postler-app.vala index 019c695..2118cb5 100644 --- a/postler/postler-app.vala +++ b/postler/postler-app.vala @@ -87,7 +87,7 @@ public class Postler.App : Unique.App { { STOCK_MAIL_ATTACHMENT, null, 0, 0, "stock_attach" }, { STOCK_MAIL_FORWARD, N_("_Forward") }, { STOCK_MAIL_FORWARDED, "mail-forwarded", 0, 0, STOCK_MAIL_FORWARD }, - { STOCK_MAIL_MARK_IMPORTANT, null, 0, 0, STOCK_EMBLEM_IMPORTANT }, + { STOCK_MAIL_MARK_IMPORTANT, N_("Mark as _Important"), 0, 0, STOCK_EMBLEM_IMPORTANT }, { STOCK_MAIL_MARK_JUNK, N_("Mark as Junk"), 0, 0, null }, { STOCK_MAIL_MARK_NOT_JUNK, N_("Mark as Not Junk"), 0, 0, null }, { STOCK_MAIL_MARK_UNREAD, null, 0, 0, Gtk.STOCK_NEW }, diff --git a/postler/postler-composer.vala b/postler/postler-composer.vala index 257014d..e1279eb 100644 --- a/postler/postler-composer.vala +++ b/postler/postler-composer.vala @@ -43,6 +43,7 @@ public class Postler.Composer : Gtk.Window { <menuitem action="Close"/> </menu> <menu action="Edit"> + <menuitem action="MarkImportant"/> <menuitem action="Quote"/> <menuitem action="InsertEmoticonSmileBig"/> <menuitem action="InsertEmoticonWink"/> @@ -52,6 +53,7 @@ public class Postler.Composer : Gtk.Window { <toolbar> <toolitem action="Quote"/> <toolitem action="FileAttach"/> + <toolitem action="MarkImportant"/> <separator expand="true"/> </toolbar> <popup name="emoticons"> @@ -116,27 +118,34 @@ public class Postler.Composer : Gtk.Window { dialog.destroy (); return; } - var now = new Soup.Date.from_now (0); - string copy = entry_copy.text; - string header = ""; - Gtk.TreeIter iter; - if (!(attachments.model.get_iter_first (out iter))) { - header = ("From: %s\nTo: %s\n%s%s" - + "MIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\n" - + "Content-Type: text/plain; charset=UTF-8\n" - + "Subject: %s\nDate: %s\nX-Mailer: %s\n" - + (info.reply != null ? "Reply-To: " + info.reply + "\n" : "") - + (info.organization != null ? - "Organization: " + info.organization + "\n" : "") - + "\n").printf ( - sender, - entry_to.text, - copy != "" ? "CC: " : "", copy != "" ? copy + "\n" : "", - entry_subject.text, - now.to_string (Soup.DateFormat.RFC2822), - Postler.App.get_user_agent () - ); - } + + var now = new Soup.Date.from_now (0); + string copy = entry_copy.text; + string header = ("From: %s\nTo: %s\n%s%s" + + "MIME-Version: 1.0\n" + + "Subject: %s\n" + + "Date: %s\n" + + "X-Mailer: %s\n" + + (info.reply != null ? "Reply-To: " + info.reply + "\n" : "") + + (info.organization != null ? + "Organization: " + info.organization + "\n" : "")).printf ( + sender, + entry_to.text, + copy != "" ? "CC: " : "", copy != "" ? copy + "\n" : "", + entry_subject.text, + now.to_string (Soup.DateFormat.RFC2822), + Postler.App.get_user_agent ()); + + if ((actions.get_action ("MarkImportant") as Gtk.ToggleAction).active) + header += "X-Priority: 1\n"; + + Gtk.TreeIter iter; + if (!(attachments.model.get_iter_first (out iter))) { + header = header + + "Content-Transfer-Encoding: 8bit\n" + + "Content-Type: text/plain; charset=UTF-8\n"; + } + content.select_all (); content.copy_clipboard (); var clipboard = content.get_clipboard (Gdk.SELECTION_CLIPBOARD); @@ -173,21 +182,9 @@ public class Postler.Composer : Gtk.Window { string boundary = GLib.Checksum.compute_for_string ( GLib.ChecksumType.MD5, body + now.to_string (Soup.DateFormat.RFC2822)); - header = ("From: %s\nTo: %s\n%s%s" - + "MIME-Version: 1.0\n" - + "Content-Type: multipart/mixed; boundary=" + boundary + "\n" - + "Subject: %s\nDate: %s\nX-Mailer: %s\n" - + (info.reply != null ? "Reply-To: " + info.reply + "\n" : "") - + (info.organization != null ? - "Organization: " + info.organization + "\n" : "") - + "\n").printf ( - sender, - entry_to.text, - copy != "" ? "CC: " : "", copy != "" ? copy + "\n" : "", - entry_subject.text, - now.to_string (Soup.DateFormat.RFC2822), - Postler.App.get_user_agent () - ); + header = header + + "Content-Type: multipart/mixed; " + + "boundary=" + boundary + "\n"; StringBuilder body_builder = new StringBuilder (body); body_builder.prepend ("Content-Type: text/plain; charset=UTF-8\n\n"); body_builder.prepend ("--" + boundary + "\n"); @@ -233,7 +230,7 @@ public class Postler.Composer : Gtk.Window { /* TODO: Put in /Queue/new/ first and move on success */ string filename = sent + "/cur/" + Postler.Messages.generate_maildir_filename ("S"); - FileUtils.set_contents (filename, header + body, -1); + FileUtils.set_contents (filename, header + "\n" + body, -1); FileUtils.chmod (filename, 0700); if (!client.send (info.name, filename)) throw new GLib.FileError.FAILED (_("Sending failed.")); @@ -376,6 +373,11 @@ public class Postler.Composer : Gtk.Window { N_("Insert a sad face"), action_insert_emoticon } }; + const Gtk.ToggleActionEntry[] toggle_action_entries = { + { "MarkImportant", STOCK_MAIL_MARK_IMPORTANT, null, "", + N_("Mark message as important"), null, false } + }; + Gtk.Entry entry_with_address_completion () { var entry = new Gtk.Entry (); var completion = new Gtk.EntryCompletion (); @@ -435,6 +437,7 @@ public class Postler.Composer : Gtk.Window { actions = new Gtk.ActionGroup ("Composer"); actions.set_translation_domain (Config.GETTEXT_PACKAGE); actions.add_actions (action_entries, this); + actions.add_toggle_actions (toggle_action_entries, this); ui.insert_action_group (actions, 0); try { ui.add_ui_from_string (ui_markup, -1); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits