[geary/wip/135-contact-popovers: 3/13] Hook up new contact popover to conversation message addresses
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/wip/135-contact-popovers: 3/13] Hook up new contact popover to conversation message addresses
- Date: Thu, 14 Mar 2019 22:18:03 +0000 (UTC)
commit 335ead83c8e4caa1e8c715d2c9fca03eaf7dd452
Author: Michael Gratton <mike vee net>
Date: Thu Mar 14 17:09:00 2019 +1100
Hook up new contact popover to conversation message addresses
.../conversation-viewer/conversation-message.vala | 53 +++++++++-------------
1 file changed, 22 insertions(+), 31 deletions(-)
---
diff --git a/src/client/conversation-viewer/conversation-message.vala
b/src/client/conversation-viewer/conversation-message.vala
index e5800228..95623008 100644
--- a/src/client/conversation-viewer/conversation-message.vala
+++ b/src/client/conversation-viewer/conversation-message.vala
@@ -755,24 +755,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface {
return menu;
}
- private Menu set_action_param_strings(MenuModel existing,
- Gee.Map<string,string> values) {
- Menu menu = new Menu();
- for (int i = 0; i < existing.get_n_items(); i++) {
- MenuItem item = new MenuItem.from_model(existing, i);
- Variant action = item.get_attribute_value(
- Menu.ATTRIBUTE_ACTION, VariantType.STRING
- );
- string fq_name = action.get_string();
- string name = fq_name.substring(fq_name.index_of(".") + 1);
- item.set_action_and_target(
- fq_name, VariantType.STRING.dup_string(), values[name]
- );
- menu.append_item(item);
- }
- return menu;
- }
-
private string format_originator_compact(Geary.RFC822.MailboxAddresses? from,
string empty_from_text) {
string text = "";
@@ -992,25 +974,34 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface {
address_child.set_state_flags(Gtk.StateFlags.ACTIVE, false);
Geary.RFC822.MailboxAddress address = address_child.address;
- Gee.Map<string,string> values = new Gee.HashMap<string,string>();
- values[ACTION_OPEN_LINK] =
- Geary.ComposedEmail.MAILTO_SCHEME + address.address;
- values[ACTION_COPY_EMAIL] = address.to_full_display();
- values[ACTION_SEARCH_FROM] = address.address;
- Menu model = new Menu();
- model.append_section(
- null, set_action_param_strings(this.context_menu_email, values)
- );
- model.append_section(
- null, set_action_param_strings(this.context_menu_contact, values)
+ Gee.Map<string,GLib.Variant> values =
+ new Gee.HashMap<string,GLib.Variant>();
+
+ GLib.Variant mailbox_var = new GLib.Variant.tuple(
+ new GLib.Variant[] {
+ address.name ?? "",
+ address.address
+ });
+ values[ACTION_CONTACT_OPEN] = "not yet defined";
+ values[ACTION_CONTACT_SAVE] = mailbox_var;
+ values[ACTION_CONTACT_SHOW_CONVERSATIONS] = address.address;
+ values[ACTION_CONTACT_LOAD_IMAGES] = false;
+ values[ACTION_CONVERSATION_NEW] = mailbox_var;
+ values[ACTION_COPY_EMAIL] = address.to_full_display();
+
+ Conversation.ContactPopover popover = new Conversation.ContactPopover(
+ address_child,
+ address
);
- Gtk.Popover popover = new Gtk.Popover.from_model(child, model);
+ popover.load_avatar.begin();
+ popover.add_section(this.context_menu_email, values);
+ popover.add_section(this.context_menu_unknown_contact, values);
popover.set_position(Gtk.PositionType.BOTTOM);
popover.closed.connect(() => {
address_child.unset_state_flags(Gtk.StateFlags.ACTIVE);
});
- popover.show();
+ popover.popup();
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]