[Xfce4-commits] <postler:master> Add a button to flag und un-flag selected messages
Christian Dywan
noreply at xfce.org
Sat Jul 10 00:24:12 CEST 2010
Updating branch refs/heads/master
to 0d012b2324bb55c3499c1ec4e5e1f6bd11d4d97b (commit)
from 28c24fc2e312cca02a4bb1d09ddf8a1a2860408a (commit)
commit 0d012b2324bb55c3499c1ec4e5e1f6bd11d4d97b
Author: Christian Dywan <christian at twotoasts.de>
Date: Tue Jun 29 18:40:42 2010 +0200
Add a button to flag und un-flag selected messages
postler/postler-bureau.vala | 10 ++++++++++
postler/postler-messages.vala | 19 +++++++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index 3e5b2dd..7aaa553 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -36,6 +36,7 @@ public class Postler.Bureau : Gtk.Window {
<menuitem action="MessageReplyAll"/>
<menuitem action="MessageForward"/>
<separator/>
+ <menuitem action="MessageFlag"/>
<menuitem action="MessageArchive"/>
<menuitem action="MessageDelete"/>
<separator/>
@@ -63,6 +64,7 @@ public class Postler.Bureau : Gtk.Window {
<toolitem action="MessageReplyAll"/>
<toolitem action="MessageForward"/>
<separator/>
+ <toolitem action="MessageFlag"/>
<toolitem action="MessageArchive"/>
<toolitem action="MessageDelete"/>
<separator/>
@@ -131,6 +133,10 @@ public class Postler.Bureau : Gtk.Window {
/* TODO */
}
+ void action_flag () {
+ messages.toggle_selected_flag ('F');
+ }
+
void action_archive () {
messages.move_selected ("Archive");
}
@@ -246,6 +252,8 @@ public class Postler.Bureau : Gtk.Window {
N_("Reply to all recipients"), action_message_reply_all },
{ "MessageForward", STOCK_MAIL_FORWARD, null, "<Ctrl>f",
N_("Forward message"), action_message_forward },
+ { "MessageFlag", STOCK_EMBLEM_IMPORTANT, null, "<Ctrl>t",
+ N_("Flag message"), action_flag },
{ "MessageArchive", STOCK_ARCHIVE, null, "<Ctrl>e",
N_("Archive message"), action_archive },
{ "MessageDelete", Gtk.STOCK_DELETE, null, "<Ctrl>d",
@@ -387,11 +395,13 @@ public class Postler.Bureau : Gtk.Window {
actions.get_action ("SaveSearch").is_important = true;
messages_box.pack_start (search_options, false, false, 0);
messages = new Postler.Messages (accounts);
+ actions.get_action ("MessageFlag").sensitive = false;
actions.get_action ("MessageArchive").sensitive = false;
actions.get_action ("MessageDelete").sensitive = false;
messages.notify["selected-location"].connect ((object, pspec) => {
Postler.Messages messages = object as Postler.Messages;
bool state = messages.selected_location != null;
+ actions.get_action ("MessageFlag").sensitive = state;
actions.get_action ("MessageArchive").sensitive = state
&& !folders.selected_location.has_suffix ("/Archive");
actions.get_action ("MessageDelete").sensitive = state;
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 0538402..aa4605b 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -620,6 +620,25 @@ public class Postler.Messages : Gtk.TreeView {
toggle_message_flag (sort_iter, ref location, 'S');
}
+ public void toggle_selected_flag (char flag) {
+ GLib.List<Gtk.TreePath> paths;
+ var references = new GLib.List<Gtk.TreeRowReference> ();
+
+ paths = get_selection ().get_selected_rows (null);
+ foreach (var path in paths)
+ references.prepend (new Gtk.TreeRowReference (sort, path));
+
+ foreach (var reference in references) {
+ var path = reference.get_path ();
+ Gtk.TreeIter sort_iter;
+ if (sort.get_iter (out sort_iter, path)) {
+ string location;
+ sort.get (sort_iter, Columns.LOCATION, out location);
+ toggle_message_flag (sort_iter, ref location, flag);
+ }
+ }
+ }
+
void display_message (Gtk.TreeIter sort_iter) {
string location;
sort.get (sort_iter, Columns.LOCATION, out location);
More information about the Xfce4-commits
mailing list