diff options
Diffstat (limited to 'src/gui/Ephraim.vala')
-rw-r--r-- | src/gui/Ephraim.vala | 75 |
1 files changed, 9 insertions, 66 deletions
diff --git a/src/gui/Ephraim.vala b/src/gui/Ephraim.vala index fe9f431..99a7a48 100644 --- a/src/gui/Ephraim.vala +++ b/src/gui/Ephraim.vala @@ -9,26 +9,28 @@ public class Ephraim { return 1; } - Roster roster = new Roster(); - CoreConnector coreconn = new CoreConnector(); - - coreconn.update_contact.connect(roster.update_contact); - unowned Gtk.Window window = builder.get_object("MainWindow") as Gtk.Window; window.hide.connect(Gtk.main_quit); unowned Gtk.MenuItem quitItem = builder.get_object("MenuItemQuit") as Gtk.MenuItem; quitItem.activate.connect(() => window.visible = false); - unowned Gtk.TreeView rosterView = builder.get_object("Roster") as Gtk.TreeView; - rosterView.set_model(roster); + unowned Gtk.VBox rosterView = builder.get_object("Roster") as Gtk.VBox; Gee.TreeMap<string, Conversation> conversations = new Gee.TreeMap<string, Conversation>(); unowned Gtk.Notebook conversationNotebook = builder.get_object("Conversations") as Gtk.Notebook; + Roster roster = new Roster(rosterView); + // FIXME string me = "/me"; + CoreConnector coreconn = new CoreConnector(); + + roster.start_conversation.connect((jid) => coreconn.start_conversation(jid)); + + coreconn.update_contact.connect(roster.update_contact); + coreconn.new_conversation.connect((jid) => { Contact contact = roster.get_contact(jid); @@ -58,65 +60,6 @@ public class Ephraim { if(!coreconn.start()) return 1; - rosterView.query_tooltip.connect((x, y, keyboard_tip, tooltip) => { - Gtk.TreeModel model; - Gtk.TreeIter iter; - - if(!rosterView.get_tooltip_context(out x, out y, keyboard_tip, out model, null, out iter)) - return false; - - Value value; - model.get_value(iter, 0, out value); - - Contact? c = value.get_object() as Contact; - if(c == null) - return false; - - Gee.Map.Entry<string, Contact.Resource>? r = c.get_resource_with_highest_priority(); - - if(r == null) - return false; - - tooltip.set_text("Resource: " + r.key + " (" + r.value.priority.to_string() + ")"); - - return true; - }); - rosterView.has_tooltip = true; - - rosterView.row_activated.connect((view, path, column) => { - Gtk.TreeIter iter; - roster.get_iter(out iter, path); - - Value value; - roster.get_value(iter, 0, out value); - - Contact contact = value.get_object() as Contact; - if(contact == null) - return; - - Gee.Map.Entry<string, Contact.Resource> res = contact.get_resource_with_highest_priority(); - if(res == null) - return; //FIXME - - coreconn.start_conversation(contact.jid + "/" + res.key); - }); - - Gtk.TreeViewColumn presenceColumn = new Gtk.TreeViewColumn.with_attributes(null, new CellRendererPresence(), "contact", 0, null); - presenceColumn.min_width = 32; - rosterView.append_column(presenceColumn); - - Gtk.TreeViewColumn contactColumn = new Gtk.TreeViewColumn(); - - Gtk.CellRenderer cellRendererContact = new CellRendererContact(); - contactColumn.pack_start(cellRendererContact, true); - contactColumn.set_attributes(cellRendererContact, "contact", 0, null); - - Gtk.CellRenderer cellRendererAvatar = new CellRendererAvatar(); - contactColumn.pack_end(cellRendererAvatar, false); - contactColumn.set_attributes(cellRendererAvatar, "contact", 0, null); - - rosterView.append_column(contactColumn); - window.visible = true; Gtk.main(); |