summaryrefslogtreecommitdiffstats
path: root/src/gui/Ephraim.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/Ephraim.vala')
-rw-r--r--src/gui/Ephraim.vala75
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();