diff options
author | fiaxh <git@mx.ax.lt> | 2017-03-20 22:12:20 +0100 |
---|---|---|
committer | fiaxh <git@mx.ax.lt> | 2017-03-20 22:28:32 +0100 |
commit | 6f3225979cb497db99381556adb7e42119b44ec3 (patch) | |
tree | 1f7352d12eaf1aec7a38d388d3b1917bcd06e479 /main/src/ui/conversation_selector | |
parent | db57a973534f099af2b150f1a1307d1948553d9f (diff) | |
download | dino-6f3225979cb497db99381556adb7e42119b44ec3.tar.gz dino-6f3225979cb497db99381556adb7e42119b44ec3.zip |
Select conversation on startup, placeholder for "No conversation selected", start services before UI
Diffstat (limited to 'main/src/ui/conversation_selector')
-rw-r--r-- | main/src/ui/conversation_selector/conversation_row.vala | 2 | ||||
-rw-r--r-- | main/src/ui/conversation_selector/list.vala | 20 | ||||
-rw-r--r-- | main/src/ui/conversation_selector/view.vala | 2 |
3 files changed, 17 insertions, 7 deletions
diff --git a/main/src/ui/conversation_selector/conversation_row.vala b/main/src/ui/conversation_selector/conversation_row.vala index c16da287..6930db67 100644 --- a/main/src/ui/conversation_selector/conversation_row.vala +++ b/main/src/ui/conversation_selector/conversation_row.vala @@ -125,7 +125,7 @@ public abstract class ConversationRow : ListBoxRow { main_revealer.set_reveal_child(false); closed(); main_revealer.notify["child-revealed"].connect(() => { - conversation.active = false; + stream_interactor.get_module(ConversationManager.IDENTITY).close_conversation(conversation); disappeared(); }); } diff --git a/main/src/ui/conversation_selector/list.vala b/main/src/ui/conversation_selector/list.vala index d95128f1..dee70e4b 100644 --- a/main/src/ui/conversation_selector/list.vala +++ b/main/src/ui/conversation_selector/list.vala @@ -76,6 +76,17 @@ public class List : ListBox { foreach (ConversationRow row in rows.values) row.update(); return true; }); + + foreach (Conversation conversation in stream_interactor.get_module(ConversationManager.IDENTITY).get_active_conversations()) { + add_conversation(conversation); + } + realize.connect(() => { + ListBoxRow? first_row = get_row_at_index(0); + if (first_row != null) { + select_row(first_row); + row_activated(first_row); + } + }); } public override void row_activated(ListBoxRow r) { @@ -117,15 +128,14 @@ public class List : ListBox { } rows[conversation] = row; add(row); - row.closed.connect(() => { on_conversation_closed(conversation); }); - row.disappeared.connect(() => { on_conversation_disappeared(conversation); }); + row.closed.connect(() => { select_next_conversation(conversation); }); + row.disappeared.connect(() => { remove_conversation(conversation); }); row.main_revealer.set_reveal_child(true); } invalidate_sort(); - queue_draw(); } - private void on_conversation_closed(Conversation conversation) { + private void select_next_conversation(Conversation conversation) { if (get_selected_row() == rows[conversation]) { int index = rows[conversation].get_index(); ListBoxRow? index_p1 = get_row_at_index(index + 1); @@ -142,7 +152,7 @@ public class List : ListBox { } } - private void on_conversation_disappeared(Conversation conversation) { + private void remove_conversation(Conversation conversation) { if (rows.has_key(conversation) && !conversation.active) { remove(rows[conversation]); rows.unset(conversation); diff --git a/main/src/ui/conversation_selector/view.vala b/main/src/ui/conversation_selector/view.vala index 5c1b4dfd..304c6bbe 100644 --- a/main/src/ui/conversation_selector/view.vala +++ b/main/src/ui/conversation_selector/view.vala @@ -15,7 +15,7 @@ public class View : Box { [GtkChild] private ScrolledWindow scrolled; public View(StreamInteractor stream_interactor) { - conversation_list = new List(stream_interactor); + conversation_list = new List(stream_interactor) { visible=true }; scrolled.add(conversation_list); search_entry.key_release_event.connect(search_key_release_event); search_entry.search_changed.connect(search_changed); |